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.
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/jsonPour obtenir un jeton d'accès, voir Utilisation de OAuth 2 pour accéder à l'API REST.
-
Créez le nom de la revendication personnalisée
MyATCustomClaimet la valeurMyATValuepour le jeton d'accès en exécutant la commande suivante :curl -i -X POST https://<domainURL>/admin/v1/CustomClaimsExemple
curl -i -X POST https://<domainURL>/admin/v1/CustomClaimsVoici un exemple de corps de demande JSON pour créer une réclamation 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
nameNom de la réclamation personnalisée.
Note : La longueur maximale est de 100 caractères.
valueValeur 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.
expressionIndiquez 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 :
trueoufalseExemple d'expression utilisateur
$user.name.formatted expressionavec la valeuradmin opc.- Expression
$user.emails.0.typeavec la valeurrecovery. - Expression
$user.emails.1.typeavec la valeurwork. - Expression
$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttributeavec la valeurcustomValue.
En fonction des expressions d'utilisateur, une revendication retourne soit un attribut de valeur unique, soit tous les attributs associés à l'expression. Par exemple, les expressions suivantes renvoient une seule valeur dans un tableau :$user.emails.0.value$(user.emails[0].value)
Alors que les expressions suivantes renvoient un tableau :$user.emails.*.value$(user.emails[*].value)
allScopesSpécifiez si la revendication personnalisée est associée à un jeu d'étendues ou à toutes les étendues.
Valeur :
trueoufalsemodeSpécifiez comment associer la réclamation personnalisée à un jeton. always: La réclamation personnalisée sera attachée au jeton.
request: La réclamation personnalisée ne sera attachée au jeton que si elle est demandée ou remplacée.never: La réclamation personnalisée ne sera pas attachée au jeton.
tokenTypeSpécifiez le type de jeton.AT: Pour ajouter une réclamation personnalisée pour un jeton d'accès.IT: Pour ajouter une réclamation personnalisée pour un jeton d'identité.BOTH: Pour ajouter une réclamation personnalisée pour l'accès et le jeton d'identité.
portées
Facultative. La revendication personnalisée sera intégrée aux jetons si une portée quelconque dans le tableau des portées est demandée dans la demande de jeton. Vous pouvez spécifier
allScopesest égal àtruesans tableau d'étendues associé ouallScopesest égal àfalseavec le tableau d'étendues 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 utilisateur du point d'extrémité
/admin/v1/Users. Il s'agit du fichier JSON retourné pour un utilisateur administrateur.Les valeurs sont analysées sous la forme String, 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.typeCette expression et la suivante sont un tableau non étiqueté, 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 pour l'ID réclamation personnalisée
ddc7f88bea2a46258c593bddccaf2b86en 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/ddc7f88bea2a46258c593bddccaf2b86Voici 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àfalsepour l'IDddc7f88bea2a46258c593bddccaf2b86en 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/ddc7f88bea2a46258c593bddccaf2b86Voici 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 du client en exécutant la commande suivante :
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsExemple
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsVoici 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 d'un client 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,valueVoici un exemple du corps de la 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 réclamation 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