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".

Die Beispiele für den cURL-Befehl verwenden die URL-Struktur:
https://<domainURL>/admin/v1/CustomClaims/{id}
  1. 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.

  2. Erstellen Sie den benutzerdefinierten Claimnamen MyATCustomClaim und den Wert MyATValue 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 oder false

    Beispiel für einen Benutzerausdruck

    • $user.name.formatted expression mit dem Wert admin opc.
    • $user.emails.0.type-Ausdruck mit dem Wert recovery.
    • $user.emails.1.type-Ausdruck mit dem Wert work.
    • $user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute-Ausdruck mit dem Wert customValue.
    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 oder false

    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 gleich true ohne zugeordnetes Geltungsbereichsarray ist, oder dass allScopes gleich false 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"
        }
    }
  3. 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"
        ]
    }
  4. Setzen Sie die allScopes für die ID ddc7f88bea2a46258c593bddccaf2b86 auf false, 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"
        ]
    }
  5. 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"
        ]
    }
  6. 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
    }
  7. 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