Gerenciando Reivindicações Personalizadas
Você pode usar a API REST dos domínios de identidade para adicionar reivindicações personalizadas a um token de acesso, um token de identidade ou ambos os tokens.
As reivindicações personalizadas são regras que você pode adicionar a um token do domínio de identidades. Não há limite para o número de reivindicações personalizadas em um token. O tamanho do token é limitado e os valores permitidos são "8000", "16000", "32000", "128000".
https://<domainURL>/admin/v1/CustomClaims/{id}
-
Especifique os cabeçalhos na linha de comando cURL:
-H Authorization: Bearer <Access Token> -H Cache-Control: no-cache -H Accept:application/json
Para obter um token de acesso, consulte Trabalhando com OAuth 2 para Acessar a API REST.
-
Crie o nome da reivindicação personalizada
MyATCustomClaim
e o valorMyATValue
para o token de acesso executando o seguinte comando:curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Exemplo
curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Veja a seguir um exemplo de corpo de solicitação JSON para criar a reivindicação personalizada:
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATCustomClaim", "value": "MyATValue", "expression": false, "mode": "always", "tokenType": "AT", "allScopes": true }
Atributo
Descrição
name
O nome da reivindicação personalizada.
Observação: O comprimento máximo é 100 caracteres.
value
O valor da reivindicação personalizada.
Observação: O comprimento máximo é 100 caracteres. Se o valor vier da avaliação de uma expressão de usuário, não haverá limite.
expression
Especifique se o valor da reivindicação personalizada é uma expressão do usuário. Você pode determinar a expressão do usuário usando os pontos finais Usuários.
Valor:
true
oufalse
Exemplo de Expressão de Usuário
$user.name.formatted expression
com o valoradmin opc
.- Expressão
$user.emails.0.type
com o valorrecovery
. - Expressão
$user.emails.1.type
com o valorwork
. - Expressão
$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute
com o valorcustomValue
.
Com base nas expressões do usuário, uma reivindicação retorna um atributo de valor único ou todos os atributos associados à expressão. Por exemplo, as seguintes expressões retornam um único valor dentro de uma matriz:$user.emails.0.value
$(user.emails[0].value)
Enquanto as seguintes expressões retornam uma matriz:$user.emails.*.value
$(user.emails[*].value)
allScopes
Especifique se associa a reivindicação personalizada a um conjunto de escopos ou a todos os escopos.
Valor:
true
oufalse
mode
Especifique como deseja anexar a reivindicação personalizada a um token. always
: A reivindicação personalizada será anexada ao token.
request
: A reivindicação personalizada só será anexada ao token se for solicitada ou substituída.never
: A reivindicação personalizada não será anexada ao token.
tokenType
Especifique o tipo de token.AT
: Para adicionar uma reivindicação personalizada para um token de acesso.IT
: Para adicionar uma reivindicação personalizada para um token de identidade.BOTH
: Para adicionar uma reivindicação personalizada para o token de acesso e identidade.
escopo
Opcional. A Reivindicação Personalizada será incorporada aos tokens se qualquer escopo no array de escopos for solicitado na solicitação de token. Você pode especificar
allScopes
igual atrue
sem array de escopos associados ou terallScopes
igual afalse
com array de escopos associados.A seguir, um exemplo do corpo da resposta:
{ "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" } }
Você pode derivar a expressão do usuário do ponto final
/admin/v1/Users
. Este é o JSON retornado para um usuário administrador.Os valores são analisados como String, e o negrito na amostra mostra como os valores são derivados para as expressões a seguir.
Expressão
Valor
$user.name.formatted
"admin opc"
$user.emails.0.type
Esta expressão e a próxima são uma matriz não rotulada, com um número que começa em 0 para indicar o índice do elemento na matriz.
"recuperação"
$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" } }
-
Substitua todos os atributos do id de reivindicação personalizado
ddc7f88bea2a46258c593bddccaf2b86
executando o seguinte comando:curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/{id}
Exemplo
curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
A seguir, um exemplo do corpo da solicitação.
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATClaim1", "value": "MyATValue1", "expression": false, "mode": "request", "tokenType": "AT", "allScopes": true }
Veja a seguir um exemplo da resposta indicando que a solicitação foi bem-sucedida.
{ "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
comofalse
para o idddc7f88bea2a46258c593bddccaf2b86
executando o seguinte comando:curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/{id}
Exemplo
curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
A seguir, um exemplo do corpo da solicitação.
{ "Operations": [ { "op": "replace", "path": "allScopes", "value": false } ], "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] }
Veja a seguir um exemplo da resposta indicando que a solicitação foi bem-sucedida.
{ "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" ] }
-
Exiba todas as reivindicações personalizadas no tenant executando o seguinte comando:
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
Exemplo
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
A seguir, um exemplo do corpo da resposta.{ "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" ] }
-
Exiba as reivindicações personalizadas em um tenant fornecendo o parâmetro de consulta.
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims?attributes=(schema attributes)
Exemplo
curl -i -X GET https://yourtenant.identity.oraclecloud.com/admin/v1/CustomClaims?attributes=name,value
Veja a seguir um exemplo do corpo da resposta depois de fornecer o 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, exclua a reivindicação personalizada do tenant executando o seguinte comando:
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/{id}
Exemplo
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86