Benutzerschemas anpassen

Wenn Sie mit der Verwendung von Identitätsdomains beginnen, können Sie eine andere Gruppe von Benutzeridentitäten basierend auf den Anforderungen verschiedener Abteilungen innerhalb oder außerhalb Ihrer Organisation laden. Mit der Schemaanpassung können Sie identitätsdomainspezifische benutzerdefinierte Schemas erstellen, um die Out-of-the-box-(OOTB-)Attribute für eine Ressource zu ergänzen. Außerdem können Benutzerschemas erweitert werden.

Ein benutzerdefiniertes Schema ist OOTB als leeres Schema ohne definierte Attribute verfügbar. Das folgende Schema "Benutzerdefinierter Benutzer" ist ein Beispiel für ein leeres benutzerdefiniertes Schema ohne Attribute. Dieses benutzerdefinierte Schema wird als Beispiel für alle Beispielanforderungs-Payloads in diesem Anwendungsfall verwendet.

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "meta": {
        "resourceType": "Schema",
        "created": "2022-08-15T05:02:13.788Z",
        "lastModified": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    },
    "idcsLastModifiedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}
Hinweis

Sie können die folgenden Eigenschaften nicht aktualisieren. Jeder Versuch, diese Eigenschaften zu aktualisieren, wird ignoriert.
  • Typ

  • idcsSearchable

  • Eindeutigkeit

  • caseExact

  • idcsSensitive

  • multiValued

  • erforderlich

Benutzerdefinierte Benutzerschemaattribute hinzufügen

Die folgenden Links enthalten Informationen und Beispielanforderungen zum Hinzufügen benutzerdefinierter Benutzerschemaattribute mit den PUT- und PATCH-Methoden. Informationen zu den Validierungen, die beim Hinzufügen von Attributen ausgeführt werden, sind ebenfalls enthalten.

Attribute für benutzerdefiniertes Benutzerschema aktualisieren

Die folgenden Links enthalten Informationen und Beispielanforderungen für die Aktualisierung benutzerdefinierter Benutzerschemaattribute mit den PUT- und PATCH-Methoden. Informationen zu Validierungen, die beim Aktualisieren von Attributen ausgeführt werden, sind ebenfalls enthalten.

Benutzerdefinierte Schemaattribute entfernen

Die folgenden Links enthalten Informationen und Beispielanforderungen, wenn benutzerdefinierte Benutzerschemaattribute mit den PUT- und PATCH-Methoden entfernt werden. Informationen zu Validierungen, die beim Entfernen von Attributen ausgeführt werden, sind ebenfalls enthalten.

Import von benutzerdefinierten Benutzerschemaattributen aktivieren

Der folgende Link enthält Informationen und Beispielanforderungen beim Importieren benutzerdefinierter Benutzerschemaattribute.

Benutzerdefinierte Benutzerschemaattribute mit PUT hinzufügen

Füllen Sie ein leeres benutzerdefiniertes Schema, indem Sie neue Attribute mit der PUT-Methode hinzufügen.

In diesem Beispiel aktualisieren wir die folgenden Attribute:

Attribut Typ

subDivision

Zeichenfolge

branchAddress

Zeichenfolge

PUT-Beispielanforderung

PUT /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:extension:custom:2.0:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "subDivision",
            "idcsDisplayName": "Sub Division",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 30,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        },
        {
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "idcsMaxLength": 300,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ]
}
Beispiel für JSON-Antwort
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsDisplayName": "Sub Division",
            "name": "subDivision",
            "mutability": "readWrite",
            "idcsMinLength": 5,
            "description": "SubDivision",
            "type": "string",
            "idcsSearchable": true,
            "idcsMaxLength": 30,
            "multiValued": false,
            "returned": "always",
            "uniqueness": "none",
            "required": false,
            "caseExact": true,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1"
        },
        {
            "name": "branchAddress",
            "description": "Branch Office Address",
            "mutability": "readWrite",
            "idcsMinLength": 5,
            "type": "string",
            "idcsSearchable": true,
            "idcsMaxLength": 300,
            "multiValued": false,
            "returned": "always",
            "idcsDisplayName": "Branch Address",
            "uniqueness": "none",
            "required": false,
            "caseExact": true,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_1"
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:26:40.603Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}
}

Benutzerdefinierte Benutzerschemaattribute mit PATCH hinzufügen

In diesem Beispiel wird gezeigt, wie Sie mit PATCH "op": "add" benutzerdefinierte Attribute hinzufügen.

Die Validierungen, die während der Ausführung dieser Vorgänge durchgeführt werden, ähneln der PUT-Methode. Weitere Informationen finden Sie im Abschnitt Beim Hinzufügen von Attributen ausgeführte Validierungen.

Aktualisieren Sie das benutzerdefinierte Schema, um neue Attribute mit PATCH hinzuzufügen. In diesem Beispiel wird der PATCH-Vorgang "add" verwendet, und der Attributname wird aus der Anforderungs-Payload für das Patching ausgewählt. Wenn der angegebene Name bereits vorhanden ist, wird er automatisch ersetzt. Wenn das Attribut nicht vorhanden ist, wird es automatisch hinzugefügt. Wenn die Eigenschaft name fehlt, wird eine Fehlermeldung angezeigt.

PATCH-Beispielanforderung

PATCH /Schemas/urn:itef:params:scim:schemas:idcs:extension:custom:User
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "add",
            "path": "attributes",
            "value": [
                {
                    "idcsValuePersisted": true,
                    "uniqueness": "none",
                    "name": "nickName",
                    "idcsDisplayName": "NICKNAME100",
                    "description": "NICKNAME100",
                    "required": false,
                    "type": "string",
                    "idcsMinLength": 10,
                    "idcsMaxLength": 100,
                    "idcsAuditable": true,
                    "caseExact": true,
                    "returned": "default",
                    "idcsSearchable": true,
                    "multiValued": false
                }
            ]
        }
    ]
}

Beispiel für JSON-Antwort

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_2",
            "idcsDisplayName": "NICKNAME100",
            "description": "NICKNAME100",
            "type": "string",
            "idcsAuditable": true,
            "required": false,
            "returned": "default",
            "idcsValuePersisted": true,
            "idcsMaxLength": 100,
            "idcsSearchable": true,
            "idcsMinLength": 10,
            "multiValued": false,
            "caseExact": true,
            "uniqueness": "none",
            "name": "nickName"
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:31:37.247Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
}

Validierungen beim Hinzufügen von Attributen

Beim Hinzufügen benutzerdefinierter Attribute führen Identitätsdomains bestimmte Validierungen aus. In der folgenden Tabelle werden die Validierungen basierend auf dem Vorgang "Hinzufügen" beschrieben.

Validierungen hinzufügen

In dieser Tabelle werden die Validierungen beschrieben, die Identitätsdomains ausführen, wenn Sie dem Zielschema neue benutzerdefinierte Attribute hinzufügen.

Attributname Ausgeführte Validierungen

Name

Auf Duplikat prüfen. Dieser Wert muss im gesamten benutzerdefinierten Schema eindeutig sein.

idcsDisplayName

Nach Duplikaten suchen. Dieser Wert muss im gesamten benutzerdefinierten Schema eindeutig sein.

idcsMaxLength

Wert darf nicht kleiner als 2 sein.

idcsMinLength

Wert darf nicht kleiner als 1 sein.

returned

Der Wert muss ein gültiger Rückgabewert sein, z.B. immer, Standardwert, Anforderung oder nie.

Typ

Der Wert muss eine Zeichenfolge sein, die ein- oder mehrwertig sein kann.

Mutabilität

Der Wert muss eine gültige Mutabilität wie readWrite, readOnly, unveränderbar oder schreibgeschützt sein.

idcsCsvAttributeNameMappings.columnHeaderName

Der Wert muss im gesamten benutzerdefinierten Schema eindeutig sein.

idcsCsvAttributeNameMappings.multiValueDelimiter

Obligatorisches Attribut für mehrwertige Attribute mit idcsCsvAttributeNameMappings.

Benutzerdefinierte Benutzerschemaattribute mit PUT aktualisieren

Aktualisieren Sie Attribute in Ihrem benutzerdefinierten Schema mit der PUT-Methode.

Attribute aktualisieren

In diesem Beispiel aktualisieren wir die Attribute für "subDivision" und "branchAddress".

PUT-Beispielanforderung

PUT /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:extension:custom:2.0:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "subDivision",
            "idcsDisplayName": "Sub Division Office",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 35,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        },
        {
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "idcsMaxLength": 350,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ]
}

Beispiel für JSON-Antwort

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsDisplayName": "Sub Division Office",
            "idcsMaxLength": 35,
            "required": false,
            "idcsValuePersisted": true,
            "caseExact": true,
            "uniqueness": "none",
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1",
            "name": "subDivision",
            "type": "string",
            "idcsMinLength": 5,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        },
        {
            "required": false,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_1",
            "idcsMaxLength": 350,
            "caseExact": true,
            "uniqueness": "none",
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:45:17.046Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

Attribute für mehrfach bewertete Zeichenfolgen aktualisieren

Sie können mehrwertige Zeichenfolgenattribute in Ihrem vorhandenen benutzerdefinierten Schema mit der PUT-Methode aktualisieren. In diesem Beispiel wird das mehrwertige Zeichenfolgenattribut "hobbies" hinzugefügt.

PUT-Beispielanforderung

PUT admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "workName",
            "idcsDisplayName": "workName",
            "description": "workName",
            "required": false, 
            "type": "string",
            "idcsMinLength": 1,
            "idcsMaxLength": 4000,
            "idcsAuditable": true,
            "caseExact": true,
            "returned": "default",
            "idcsSearchable": false,
            "multiValued": false,
            "idcsCsvAttributeName": "CSV1"
        },
        {
            "name": "hobbies",
            "idcsDisplayName": "hobbies",
            "description": "hobbies",
            "required": true,
            "type": "string",
            "idcsMinLength": 1,
            "idcsMaxLength": 20,
            "idcsAuditable": true,
            "returned": "default",
            "idcsValuePersisted": true,
            "idcsSearchable": true,
            "multiValued": true
        },    
        {
            "name": "county",
            "idcsDisplayName": "county",
            "description": "county",
            "type": "string",
            "required": false,  
            "idcsMinLength": 1,
            "idcsMaxLength": 40,
            "idcsAuditable": true,
            "caseExact": true,
            "returned": "default",
            "idcsCsvAttributeName": "CSV3",
            "idcsSearchable": false,
            "multiValued": false 
        },
        {
            "name": "nationality",
            "idcsDisplayName": "nationality",
            "description": "nationality",
            "required": true,
            "type": "string",
            "idcsMinLength": 1,
            "idcsMaxLength": 20,
            "idcsAuditable": true,
            "returned": "default",
            "idcsValuePersisted": true,
            "idcsSearchable": true,
            "multiValued": false
        } 
    ]
}

Benutzerdefinierte Benutzerschemaattribute mit PATCH aktualisieren

Ersetzen Sie Attribute im benutzerdefinierten Schema mit der PATCH-Methode.

Ersetzungsvorgang verwenden

In diesem Beispiel wird der PATCH-Vorgang "ersetzen" verwendet, und der Attributname wird aus der Anforderungs-Payload für das Patching ausgewählt. Wenn der angegebene Name bereits vorhanden ist, wird er automatisch ersetzt. Wenn sie nicht vorhanden ist, wird eine Fehlermeldung angezeigt.

PATCH-Beispielanforderung

Patch /Schemas/urn:item:params:scam:schemas:idcs:extension:custom:User
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [
        {
            "op": "replace",
            "path": "attributes",
            "value": [
                {
                    "name": "nickName",
                    "idcsDisplayName": "nickName",
                    "description": "Nickname",
                    "required": false,
                    "type": "string",
                    "idcsMinLength": 3,
                    "idcsMaxLength": 25,
                    "idcsAuditable": false,
                    "caseExact": true,
                    "returned": "default",
                    "multiValued": false
                }
            ]
        }
    ]
}

Beispiel für JSON-Antwort

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsTargetAttributeName": "U_VC_40_IFLEX_1",
            "idcsAuditable": false,
            "idcsValuePersisted": true,
            "description": "Nickname",
            "idcsSearchable": true,
            "idcsMaxLength": 25,
            "uniqueness": "none",
            "name": "nickName",
            "idcsDisplayName": "nickName",
            "required": false,
            "type": "string",
            "idcsMinLength": 3,
            "caseExact": true,
            "returned": "default",
            "multiValued": false
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T19:55:17.467Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

Ersetzungsvorgang mit Filtern verwenden

  • In diesem Beispiel wird der PATCH "replace"-Vorgang mit Filtern verwendet, um alle Attribute, bei denen die Eigenschaft "required" mit dem Attribut "returned" auf "always" gesetzt ist, auf "true" zu aktualisieren:
    PATCH /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "replace",
                "path": "attributes[name eq \"workName\"].idcsDisplayName",
                "value": "workplace Name"
            }]
    }
  • In diesem Beispiel wird der PATCH-Vorgang "ersetzen" mit Filtern verwendet, um alle Attribute auf "false" zu aktualisieren, wobei die Eigenschaft "auditable" auf "true" gesetzt ist.
    PATCH /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "replace",
                "path": "attributes[returned eq \"default\"].required",
                "value": true
            }]
    }

Beispiel für JSON-Antwort

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1",
            "idcsMinLength": 1,
            "idcsValuePersisted": true,
            "idcsMaxLength": 20,
            "type": "string",
            "idcsSearchable": true,
            "idcsDisplayName": "nationality",
            "name": "nationality",
            "idcsAuditable": true,
            "multiValued": false,
            "description": "nationality",
            "returned": "default",
            "required": false,
            "uniqueness": "none",
            "caseExact": true
        },
        {
            "idcsTargetAttributeName": "U_VC_4K_IFLEX_1",
            "idcsDisplayName": "workplace Name",
            "description": "workName",
            "idcsCsvAttributeName": "CSV1",
            "type": "string",
            "idcsMaxLength": 4000,
            "idcsAuditable": true,
            "required": false,
            "returned": "default",
            "idcsMinLength": 1,
            "name": "workName",
            "idcsSearchable": false,
            "multiValued": false,
            "caseExact": true,
            "uniqueness": "none",
            "idcsValuePersisted": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T20:15:21.969Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

Attribut mit mehreren Werten mit dem Ersetzungsvorgang aktualisieren

Sie können mehrwertige Zeichenfolgenattribute in Ihrem benutzerdefinierten Schema mit der PATCH-Methode ersetzen. In diesem Beispiel wird der PATCH-Vorgang "ersetzen" verwendet, und der Attributname wird aus der Anforderungs-Payload für das Patching ausgewählt. Wenn der angegebene Name bereits vorhanden ist, wird er automatisch ersetzt. Wenn sie nicht vorhanden ist, wird eine Fehlermeldung angezeigt.

PATCH-Beispielanforderung

Patch admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ],
    "Operations": [{
            "op": "replace",
            "path": "attributes",
            "value": [
                {
                    "name": "hobbies",
                    "idcsDisplayName": "hobbies",
                    "description": "hobbies",
                    "required": true,
                    "type": "string",
                    "idcsMinLength": 1,
                    "idcsMaxLength": 20,
                    "idcsAuditable": true,
                    "returned": "default",
                    "idcsValuePersisted": true,
                    "idcsSearchable": true,
                    "multiValued": true
                }
            ] 
        }
    ]
}

Validierungen beim Aktualisieren von Attributen

Wenn Sie benutzerdefinierte Attribute ersetzen, führen Identitätsdomains bestimmte Validierungen durch. In der folgenden Tabelle werden die Validierungen basierend auf dem Vorgang "Ersetzen/Aktualisieren" beschrieben.

Validierungen ersetzen/aktualisieren

In dieser Tabelle werden die Validierungen beschrieben, die Identitätsdomains ausführen, wenn Sie vorhandene benutzerdefinierte Attribute in das Zielschema aktualisieren.

Attributname Ausgeführte Validierungen

idcsMinLength

Wert darf nicht kleiner als 1 sein. Sie darf nicht über dem für das Attribut zugewiesenen Spaltenlimit liegen.

Beispiel: Wenn die Spalte U_VC_40 zugewiesen wurde, darf idcsMinLength 40 nicht überschreiten.

idcsMaxLength

Wert darf nicht kleiner als 1 sein. Er muss größer/gleich dem Wert idcsMaxLength für das Attribut sein und darf nicht über dem für das Attribut zugewiesenen Spaltenlimit liegen.

Beispiel: Wenn die Spalte U_VC_40 zugewiesen wurde, darf idcsMaxLength 40 nicht überschreiten.

idcsMinValue

Der Wert darf nicht kleiner sein als der Wert, der derzeit in der Filiale vorhanden ist.

idcsMaxValue

Der Wert darf nicht größer sein als der aktuelle Wert in der Filiale.

canonicalValues

Werte müssen eine übergeordnete Gruppe von Werten sein, die derzeit in der Filiale vorhanden sind.

idcsCsvAttributeName

Der Wert muss im gesamten benutzerdefinierten Schema eindeutig sein.

Name

Der Wert muss im gesamten benutzerdefinierten Schema eindeutig sein.

idcsDisplayName

Der Wert muss im gesamten benutzerdefinierten Schema eindeutig sein.

Benutzerdefinierte Benutzerschemaattribute mit PUT entfernen

Entfernen Sie Attribute in Ihrem benutzerdefinierten Schema mit der PUT-Methode.

Wenn die benutzerdefinierten Attribute "subDivision" und "branchAddress" bereits im benutzerdefinierten Schema vorhanden sind, können Sie branchAddress mit der folgenden PUT-Anforderung entfernen.

Hinweis

Es wird empfohlen, Attribute nur dann aus dem benutzerdefinierten Schema zu entfernen, wenn Sie zum ersten Mal ein benutzerdefiniertes Schema erstellen. Wenn Sie Attribute entfernen, nachdem Sie ein benutzerdefiniertes Schema erstellt haben, können Probleme auftreten, da möglicherweise bereits viele Benutzer mit den benutzerdefinierten Attributen bereitgestellt wurden. Um benutzerdefinierte Schemaattribute zu entfernen, nachdem Benutzer mit den Attributen durch Provisioning bereitgestellt wurden, müssen Sie zuerst alle Daten löschen, die sich auf die benutzerdefinierten Schemaattribute beziehen, aus der Datenbank.

PUT-Beispielanforderung

PUT /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:extension:custom:2.0:User",
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "idcsResourceTypes": ["User"],
    "attributes": [
        {
            "name": "subDivision",
            "idcsDisplayName": "Sub Division Office",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 35,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ]
}

Beispiel für JSON-Antwort

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "required": false,
            "idcsValuePersisted": true,
            "caseExact": true,
            "uniqueness": "none",
            "idcsTargetAttributeName": "I_VC_40_IFLEX_1",
            "name": "subDivision",
            "idcsDisplayName": "Sub Division Office",
            "type": "string",
            "idcsMinLength": 5,
            "idcsMaxLength": 35,
            "description": "SubDivision",
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T20:02:04.354Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

Benutzerdefinierte Benutzerschemaattribute mit PATCH entfernen

In diesem Abschnitt wird die Verwendung von PATCH "op":"remove" beim Entfernen benutzerdefinierter Benutzerschemaattribute beschrieben.

Entfernen mit Filtern verwenden

  • In diesem Beispiel wird der PATCH-Vorgang "remove" mit Filtern verwendet, um das Attribut "subDivision" zu entfernen.
    PATCH  /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "remove",
                "path": "attributes[name eq \"subDivision\"]"
            }]
    }
  • In diesem Beispiel wird der PATCH-Vorgang "remove" mit Filtern verwendet, um alle Attribute zu entfernen, bei denen die Eigenschaft "required" auf "false" gesetzt ist.
    Patch  /Schemas/urn:item:params:scam:schemas:ides:extension:custom:User
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:PatchOp"
        ],
        "Operations": [{
                "op": "remove",
                "path": "attributes[required eq false]"
            }]
    }

Beispiel für JSON-Antwort

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "attributes": [
        {
            "required": true,
            "idcsValuePersisted": true,
            "idcsTargetAttributeName": "I_VC_4K_IFLEX_1",
            "idcsMaxLength": 350,
            "caseExact": true,
            "uniqueness": "none",
            "name": "branchAddress",
            "idcsDisplayName": "Branch Address",
            "type": "string",
            "description": "Branch Office Address",
            "idcsMinLength": 5,
            "multiValued": false,
            "returned": "always",
            "mutability": "readWrite",
            "idcsSearchable": true
        }
    ],
    "meta": {
        "lastModified": "2022-08-15T20:06:53.745Z",
        "resourceType": "TenantSchema",
        "created": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>/admin/v1/TenantSchemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsLastModifiedBy": {
        "type": "App",
        "display": "admin",
        "$ref": "https://<domainURL>/admin/v1/Apps"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}

Validierungen beim Entfernen von Attributen

Wenn Sie benutzerdefinierte Attribute entfernen, führen Identitätsdomains bestimmte Validierungen aus.

Wenn benutzerdefinierte Attribute mit PUT oder PATCH entfernt werden, führen Identitätsdomains Löschvalidierungen durch, um sicherzustellen, dass zuvor keine Daten in der Datenbank für dieses Attribut bereitgestellt wurden. Wenn Daten bereitgestellt wurden, verläuft der Löschvorgang nicht erfolgreich.

Import von benutzerdefinierten Benutzerschemaattributen aktivieren

Um Daten mit einer CSV-Datei in die neuen Schemaattribute zu importieren, müssen Sie zuerst Spaltennamenswerte für die neuen Attribute festlegen.

In diesem Beispiel wurde ein neues Benutzerattribut namens employeeStatus. erstellt. Um den Wert für den Spaltennamen für dieses Attribut festzulegen, damit Sie Daten aus einer CSV-Datei in dieses Attribut importieren können, ordnen Sie das Attribut intern idcsCsvAttributeNameMappings zu.

PATCH-Beispielanforderung

Das folgende Anforderungsbeispiel zeigt, wie der Wert des Spaltennamens für das benutzerdefinierte Attribut der Zeichenfolge employeeStatus festgelegt wird.

PATCH /admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "add",
            "path": "attributes[name eq \"employeeStatus\"].idcsCsvAttributeNameMappings",
            "value": [
                {
                    "columnHeaderName": "Employee Status"
                }
            ]
        }
    ]
}

Sie können Daten jetzt mit einer CSV-Datei importieren, die eine Spalte (mit Daten) mit dem Namen Mitarbeiterstatus enthält.

Das folgende Anforderungsbeispiel zeigt, wie Sie einen Spaltennamen für ein benutzerdefiniertes Zeichenfolgenarrayattribut mit dem Namen Favoritenfarben festlegen, dessen Werte in einer CSV-Datei durch Komma getrennt wären.

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "add",
            "path": "attributes[name eq \"favoriteColors\"].idcsCsvAttributeNameMappings",
            "value": [
                {
                    "columnHeaderName": "Favorite Colors",
                    "multiValueDelimiter": ","
                }
            ]
        }
    ]
}

Weitere Informationen

  • Der Anwendungsfall zum Importieren von Benutzerdaten mit der REST-API für Identitätsdomains finden Sie unter Importieren.