Gestion des réclamations personnalisées
Vous pouvez utiliser l'API REST des domaines d'identité pour ajouter des demandes personnalisées à un jeton d'accès, à un jeton d'identité ou aux deux.
Les réclamations 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 demandes 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, reportez-vous à Utilisation de OAuth 2 pour accéder à l'API REST.
-
Créez le nom de réclamation personnalisé
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 permettant de créer la 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.
Remarque : la longueur maximale est de 100 caractères.
valueValeur de réclamation personnalisée.
Remarque : 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 réclamation personnalisée est une expression utilisateur. Vous pouvez déterminer l'expression utilisateur à l'aide des adresses des utilisateurs.
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 utilisateur, une demande renvoie un attribut à valeur unique ou 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)
Les expressions suivantes renvoient un tableau :$user.emails.*.value$(user.emails[*].value)
allScopesIndiquez si la demande personnalisée est associée à un ensemble de portées ou à toutes les portées.
Valeur :
trueoufalsemodeIndiquez comment vous souhaitez attacher la réclamation personnalisée à un jeton. always: la réclamation personnalisée sera attachée au jeton.
request: la réclamation personnalisée sera attachée au jeton uniquement 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 du jeton.AT: afin d'ajouter une demande personnalisée pour un jeton d'accès.IT: afin d'ajouter une réclamation personnalisée pour un jeton d'identité.BOTH: afin d'ajouter une réclamation personnalisée pour le jeton d'accès et d'identité.
scopes
Facultatif. La revendication personnalisée sera intégrée aux jetons si une portée dans le tableau des portées est demandée dans la demande de jeton. Vous pouvez indiquer
allScopeségal àtruesans tableau d'étendues associé ouallScopeségal àfalseavec tableau d'étendues associé.L'exemple suivant illustre le 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 à partir de l'adresse
/admin/v1/Users. Il s'agit du fichier JSON renvoyé pour un administrateur.Les valeurs sont analysées sous forme de chaîne et le gras dans 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 sans étiquette, avec un nombre qui commence par 0 pour indiquer l'index de l'élément dans le tableau.
"récupération"
$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 de 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/ddc7f88bea2a46258c593bddccaf2b86L'exemple suivant illustre le 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 }L'exemple suivant illustre la 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" ] } -
Définissez
allScopessurfalsepour 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/ddc7f88bea2a46258c593bddccaf2b86L'exemple suivant illustre le corps de la demande.
{ "Operations": [ { "op": "replace", "path": "allScopes", "value": false } ], "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] }L'exemple suivant illustre la 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 demandes personnalisées du locataire en exécutant la commande suivante :
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsExemple
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsL'exemple suivant illustre le 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 déclarations personnalisées d'un locataire en fournissant le paramètre de requête.
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 de corps de réponse après la fourniture du paramètre de requête
?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 } -
Supprimez éventuellement la demande 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