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 kein Limit 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 Ausdrucks stammt, gibt es keinen Grenzwert.

    expression

    Geben Sie an, ob der benutzerdefinierte Anspruchswert ein Ausdruck ist. Sie können den Benutzerausdruck mit den Benutzerendpunkten bestimmen.

    Wert: true oder false

    Beispielbenutzerausdruck

    • $user.name.formatted expression mit Wert admin opc.
    • Ausdruck $user.emails.0.type mit dem Wert recovery.
    • Ausdruck $user.emails.1.type mit dem Wert work.
    • Ausdruck $user.urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User.myCustomAttribute 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 in einem Array 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 einem Set von Geltungsbereichen oder allen Geltungsbereichen zugeordnet werden soll.

    Wert: true oder false

    mode

    Geben Sie an, wie der benutzerdefinierte Claim 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 es angefordert oder überschrieben wird.
    • never: Der benutzerdefinierte Claim wird nicht an das Token angehängt.

    tokenType

    Geben Sie den Token-Typ ein.
    • 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 Geltungsbereichsarray in der Tokenanforderung angefordert wird. Sie können entweder allScopes gleich true ohne zugehöriges Geltungsbereichsarray angeben oder allScopes gleich false mit zugehörigem Geltungsbereichsarray aufweisen.

    Der folgende Abschnitt enthält ein Beispiel für den Antwort-Body:

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

    Wert

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

    "Wiederherstellung"

    $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 Anforderungsteasten.

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

    {
        "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 Antwortbody.
    {
        "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 Sie den Abfrageparameter ?attributes=name,value angegeben haben:

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