カスタム請求の管理

アイデンティティ・ドメインREST APIを使用して、アクセス・トークン、アイデンティティ・トークンまたはその両方にカスタム・クレームを追加できます。

カスタム・クレームは、アイデンティティ・ドメインのトークンに追加できるルールです。トークン内のカスタム・クレームの数に制限はありません。トークン・サイズは制限されており、許可される値は"8000"、"16000"、"32000"、"128000"です。

cURLコマンドの例では、URL構造を使用しています:
https://<domainURL>/admin/v1/CustomClaims/{id}
  1. cURLコマンド・ラインでヘッダーを指定します。
       -H Authorization: Bearer <Access Token>
       -H Cache-Control: no-cache
       -H Accept:application/json

    アクセス・トークンを取得するには、OAuth 2を使用したREST APIへのアクセスを参照してください。

  2. 次のコマンドを実行して、アクセス・トークンのカスタム・クレーム名MyATCustomClaimおよび値MyATValueを作成します:
       curl -i -X POST https://<domainURL>/admin/v1/CustomClaims

       curl -i -X POST https://<domainURL>/admin/v1/CustomClaims

    カスタム・クレームを作成するJSONリクエスト本文の例を次に示します:

    {
        "schemas": [
            "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
        ],
        "name": "MyATCustomClaim",
        "value": "MyATValue",
        "expression": false,
        "mode": "always",
        "tokenType": "AT",
        "allScopes": true
    }

    属性

    説明

    name

    カスタム請求名。

    ノート:最大長は100文字です。

    value

    カスタム・クレーム値。

    ノート:最大長は100文字です。値がユーザー式の評価から得られる場合、制限はありません。

    expression

    カスタム・クレーム値がユーザー式であるかどうかを指定します。ユーザー式は、Usersエンドポイントを使用して決定できます。

    値: trueまたはfalse

    ユーザー式の例

    • 値がadmin opc$user.name.formatted expression
    • 値がrecovery$user.emails.0.type式。
    • 値がwork$user.emails.1.type式。
    • 値がcustomValue$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute式。
    クレームは、ユーザー式に基づいて、単一の値属性または式に関連付けられたすべての属性を返します。たとえば、次の式は配列内の単一の値を返します:
    • $user.emails.0.value
    • $(user.emails[0].value)
    一方、次の式は配列を返します:
    • $user.emails.*.value
    • $(user.emails[*].value)

    allScopes

    カスタム・クレームをスコープのセットに関連付けるか、すべてのスコープに関連付けるかを指定します。

    値: trueまたはfalse

    mode

    カスタム・クレームをトークンにアタッチする方法を指定します。
    • always: カスタム・クレームはトークンにアタッチされます。
    • request: カスタム・クレームは、リクエストまたは上書きされた場合にのみトークンにアタッチされます。
    • never: カスタム・クレームはトークンにアタッチされません。

    tokenType

    トークン型を指定します。
    • AT: アクセス・トークンのカスタム・クレームを追加します。
    • IT: アイデンティティ・トークンのカスタム・クレームを追加します。
    • BOTH: アクセス・トークンおよびアイデンティティ・トークンのカスタム・クレームを追加します。

    scopes

    オプションです。カスタム・クレームは、スコープ配列内のいずれかのスコープがトークン・リクエストでリクエストされた場合、トークンに埋め込まれます。スコープ配列が関連付けられていない場合はallScopestrueに指定できますが、スコープ配列が関連付けられている場合、allScopesfalseになります。

    レスポンス本文の例を次に示します:

    {
        "schemas": [
            "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
        ],
        "name": "MyATCustomClaim",
        "value": "MyATValue",
        "expression": false,
        "mode": "always",
        "tokenType": "AT",
        "allScopes": true,
        "id": "ddc7f88bea2a46258c593bddccaf2b86",
        "meta": {
            "created": "2022-05-17T04:33:43.640Z",
            "lastModified": "2022-05-17T04:33:43.640Z",
            "resourceType": "CustomClaim",
            "location": "https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86"
        },
        "idcsCreatedBy": {
            "value": "bac027a9500c4db9a09f5cfbcbda5076",
            "type": "App",
            "display": "exampleDomainAdmin",
            "$ref": "https://<domainURL>/admin/v1/Apps/bac027a9500c4db9a09f5cfbcbda5076"
        },
        "idcsLastModifiedBy": {
            "value": "bac027a9500c4db9a09f5cfbcbda5076",
            "type": "App",
            "display": "exampleDomainAdmin",
            "$ref": "https://<domainURL>/admin/v1/Apps/bac027a9500c4db9a09f5cfbcbda5076"
        }
    }

    ユーザー式は、/admin/v1/Usersエンドポイントから導出できます。これは、管理ユーザーに返されるJSONです。

    値は「文字列」として解析され、サンプルのボールドは次の式の値が導出される方法を示しています。

    $user.name.formatted

    "admin opc"

    $user.emails.0.type

    この式と次の式は、ラベルなし配列で、0から始まる数値を使用して配列内の要素の索引を示します。

    "リカバリ"

    $user.emails.1.type

    "work"

    $user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute

    "customValue"

    {
        "idcsCreatedBy": {
            "type": "App",
            "display": "idcssm",
            "value": "32e72bc93b30417697f323d5fa7bbe2e",
            "$ref": "https://<domainURL>/admin/v1/Apps/32e72bc93b30417697f323d5fa7bbe2e"
        },
        "id": "60703e0bddcf4dae9add114179bf042d",
        "meta": {
            "created": "2022-11-08T02:39:01.932Z",
            "lastModified": "2022-11-13T09:44:55.668Z",
            "resourceType": "User",
            "location": "https://<domainURL>/admin/v1/Users/60703e0bddcf4dae9add114179bf042d"
        },
        "active": true,
        "displayName": "admin opc",
        "idcsLastModifiedBy": {
            "value": "f79371bb03914056821a8afb9da5066d",
            "display": "idcssso",
            "type": "App",
            "$ref": "https://<domainURL>/admin/v1/Apps/f79371bb03914056821a8afb9da5066d"
        },
        "nickName": "TAS_TENANT_ADMIN_USER",
        "userName": "admin@oracle.com",
        "urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User": {
            "isFederatedUser": false,
            "myCustomAttribute": "customValue"
        },
        "emails": [
            {
                "verified": false,
                "primary": false,
                "secondary": false,
                "value": "admin@oracle.com",
                "type": "recovery"
            },
            {
                "verified": false,
                "primary": true,
                "secondary": false,
                "value": "admin@oracle.com",
                "type": "work"
            }
        ],
        "urn:ietf:params:scim:schemas:oracle:idcs:extension:userState:User": {
            "locked": {
                "on": false
            }
        },
        "name": {
            "familyName": "opc",
            "givenName": "admin",
            "formatted": "admin opc"
        }
    }
  3. 次のコマンドを実行して、カスタム・クレームID ddc7f88bea2a46258c593bddccaf2b86のすべての属性を置き換えます:
       curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/{id}

       curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86

    リクエスト本文の例を次に示します。

    {
        "schemas": [
            "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
        ],
        "name": "MyATClaim1",
        "value": "MyATValue1",
        "expression": false,
        "mode": "request",
        "tokenType": "AT",
        "allScopes": true
    }

    次にリクエストの成功を示すレスポンスの例を示します。

    {
        "idcsLastModifiedBy": {
            "type": "App",
            "value": "bac027a9500c4db9a09f5cfbcbda5076",
            "display": "exampleDomainAdmin",
            "$ref": "https://<domainURL>/admin/v1/Apps/bac027a9500c4db9a09f5cfbcbda5076"
        },
        "idcsCreatedBy": {
            "type": "App",
            "display": "exampleDomainAdmin",
            "value": "bac027a9500c4db9a09f5cfbcbda5076",
            "$ref": "https://<domainURL>/admin/v1/Apps/bac027a9500c4db9a09f5cfbcbda5076"
        },
        "mode": "request",
        "id": "ddc7f88bea2a46258c593bddccaf2b86",
        "value": "MyATValue1",
        "expression": false,
        "meta": {
            "created": "2022-05-17T04:33:43.640Z",
            "lastModified": "2022-05-17T04:41:13.177Z",
            "resourceType": "CustomClaim",
            "location": "https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86"
        },
        "allScopes": true,
        "name": "MyATCustomClaim1",
        "tokenType": "AT",
        "schemas": [
            "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
        ]
    }
  4. 次のコマンドを実行して、ID ddc7f88bea2a46258c593bddccaf2b86allScopesfalseに設定します:
       curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/{id}

       curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86

    リクエスト本文の例を次に示します。

    {
        "Operations": [
            {
                "op": "replace",
                "path": "allScopes",
                "value": false
            }
        ],
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ]
    }

    次にリクエストの成功を示すレスポンスの例を示します。

    {
        "idcsLastModifiedBy": {
            "type": "User",
            "value": "210d294a075a4c86bbf6f958bceacf0c",
            "display": "admin opc",
            "$ref": "https://yourtenant.identity.oraclecloud.com/admin/v1/Users/210d294a075a4c86bbf6f958bceacf0c"
        },
        "idcsCreatedBy": {
            "type": "User",
            "display": "admin opc",
            "value": "210d294a075a4c86bbf6f958bceacf0c",
            "$ref": "https://<domainURL>/admin/v1/Users/210d294a075a4c86bbf6f958bceacf0c"
        },
        "mode": "always",
        "id": "ddc7f88bea2a46258c593bddccaf2b86",
        "value": "MyATValue",
        "expression": false,
        "meta": {
            "created": "2022-05-31T05:43:32.518Z",
            "lastModified": "2022-05-31T05:58:10.362Z",
            "resourceType": "CustomClaim",
            "location": "https://yourtenant.identity.oraclecloud.com/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86"
        },
        "allScopes": false,
        "name": "MyATCustomClaim",
        "tokenType": "AT",
        "scopes": [
            "phone"
        ],
        "schemas": [
            "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
        ]
    }
  5. 次のコマンドを実行して、テナント内のすべてのカスタム・クレームを表示します:
       curl -i -X GET https://<domainURL>/admin/v1/CustomClaims

       curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
    レスポンス本文の例を次に示します。
    {
        "idcsLastModifiedBy": {
            "type": "User",
            "value": "210d294a075a4c86bbf6f958bceacf0c",
            "display": "admin opc",
            "$ref": "https://<domainURL>/admin/v1/Users/ddc7f88bea2a46258c593bddccaf2b86"
        },
        "idcsCreatedBy": {
            "type": "User",
            "display": "admin opc",
            "value": "ddc7f88bea2a46258c593bddccaf2b86",
            "$ref": "https://<domainURL>/admin/v1/Users/210d294a075a4c86bbf6f958bceacf0c"
        },
        "mode": "always",
        "id": "98e94996776845719cf3b737e565199a",
        "value": "MyATValue",
        "expression": false,
        "meta": {
            "created": "2022-05-31T05:43:32.518Z",
            "lastModified": "2022-05-31T05:58:10.362Z",
            "resourceType": "CustomClaim",
            "location": "https://<domainURL>/admin/v1/CustomClaims/98e94996776845719cf3b737e565199a"
        },
        "allScopes": false,
        "name": "MyATCustomClaim",
        "tokenType": "AT",
        "scopes": [
            "phone"
        ],
        "schemas": [
            "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim"
        ]
    }
  6. 問合せパラメータを指定して、テナント内のカスタム・クレームを表示します。
       curl -i -X GET https://<domainURL>/admin/v1/CustomClaims?attributes=(schema attributes)

       curl -i -X GET https://yourtenant.identity.oraclecloud.com/admin/v1/CustomClaims?attributes=name,value

    問合せパラメータ?attributes=name,valueを指定した後のレスポンス本文の例を次に示します:

    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:ListResponse"
        ],
        "totalResults": 4,
        "Resources": [
            {
                "name": "AlwaysAllScopesATClaim10",
                "id": "edf077cbae59435dab3f9de5ba1fd619",
                "value": "AlwaysAllScopesATValue"
            },
            {
                "name": "MyATCustomClaim1",
                "id": "ddc7f88bea2a46258c593bddccaf2b86",
                "value": "MyATValue1"
            },
            {
                "name": "MyATCustomClaim",
                "id": "150d1eae9f0f4301a22312bd680aa4df",
                "value": "MyATValue"
            },
            {
                "name": "MyATCustomClaim2",
                "id": "2680b220be904698b43575e3d654a88c",
                "value": "MyATValue2"
            }
        ],
        "startIndex": 1,
        "itemsPerPage": 50
    }
  7. オプションで、次のコマンドを実行してテナントから削除します:
       curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/{id}

       curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86