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/json
Para obtener un token de acceso, consulte Trabajar con OAuth 2 para acceder a la API de REST.
-
Cree el nombre de reclamación personalizado
MyATCustomClaim
y el valorMyATValue
para el token de acceso ejecutando el siguiente comando:curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Ejemplo
curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
A 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
name
Nombre de reclamación personalizado.
Nota: La longitud máxima es de 100 caracteres.
value
Valor 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.
expression
Especifique 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:
true
ofalse
Ejemplo de expresión de usuario
$user.name.formatted expression
con el valoradmin opc
.- Expresión
$user.emails.0.type
con el valorrecovery
. - Expresión
$user.emails.1.type
con el valorwork
. - Expresión
$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute
con 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)
allScopes
Especifique si la reclamación personalizada se asocia a un juego de ámbitos o a todos los ámbitos.
Valor:
true
ofalse
mode
Especifique 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.
tokenType
Especifique 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
allScopes
sea igual atrue
sin matriz de ámbitos asociada o queallScopes
sea igual afalse
con 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.type
Esta 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
ddc7f88bea2a46258c593bddccaf2b86
ejecutando el siguiente comando:curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/{id}
Ejemplo
curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
A 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
allScopes
enfalse
para el IDddc7f88bea2a46258c593bddccaf2b86
ejecutando el siguiente comando:curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/{id}
Ejemplo
curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
A 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/CustomClaims
Ejemplo
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
A 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,value
A 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