Gestión de reclamaciones personalizadas
Puede utilizar la API de REST de dominios de identidad para agregar reclamaciones personalizadas a un token de acceso, un token de identidad o ambos tokens.
Las reclamaciones personalizadas son reglas que puede agregar a un token para el dominio de identidad. No hay límite para el número de reclamaciones personalizadas en un token. El tamaño del token es limitado y los valores permitidos son "8000", "16000","32000", "128000".
https://<domainURL>/admin/v1/CustomClaims/{id}-
Especifique las cabeceras en la línea de comandos de cURL:
-H Authorization: Bearer <Access Token> -H Cache-Control: no-cache -H Accept:application/jsonPara obtener un token de acceso, consulte Trabajar con OAuth 2 para acceder a la API de REST.
-
Cree el nombre de reclamación personalizado
MyATCustomClaimy el valorMyATValuepara el token de acceso ejecutando el siguiente comando:curl -i -X POST https://<domainURL>/admin/v1/CustomClaimsEjemplo
curl -i -X POST https://<domainURL>/admin/v1/CustomClaimsA continuación se muestra un ejemplo de un cuerpo de solicitud JSON para crear la reclamación personalizada:
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATCustomClaim", "value": "MyATValue", "expression": false, "mode": "always", "tokenType": "AT", "allScopes": true }Atributo
Descripción
nameNombre de reclamación personalizado.
Nota: La longitud máxima es de 100 caracteres.
valueValor de reclamación personalizado.
Nota: La longitud máxima es de 100 caracteres. Si el valor proviene de la evaluación de una expresión de usuario, no hay límite.
expressionEspecifique si el valor de reclamación personalizado es una expresión de usuario. Puede determinar la expresión de usuario mediante los puntos finales Users.
Valor:
trueofalseEjemplo de expresión de usuario
$user.name.formatted expressioncon el valoradmin opc.- Expresión
$user.emails.0.typecon el valorrecovery. - Expresión
$user.emails.1.typecon el valorwork. - Expresión
$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttributecon el valorcustomValue.
Según las expresiones de usuario, una reclamación devuelve un atributo de valor único o todos los atributos asociados a la expresión. Por ejemplo, las siguientes expresiones devuelven un único valor dentro de una matriz:$user.emails.0.value$(user.emails[0].value)
Mientras que las siguientes expresiones devuelven una matriz:$user.emails.*.value$(user.emails[*].value)
allScopesEspecifique si la reclamación personalizada se asocia a un juego de ámbitos o a todos los ámbitos.
Valor:
trueofalsemodeEspecifique cómo desea adjuntar la reclamación personalizada a un token. always: la reclamación personalizada se anexará al token.
request: la reclamación personalizada se anexará al token solo si se solicita o sustituye.never: la reclamación personalizada no se asociará al token.
tokenTypeEspecifique el tipo de elemento.AT: para agregar una reclamación personalizada para un token de acceso.IT: para agregar una reclamación personalizada para un token de identidad.BOTH: para agregar una reclamación personalizada para el token de acceso e identidad.
ámbitos
opcional. La reclamación personalizada se incrustará en tokens si se solicita algún ámbito en la matriz de ámbitos en la solicitud de token. Puede especificar que
allScopessea igual atruesin matriz de ámbitos asociada o queallScopessea igual afalsecon matriz de ámbitos asociada.A continuación se muestra un ejemplo de cuerpo de respuesta:
{ "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" } }Puede derivar la expresión de usuario del punto final
/admin/v1/Users. Este es el JSON devuelto para un usuario administrador.Los valores se analizan como String y la negrita del ejemplo muestra cómo se derivan los valores para las siguientes expresiones.
Expresión
Valor
$user.name.formatted"admin opc"
$user.emails.0.typeEsta expresión y la siguiente son una matriz sin etiquetas, con un número que comienza en 0 para indicar el índice del elemento en la matriz.
"La recuperación"
$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" } } -
Sustituya todos los atributos para el ID de reclamación personalizado
ddc7f88bea2a46258c593bddccaf2b86ejecutando el siguiente comando:curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/{id}Ejemplo
curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86A continuación se muestra un ejemplo de cuerpo de solicitud.
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATClaim1", "value": "MyATValue1", "expression": false, "mode": "request", "tokenType": "AT", "allScopes": true }A continuación, se muestra un ejemplo de la respuesta que indica que la solicitud se realizó correctamente.
{ "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" ] } -
Defina
allScopesenfalsepara el IDddc7f88bea2a46258c593bddccaf2b86ejecutando el siguiente comando:curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/{id}Ejemplo
curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86A continuación se muestra un ejemplo de cuerpo de solicitud.
{ "Operations": [ { "op": "replace", "path": "allScopes", "value": false } ], "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] }A continuación, se muestra un ejemplo de la respuesta que indica que la solicitud se realizó correctamente.
{ "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" ] } -
Para ver todas las reclamaciones personalizadas del inquilino, ejecute el siguiente comando:
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsEjemplo
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsA continuación se muestra un ejemplo de cuerpo de respuesta.{ "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" ] } -
Visualice las reclamaciones personalizadas de un inquilino proporcionando el parámetro de consulta.
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims?attributes=(schema attributes)Ejemplo
curl -i -X GET https://yourtenant.identity.oraclecloud.com/admin/v1/CustomClaims?attributes=name,valueA continuación se muestra un ejemplo del cuerpo de la respuesta después de proporcionar el parámetro de consulta
?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 } -
Opcionalmente, puede suprimir la reclamación personalizada del inquilino ejecutando el siguiente comando:
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/{id}Ejemplo
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86