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/json
Informationen zum Abrufen eines Zugriffstokens finden Sie unter Mit OAuth 2 für den Zugriff auf die REST-API arbeiten.
-
Erstellen Sie den benutzerdefinierten Claimnamen
MyATCustomClaim
und den WertMyATValue
für das Zugriffstoken, indem Sie den folgenden Befehl ausführen:curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Beispiel
curl -i -X POST https://<domainURL>/admin/v1/CustomClaims
Im 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
name
Der benutzerdefinierte Anspruchsname.
Hinweis: Die maximale Länge beträgt 100 Zeichen.
value
Der benutzerdefinierte Anspruchswert.
Hinweis: Die maximale Länge beträgt 100 Zeichen. Wenn der Wert aus der Auswertung eines Benutzerausdrucks stammt, gibt es keine Begrenzung.
expression
Geben Sie an, ob der benutzerdefinierte Anspruchswert ein Benutzerausdruck ist. Sie können den Benutzerausdruck mit den Benutzerendpunkten bestimmen.
Wert:
true
oderfalse
Beispiel für einen Benutzerausdruck
$user.name.formatted expression
mit 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)
allScopes
Geben Sie an, ob der benutzerdefinierte Anspruch einer Gruppe von Geltungsbereichen oder allen Geltungsbereichen zugeordnet werden soll.
Wert:
true
oderfalse
mode
Geben 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.
tokenType
Geben 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
allScopes
gleichtrue
ohne zugeordnetes Geltungsbereichsarray ist, oder dassallScopes
gleichfalse
mit 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/Users
ableiten. 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.type
Dieser 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/ddc7f88bea2a46258c593bddccaf2b86
Der 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
allScopes
für die IDddc7f88bea2a46258c593bddccaf2b86
auffalse
, 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/ddc7f88bea2a46258c593bddccaf2b86
Der 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/CustomClaims
Beispiel
curl -i -X GET https://<domainURL>/admin/v1/CustomClaims
Der 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,value
Im Folgenden finden Sie ein Beispiel für den Antwortbody, nachdem der Abfrageparameter
?attributes=name,value
angegeben 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