カスタム請求の管理
アイデンティティ・ドメインREST APIを使用して、アクセス・トークン、アイデンティティ・トークンまたはその両方にカスタム・クレームを追加できます。
カスタム・クレームは、アイデンティティ・ドメインのトークンに追加できるルールです。トークン内のカスタム・クレームの数に制限はありません。トークン・サイズは制限されており、許可される値は"8000"、"16000"、"32000"、"128000"です。
https://<domainURL>/admin/v1/CustomClaims/{id}
-
cURLコマンド・ラインでヘッダーを指定します。
-H Authorization: Bearer <Access Token> -H Cache-Control: no-cache -H Accept:application/json
アクセス・トークンを取得するには、OAuth 2を使用したREST APIへのアクセスを参照してください。
-
次のコマンドを実行して、アクセス・トークンのカスタム・クレーム名
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
オプションです。カスタム・クレームは、スコープ配列内のいずれかのスコープがトークン・リクエストでリクエストされた場合、トークンに埋め込まれます。スコープ配列が関連付けられていない場合は
allScopes
をtrue
に指定できますが、スコープ配列が関連付けられている場合、allScopes
はfalse
になります。レスポンス本文の例を次に示します:
{ "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" } }
- 値が
-
次のコマンドを実行して、カスタム・クレーム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" ] }
-
次のコマンドを実行して、ID
ddc7f88bea2a46258c593bddccaf2b86
のallScopes
をfalse
に設定します: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" ] }
-
次のコマンドを実行して、テナント内のすべてのカスタム・クレームを表示します:
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" ] }
-
問合せパラメータを指定して、テナント内のカスタム・クレームを表示します。
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 }
-
オプションで、次のコマンドを実行してテナントから削除します:
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/{id}
例
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86