Benutzerdefinierte Claims verwalten
Mit der REST-API für Identitätsdomains können Sie benutzerdefinierte Claims zu einem Zugriffstoken, einem Identitätstoken oder beiden Token hinzufügen.
Benutzerdefinierte Claims sind Regeln, die Sie einem Token für die Identitätsdomain hinzufügen können. Es gibt keine Begrenzung für die Anzahl der benutzerdefinierten Claims in einem Token. Die Tokengröße ist begrenzt, und die zulässigen Werte sind "8000", "16000", "32000", "128000".
https://<domainURL>/admin/v1/CustomClaims/{id}-
Geben Sie die Header in der cURL-Befehlszeile an:
-H Authorization: Bearer <Access Token> -H Cache-Control: no-cache -H Accept:application/jsonInformationen zum Abrufen eines Zugriffstokens finden Sie unter Mit OAuth 2 für den Zugriff auf die REST-API arbeiten.
-
Erstellen Sie den benutzerdefinierten Claimnamen
MyATCustomClaimund den WertMyATValuefür das Zugriffstoken, indem Sie den folgenden Befehl ausführen:curl -i -X POST https://<domainURL>/admin/v1/CustomClaimsBeispiel
curl -i -X POST https://<domainURL>/admin/v1/CustomClaimsIm Folgenden finden Sie ein Beispiel für einen JSON-Anforderungsbody, um den benutzerdefinierten Claim zu erstellen:
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATCustomClaim", "value": "MyATValue", "expression": false, "mode": "always", "tokenType": "AT", "allScopes": true }Attribut
Beschreibung
nameDer benutzerdefinierte Anspruchsname.
Hinweis: Die maximale Länge beträgt 100 Zeichen.
valueDer benutzerdefinierte Anspruchswert.
Hinweis: Die maximale Länge beträgt 100 Zeichen. Wenn der Wert aus der Auswertung eines Benutzerausdrucks stammt, gibt es keine Begrenzung.
expressionGeben Sie an, ob der benutzerdefinierte Anspruchswert ein Benutzerausdruck ist. Sie können den Benutzerausdruck mit den Benutzerendpunkten bestimmen.
Wert:
trueoderfalseBeispiel für einen Benutzerausdruck
$user.name.formatted expressionmit dem Wertadmin opc.$user.emails.0.type-Ausdruck mit dem Wertrecovery.$user.emails.1.type-Ausdruck mit dem Wertwork.$user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute-Ausdruck mit dem WertcustomValue.
Basierend auf Benutzerausdrücken gibt ein Claim entweder ein einzelnes Wertattribut oder alle mit dem Ausdruck verknüpften Attribute zurück. Beispiel: Die folgenden Ausdrücke geben einen einzelnen Wert innerhalb eines Arrays zurück:$user.emails.0.value$(user.emails[0].value)
Während die folgenden Ausdrücke ein Array zurückgeben:$user.emails.*.value$(user.emails[*].value)
allScopesGeben Sie an, ob der benutzerdefinierte Anspruch einer Gruppe von Geltungsbereichen oder allen Geltungsbereichen zugeordnet werden soll.
Wert:
trueoderfalsemodeGeben Sie an, wie der benutzerdefinierte Anspruch an ein Token angehängt werden soll. always: Der benutzerdefinierte Claim wird an das Token angehängt.
request: Der benutzerdefinierte Claim wird nur dann an das Token angehängt, wenn er angefordert oder überschrieben wird.never: Der benutzerdefinierte Claim wird nicht an das Token angehängt.
tokenTypeGeben Sie den Tokentyp an.AT: So fügen Sie einen benutzerdefinierten Claim für ein Zugriffstoken hinzu.IT: So fügen Sie einen benutzerdefinierten Claim für ein Identitätstoken hinzu.BOTH: So fügen Sie einen benutzerdefinierten Claim für das Zugriffs- und Identitätstoken hinzu.
Scopes
Optional. Der benutzerdefinierte Anspruch wird in Token eingebettet, wenn ein Geltungsbereich im Geltungsbereich-Array in der Tokenanforderung angefordert wird. Sie können entweder angeben, dass
allScopesgleichtrueohne zugeordnetes Geltungsbereichsarray ist, oder dassallScopesgleichfalsemit zugeordnetem Geltungsbereichsarray ist.Der folgende Abschnitt enthält ein Beispiel für den Antworttext:
{ "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" } }Sie können den Benutzerausdruck vom Endpunkt
/admin/v1/Usersableiten. Dies ist die JSON, die für einen Admin-Benutzer zurückgegeben wird.Die Werte werden als Zeichenfolge geparst, und die Fettschrift im Beispiel zeigt, wie die Werte für die folgenden Ausdrücke abgeleitet werden.
Ausdruck
Value
$user.name.formatted"admin opc"
$user.emails.0.typeDieser und der nächste Ausdruck sind ein nicht beschriftetes Array mit einer Zahl, die bei 0 beginnt, um den Index des Elements im Array anzugeben.
"recovery"
$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" } } -
Ersetzen Sie alle Attribute für die benutzerdefinierte Claim-ID
ddc7f88bea2a46258c593bddccaf2b86, indem Sie den folgenden Befehl ausführen:curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/{id}Beispiel
curl -i -X PUT https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86Der folgende Abschnitt enthält ein Beispiel für den Anforderungstext.
{ "schemas": [ "urn:ietf:params:scim:schemas:oracle:idcs:CustomClaim" ], "name": "MyATClaim1", "value": "MyATValue1", "expression": false, "mode": "request", "tokenType": "AT", "allScopes": true }Im Folgenden finden Sie ein Beispiel für die Antwort, die angibt, dass die Anforderung erfolgreich war.
{ "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" ] } -
Setzen Sie die
allScopesfür die IDddc7f88bea2a46258c593bddccaf2b86auffalse, indem Sie den folgenden Befehl ausführen:curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/{id}Beispiel
curl -i -X PATCH https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86Der folgende Abschnitt enthält ein Beispiel für den Anforderungstext.
{ "Operations": [ { "op": "replace", "path": "allScopes", "value": false } ], "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] }Im Folgenden finden Sie ein Beispiel für die Antwort, die angibt, dass die Anforderung erfolgreich war.
{ "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" ] } -
Zeigen Sie alle benutzerdefinierten Claims im Mandanten an, indem Sie den folgenden Befehl ausführen:
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsBeispiel
curl -i -X GET https://<domainURL>/admin/v1/CustomClaimsDer folgende Abschnitt enthält ein Beispiel für den Antworttext.{ "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" ] } -
Zeigen Sie die benutzerdefinierten Ansprüche in einem Mandanten an, indem Sie den Abfrageparameter angeben.
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims?attributes=(schema attributes)Beispiel
curl -i -X GET https://yourtenant.identity.oraclecloud.com/admin/v1/CustomClaims?attributes=name,valueIm Folgenden finden Sie ein Beispiel für den Antwortbody, nachdem der Abfrageparameter
?attributes=name,valueangegeben wurde:{ "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 } -
Löschen Sie optional den benutzerdefinierten Claim aus dem Mandanten, indem Sie den folgenden Befehl ausführen:
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/{id}Beispiel
curl -i -X DELETE https://<domainURL>/admin/v1/CustomClaims/ddc7f88bea2a46258c593bddccaf2b86