Gestion des réclamations personnalisées
Vous pouvez utiliser l'API REST des domaines d'identité pour ajouter des revendications personnalisées à un jeton d'accès, à un jeton d'identité ou aux deux jetons.
Les revendications personnalisées sont des règles que vous pouvez ajouter à un jeton pour le domaine d'identité. Il n'y a pas de limite pour le nombre de revendications personnalisées dans un jeton. La taille du jeton est limitée et les valeurs autorisées sont "8000", "16000", "32000", "128000".
https://<domainURL>/admin/v1/CustomClaims/{id}
-
Spécifiez les en-têtes sur la ligne de commande cURL :
-H Authorization: Bearer <Access Token> -H Cache-Control: no-cache -H Accept:application/json
Pour obtenir un jeton d'accès, voir Utilisation de OAuth 2 pour accéder à l'API REST.
-
Créez le nom de revendication personnalisée
MyATCustomClaim
et la valeurMyATValue
pour le jeton d'accès en exécutant la commande suivante :curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Exemple
curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Voici un exemple de corps de demande JSON pour créer une revendication personnalisée :
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATCustomClaim", "value": "MyATValue", "expression": false, "mode": "always", "tokenType": "AT", "allScopes": true }
Attribut
Description
name
Nom de la réclamation personnalisée.
Note : La longueur maximale est de 100 caractères.
value
Valeur de la réclamation personnalisée.
Note : La longueur maximale est de 100 caractères. Si la valeur provient de l'évaluation d'une expression utilisateur, il n'y a pas de limite.
expression
Indiquez si la valeur de la revendication personnalisée est une expression utilisateur. Vous pouvez déterminer l'expression utilisateur à l'aide des points d'extrémité Users.
Valeur :
true
oufalse
Exemple d'expression utilisateur
$user.name.formatted expression
avec la valeuradmin opc
.- Expression
$user.emails.0.type
avec la valeurrecovery
. - Expression
$user.emails.1.type
avec la valeurwork
. - Expression
$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute
avec la valeurcustomValue
.
En fonction des expressions d'utilisateur, une revendication retourne un attribut à valeur unique ou tous les attributs associés à l'expression. Par exemple, les expressions suivantes renvoient une valeur unique dans un tableau :$user.emails.0.value
$(user.emails[0].value)
Les expressions suivantes renvoient un tableau :$user.emails.*.value
$(user.emails[*].value)
allScopes
Indiquez si la revendication personnalisée est associée à un jeu de portées ou à toutes les portées.
Valeur :
true
oufalse
mode
Spécifiez comment associer la revendication personnalisée à un jeton. always
: La revendication personnalisée sera attachée au jeton.
request
: La revendication personnalisée ne sera attachée au jeton que si elle est demandée ou remplacée.never
: La revendication personnalisée ne sera pas attachée au jeton.
tokenType
Spécifiez le type de jeton.AT
: Pour ajouter une revendication personnalisée pour un jeton d'accès.IT
: Pour ajouter une revendication personnalisée pour un jeton d'identité.BOTH
: Pour ajouter une revendication personnalisée pour le jeton d'accès et d'identité.
portées
Facultative. La revendication personnalisée sera intégrée aux jetons si une étendue du tableau des étendues est demandée dans la demande de jeton. Vous pouvez spécifier
allScopes
comme étant égal àtrue
sans tableau de portées associé ouallScopes
comme étant égal àfalse
avec le tableau de portées associé.Voici un exemple du corps de la réponse :
{ "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" } }
Vous pouvez dériver l'expression d'utilisateur à partir du point d'extrémité
/admin/v1/Users
. Il s'agit du JSON retourné pour un utilisateur administrateur.Les valeurs sont analysées en tant que chaîne, et le gras de l'exemple montre comment les valeurs sont dérivées pour les expressions suivantes.
Expression
Valeur
$user.name.formatted
"admin opc"
$user.emails.0.type
Cette expression et la suivante sont un tableau sans étiquette, avec un nombre qui commence à 0 pour indiquer l'index de l'élément dans le tableau.
"recovery"
$user.emails.1.type
"travail"
$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" } }
-
Remplacez tous les attributs de l'ID revendication personnalisée
ddc7f88bea2a46258c593bddccaf2b86
en exécutant la commande suivante :curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/{id}
Exemple
curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
Voici un exemple du corps de la demande :
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATClaim1", "value": "MyATValue1", "expression": false, "mode": "request", "tokenType": "AT", "allScopes": true }
Voici un exemple de réponse indiquant que la demande a réussi.
{ "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" ] }
-
Réglez
allScopes
àfalse
pour l'IDddc7f88bea2a46258c593bddccaf2b86
en exécutant la commande suivante :curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/{id}
Exemple
curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
Voici un exemple du corps de la demande :
{ "Operations": [ { "op": "replace", "path": "allScopes", "value": false } ], "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] }
Voici un exemple de réponse indiquant que la demande a réussi.
{ "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" ] }
-
Affichez toutes les revendications personnalisées dans le locataire en exécutant la commande suivante :
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
Exemple
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
Voici un exemple du corps de la réponse.{ "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" ] }
-
Affichez les revendications personnalisées dans un locataire en fournissant le paramètre d'interrogation.
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims?attributes=(schema attributes)
Exemple
curl -i -X GET https://yourtenant.identity.oraclecloud.com/admin/v1/CustomClaims?attributes=name,value
Voici un exemple de corps de réponse après avoir fourni le paramètre d'interrogation
?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 }
-
Facultativement, supprimez la revendication personnalisée du locataire en exécutant la commande suivante :
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/{id}
Exemple
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86