Gestione delle richieste personalizzate
È possibile utilizzare l'API REST dei domini di Identity per aggiungere richieste personalizzate a un token di accesso, a un token di identità o a entrambi i token.
Le richieste personalizzate sono regole che è possibile aggiungere a un token per il dominio di Identity. Non è previsto alcun limite per il numero di richieste personalizzate in un token. La dimensione del token è limitata e i valori consentiti sono "8000", "16000", "32000", "128000".
https://<domainURL>/admin/v1/CustomClaims/{id}
-
Specificare le intestazioni nella riga di comando cURL:
-H Authorization: Bearer <Access Token> -H Cache-Control: no-cache -H Accept:application/json
Per ottenere un token di accesso, vedere Utilizzo di OAuth 2 per accedere all'API REST.
-
Creare il nome richiesta personalizzato
MyATCustomClaim
e il valoreMyATValue
per il token di accesso eseguendo il comando seguente:curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Esempio
curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Di seguito è riportato un esempio di corpo della richiesta JSON per creare la richiesta personalizzata.
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATCustomClaim", "value": "MyATValue", "expression": false, "mode": "always", "tokenType": "AT", "allScopes": true }
Attributo
descrizione;
name
Il nome della richiesta personalizzata.
Nota: la lunghezza massima è 100 caratteri.
value
Il valore del risarcimento personalizzato.
Nota: la lunghezza massima è 100 caratteri. Se il valore deriva dalla valutazione di un'espressione utente, non è previsto alcun limite.
expression
Specificare se il valore del risarcimento personalizzato è un'espressione utente. È possibile determinare l'espressione utente utilizzando gli endpoint Utenti.
Valore:
true
ofalse
Esempio di espressione utente
$user.name.formatted expression
con valoreadmin opc
.- Espressione
$user.emails.0.type
con valorerecovery
. - Espressione
$user.emails.1.type
con valorework
. - Espressione
$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute
con valorecustomValue
.
In base alle espressioni utente, un risarcimento restituisce un singolo attributo valore o tutti gli attributi associati all'espressione. Ad esempio, le seguenti espressioni restituiscono un singolo valore all'interno di un array:$user.emails.0.value
$(user.emails[0].value)
Mentre le seguenti espressioni restituiscono un array:$user.emails.*.value
$(user.emails[*].value)
allScopes
Specificare se associare la richiesta personalizzata a un set di ambiti o a tutti gli ambiti.
Valore:
true
ofalse
mode
Specificare la modalità di collegamento della richiesta personalizzata a un token. always
: la richiesta personalizzata verrà allegata al token.
request
: la richiesta personalizzata verrà allegata al token solo se viene richiesta o sostituita.never
: la richiesta personalizzata non verrà allegata al token.
tokenType
Specificare il tipo di token.AT
: consente di aggiungere una richiesta personalizzata per un token di accesso.IT
: consente di aggiungere una richiesta personalizzata per un token di identità.BOTH
: consente di aggiungere una richiesta personalizzata per il token di accesso e identità.
ambiti
facoltativo. La richiesta personalizzata verrà incorporata nei token se nella richiesta del token è richiesto un ambito qualsiasi nell'array degli ambiti. È possibile specificare che
allScopes
sia uguale atrue
senza un array di ambiti associato oppure cheallScopes
sia uguale afalse
con l'array di ambiti associato.Di seguito è riportato un esempio del corpo della risposta.
{ "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" } }
È possibile derivare l'espressione utente dall'endpoint
/admin/v1/Users
. JSON restituito per un utente amministratore.I valori vengono analizzati come stringa e il grassetto nell'esempio mostra come vengono derivati i valori per le espressioni seguenti.
Espressione
Valore
$user.name.formatted
"amministratore opc"
$user.emails.0.type
Questa espressione e la successiva sono un array senza etichetta, con un numero che inizia da 0 per indicare l'indice dell'elemento nell'array.
"recupero"
$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" } }
-
Sostituire tutti gli attributi per l'ID richiesta personalizzato
ddc7f88bea2a46258c593bddccaf2b86
eseguendo il comando seguente:curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/{id}
Esempio
curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
Di seguito è riportato un esempio del corpo della richiesta.
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATClaim1", "value": "MyATValue1", "expression": false, "mode": "request", "tokenType": "AT", "allScopes": true }
Di seguito è riportato un esempio di risposta che indica che la richiesta è riuscita.
{ "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" ] }
-
Impostare
allScopes
sufalse
per l'IDddc7f88bea2a46258c593bddccaf2b86
eseguendo il comando seguente:curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/{id}
Esempio
curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86
Di seguito è riportato un esempio del corpo della richiesta.
{ "Operations": [ { "op": "replace", "path": "allScopes", "value": false } ], "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] }
Di seguito è riportato un esempio di risposta che indica che la richiesta è riuscita.
{ "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" ] }
-
Visualizzare tutte le richieste personalizzate nel tenant eseguendo il seguente comando:
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
Esempio
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
Di seguito è riportato un esempio del corpo della risposta.{ "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" ] }
-
Visualizzare le richieste personalizzate in un tenant fornendo il parametro di query.
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims?attributes=(schema attributes)
Esempio
curl -i -X GET https://yourtenant.identity.oraclecloud.com/admin/v1/CustomClaims?attributes=name,value
Di seguito è riportato un esempio del corpo della risposta dopo aver fornito il parametro di query
?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 }
-
Facoltativamente, eliminare la richiesta personalizzata dal tenant eseguendo il seguente comando:
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/{id}
Esempio
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86