Benutzerschemas anpassen

Wenn Sie mit der Verwendung von Identitätsdomains beginnen, können Sie je nach Anforderungen verschiedener Abteilungen innerhalb oder außerhalb Ihrer Organisation eine andere Gruppe von Benutzeridentitäten laden. Mit der Schemaanpassung können Sie identitätsdomänenspezifische 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 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 in diesem Anwendungsfall als Beispiel für alle Anforderungs-Payloads 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

  • Einzigartigkeit

  • caseExact

  • idcsSensitive

  • multiValued

  • erforderlich

Benutzerdefinierte Benutzerschemaattribute werden hinzugefügt

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

Benutzerdefinierte Benutzerschemaattribute aktualisieren

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

Benutzerdefinierte Schemaattribute entfernen

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

Import benutzerdefinierter Benutzerschemaattribute aktivieren

Der folgende Link enthält Informationen und Beispielanforderungen beim Import 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 werden die folgenden Attribute aktualisiert:

Attribut Typ

subDivision

Zeichenfolge

branchAddress

Zeichenfolge

Beispiel für eine PUT-Anforderung

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
        }
    ]
}
JSON-Beispielantwort
{
    "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 PATCH "op" verwenden: "add", um benutzerdefinierte Attribute hinzuzufügen.

Die Validierungen, die während dieser Operationen 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 Nameigenschaft fehlt, wird eine Fehlermeldung angezeigt.

Beispiel für eine PATCH-Anforderung

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
                }
            ]
        }
    ]
}

JSON-Beispielantwort

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

Wenn Sie benutzerdefinierte Attribute hinzufügen, 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 Durchgeführte Validierungen

name

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

idcsDisplayName

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

idcsMaxLength

Der Wert darf nicht kleiner als 2 sein.

idcsMinLength

Der Wert darf nicht kleiner als 1 sein.

zurückgegeben

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

Typ

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

Mutation

Der Wert muss eine gültige Veränderbarkeit wie readWrite, readOnly, unveränderlich 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.

Aktualisieren von Attributen

In diesem Beispiel werden die Attribute für "subDivision" und "branchAddress" aktualisiert.

Beispiel für eine PUT-Anforderung

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
        }
    ]
}

JSON-Beispielantwort

{
    "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 mehrbewertete Zeichenfolgen aktualisieren

Sie können mehrwertige Zeichenfolgenattribute in Ihrem vorhandenen benutzerdefinierten Schema mit der PUT-Methode aktualisieren. In diesem Beispiel fügen wir das mehrwertige Zeichenfolgenattribut "Hobbys" hinzu.

Beispiel für eine PUT-Anforderung

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.

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

Beispiel für eine PATCH-Anforderung

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
                }
            ]
        }
    ]
}

JSON-Beispielantwort

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

Vorgang "Ersetzen" mit Filtern verwenden

  • In diesem Beispiel wird der PATCH-Vorgang "ersetzen" mit Filtern verwendet, um alle Attribute auf "true" zu aktualisieren, bei denen die Eigenschaft "required" mit dem Attribut "returned" auf "always" 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[name eq \"workName\"].idcsDisplayName",
                "value": "workplace Name"
            }]
    }
  • In diesem Beispiel wird der PATCH-Vorgang "ersetzen" mit Filtern verwendet, um alle Attribute auf "falsch" 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
            }]
    }

JSON-Beispielantwort

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

Mit dem Vorgang "Ersetzen" ein mehrwertiges Zeichenfolgenattribut 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.

Beispiel für eine PATCH-Anforderung

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 aus. In der folgenden Tabelle werden die Validierungen beschrieben, die auf dem Ersetzen/Aktualisieren-Vorgang basieren.

Validierungen ersetzen/aktualisieren

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

Attributname Durchgeführte Validierungen

idcsMinLength

Der Wert darf nicht kleiner als 1 sein. Das Spaltenlimit, das für das Attribut zugeteilt wurde, darf nicht überschritten werden.

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

idcsMaxLength

Der Wert darf nicht kleiner als 1 sein. Der Wert muss größer/gleich dem Wert idcsMaxLength für das Attribut sein und darf den für das Attribut zugewiesenen Spaltengrenzwert nicht überschreiten.

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

idcsMinValue

Der Wert darf nicht kleiner als der aktuelle Wert in der Filiale sein.

idcsMaxValue

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

canonicalValues

Werte müssen ein Superset dessen sein, was derzeit in der Filiale vorhanden ist.

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 zusammenstellen. Das Entfernen von Attributen, nachdem Sie ein benutzerdefiniertes Schema erstellt haben, kann zu Problemen führen, da möglicherweise bereits viele Benutzer mit den benutzerdefinierten Attributen durch Provisioning 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.

Beispiel für eine PUT-Anforderung

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
        }
    ]
}

JSON-Beispielantwort

{
    "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, wobei 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]"
            }]
    }

JSON-Beispielantwort

{
    "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 aus, um sicherzustellen, dass zuvor keine Daten für dieses Attribut in der Datenbank bereitgestellt wurden. Wenn Daten bereitgestellt wurden, verläuft der Löschvorgang nicht erfolgreich.

Import benutzerdefinierter Benutzerschemaattribute 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 mit dem Namen employeeStatus. erstellt. Um den Spaltennamenswert für dieses Attribut so festzulegen, dass Sie Daten aus einer CSV-Datei in dieses Attribut importieren können, ordnen Sie das Attribut intern idcsCsvAttributeNameMappings zu.

Beispiel für eine PATCH-Anforderung

Das folgende Anforderungsbeispiel zeigt, wie der Spaltennamenswert für das benutzerdefinierte Zeichenfolgenattribut 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 jetzt Daten 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

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