Personalizzazione degli schemi utente

Quando si inizia a utilizzare i domini di identità, è possibile caricare un set diverso di identità utente in base ai requisiti di vari reparti all'interno o all'esterno dell'organizzazione. La personalizzazione dello schema consente di creare schemi personalizzati specifici del dominio di Identity per integrare gli attributi OOTB (Out-of-the-box) per una risorsa e consentire l'estensione degli schemi utente.

Uno schema personalizzato è disponibile come OOTB vuoto senza attributi definiti. Il seguente schema "Utente personalizzato" è un esempio di schema personalizzato vuoto senza attributi. Questo schema personalizzato viene utilizzato come esempio per tutti i payload richieste di esempio in questo caso d'uso.

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

Non è possibile aggiornare le proprietà seguenti. Qualsiasi tentativo di aggiornamento di queste proprietà viene ignorato.
  • tipo

  • idcsSearchable

  • univocità

  • caseExact

  • idcsSensitive

  • multiValued

  • obbligatorio

Aggiunta di attributi di schema utente personalizzati

I collegamenti riportati di seguito forniscono informazioni e richieste di esempio per l'aggiunta di attributi di schema utente personalizzati utilizzando entrambi i metodi PUT e PATCH. Sono incluse anche le informazioni sulle convalide eseguite durante l'aggiunta di attributi.

Aggiornamento degli attributi dello schema utente personalizzato

I collegamenti riportati di seguito forniscono informazioni e richieste di esempio per l'aggiornamento degli attributi dello schema utente personalizzato utilizzando sia i metodi PUT che PATCH. Sono incluse anche le informazioni sulle convalide eseguite durante l'aggiornamento degli attributi.

Rimozione degli attributi dello schema personalizzato

I collegamenti riportati di seguito forniscono informazioni e richieste di esempio durante la rimozione degli attributi dello schema utente personalizzato utilizzando entrambi i metodi PUT e PATCH. Sono incluse anche le informazioni sulle convalide eseguite durante la rimozione degli attributi.

Abilitazione dell'importazione degli attributi dello schema utente personalizzato

Il collegamento seguente fornisce informazioni e richieste di esempio durante l'importazione degli attributi dello schema utente personalizzato.

Aggiunta di attributi di schema utente personalizzati mediante PUT

Inserire dati in uno schema personalizzato vuoto aggiungendo nuovi attributi utilizzando il metodo PUT.

In questo esempio vengono aggiornati i seguenti attributi:

Attribute Tipo

subDivision

stringa

branchAddress

stringa

Richiesta PUT di esempio

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
        }
    ]
}
Esempio di risposta JSON
{
    "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"
    }
}
}

Aggiunta di attributi di schema utente personalizzati mediante PATCH

Questo esempio mostra come utilizzare PATCH "op": "add" per aggiungere attributi personalizzati.

Le convalide eseguite durante l'esecuzione di queste operazioni sono simili al metodo PUT. Per ulteriori informazioni, vedere la sezione Convalide eseguite durante l'aggiunta di attributi.

Aggiornare lo schema personalizzato per aggiungere nuovi attributi utilizzando PATCH. In questo esempio viene utilizzata l'operazione PATCH "add" e il nome dell'attributo viene selezionato dal payload della richiesta per l'applicazione di PATCH. Se il nome specificato esiste già, viene sostituito automaticamente. Se non esiste, l'attributo viene aggiunto automaticamente. Se manca la proprietà name, viene visualizzato un messaggio di errore.

Richiesta PATCH di esempio

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

Esempio di risposta JSON

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

Convalide eseguite durante l'aggiunta di attributi

Quando si aggiungono attributi personalizzati, i domini di Identity eseguono determinate convalide. Nella tabella riportata di seguito vengono descritte le convalide basate sull'operazione Aggiungi.

Aggiungi convalidazioni

Questa tabella descrive le convalide eseguite dai domini di Identity quando si aggiungono nuovi attributi personalizzati allo schema di destinazione.

Nome attributo Convalide eseguite

nome

Controlla presenza di duplicati. Questo valore deve essere univoco nello schema personalizzato.

idcsDisplayName

Controlla presenza di duplicati. Questo valore deve essere univoco nello schema personalizzato.

idcsMaxLength

Il valore non può essere minore di 2.

idcsMinLength

Il valore non può essere minore di 1.

restituito

Il valore deve essere un valore restituito valido, ad esempio sempre, predefinito, richiesta o mai.

tipo

Il valore deve essere una stringa che può essere singola o multivalore.

mutabilità

Il valore deve essere una mutabilità valida, ad esempio readWrite, readOnly, immutabile o di sola scrittura.

idcsCsvAttributeNameMappings.columnHeaderName

Il valore deve essere univoco nello schema personalizzato.

idcsCsvAttributeNameMappings.multiValueDelimiter

Attributo obbligatorio per attributi multivalore con idcsCsvAttributeNameMappings.

Aggiornamento degli attributi dello schema utente personalizzato mediante PUT

Aggiornare gli attributi nello schema personalizzato utilizzando il metodo PUT.

Aggiornamento degli attributi

In questo esempio vengono aggiornati gli attributi per "subDivision" e "branchAddress".

Richiesta PUT di esempio

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

Esempio di risposta JSON

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

Aggiornamento degli attributi stringa con più valori

È possibile aggiornare gli attributi stringa con più valori nello schema personalizzato esistente utilizzando il metodo PUT. In questo esempio, stiamo aggiungendo l'attributo stringa multivalore "hobbies".

Richiesta PUT di esempio

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

Aggiornamento degli attributi dello schema utente personalizzato mediante PATCH

Sostituire gli attributi nello schema personalizzato utilizzando il metodo PATCH.

Utilizzo dell'operazione di sostituzione

In questo esempio viene utilizzata l'operazione di sostituzione PATCH e il nome dell'attributo viene selezionato dal payload della richiesta per l'applicazione di PATCH. Se il nome specificato esiste già, lo sostituisce automaticamente. Se non esiste, viene visualizzato un messaggio di errore.

Richiesta PATCH di esempio

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

Esempio di risposta JSON

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

Utilizzo dell'operazione di sostituzione con i filtri

  • In questo esempio, l'operazione PATCH "replace" viene utilizzata con i filtri per aggiornare a "true" tutti gli attributi che hanno la proprietà "required" con l'attributo "returned" impostato su "always":
    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 questo esempio, l'operazione PATCH "replace" viene utilizzata con i filtri per aggiornare a "false" tutti gli attributi con la proprietà "auditable" impostata su "true".
    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
            }]
    }

Esempio di risposta JSON

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

Utilizzo dell'operazione di sostituzione per aggiornare un attributo stringa con più valori

È possibile sostituire gli attributi stringa con più valori nello schema personalizzato utilizzando il metodo PATCH. In questo esempio viene utilizzata l'operazione di sostituzione PATCH e il nome dell'attributo viene selezionato dal payload della richiesta per l'applicazione di PATCH. Se il nome specificato esiste già, lo sostituisce automaticamente. Se non esiste, viene visualizzato un messaggio di errore.

Richiesta PATCH di esempio

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

Convalide eseguite durante l'aggiornamento degli attributi

Ogni volta che si sostituiscono attributi personalizzati, i domini di Identity eseguono determinate convalide. Nella tabella seguente vengono descritte le convalide basate sull'operazione di sostituzione/aggiornamento.

Sostituisci/aggiorna convalide

Questa tabella descrive le convalide eseguite dai domini di Identity quando si aggiornano gli attributi personalizzati esistenti allo schema di destinazione.

Nome attributo Convalide eseguite

idcsMinLength

Il valore non può essere minore di 1. Non può superare il limite di colonna allocato per l'attributo.

Ad esempio, se la colonna U_VC_40 è stata allocata, idcsMinLength non può superare 40.

idcsMaxLength

Il valore non può essere minore di 1. Deve essere uguale o maggiore del valore idcsMaxLength per l'attributo e non può superare il limite di colonna allocato per l'attributo.

Ad esempio, se la colonna U_VC_40 è stata allocata, idcsMaxLength non può superare 40.

idcsMinValue

Il valore non può essere minore di quello attualmente esistente nel negozio.

idcsMaxValue

Il valore non può essere maggiore di quello attualmente esistente nel negozio.

canonicalValues

I valori devono essere un superinsieme di ciò che esiste attualmente nel negozio.

idcsCsvAttributeName

Il valore deve essere univoco nello schema personalizzato.

nome

Il valore deve essere univoco nello schema personalizzato.

idcsDisplayName

Il valore deve essere univoco nello schema personalizzato.

Rimozione degli attributi dello schema utente personalizzato mediante PUT

Rimuovere gli attributi nello schema personalizzato utilizzando il metodo PUT.

Se gli attributi personalizzati "subDivision" e "branchAddress" esistono già nello schema personalizzato, è possibile rimuovere branchAddress utilizzando la richiesta PUT seguente.

Nota

Si consiglia di rimuovere gli attributi dallo schema personalizzato solo quando si sta mettendo insieme uno schema personalizzato per la prima volta. La rimozione degli attributi dopo la creazione di uno schema personalizzato potrebbe causare problemi, poiché è possibile che sia già stato eseguito il provisioning di molti utenti utilizzando gli attributi personalizzati. Per rimuovere gli attributi dello schema personalizzato dopo aver eseguito il provisioning degli utenti utilizzando gli attributi, è innanzitutto necessario eliminare dal database tutti i dati relativi agli attributi dello schema personalizzato.

Richiesta PUT di esempio

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

Esempio di risposta JSON

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

Rimozione degli attributi dello schema utente personalizzato mediante PATCH

In questa sezione viene descritto l'uso di PATCH "op":"remove" durante la rimozione degli attributi dello schema utente personalizzato.

Utilizzo dell'operazione di rimozione con i filtri

  • In questo esempio, l'operazione PATCH "remove" viene utilizzata con i filtri per rimuovere l'attributo "subDivision".
    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 questo esempio, l'operazione PATCH "remove" viene utilizzata con i filtri per rimuovere tutti gli attributi con la proprietà "required" impostata su "false".
    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]"
            }]
    }

Esempio di risposta JSON

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

Convalide eseguite durante la rimozione degli attributi

Ogni volta che si rimuovono attributi personalizzati, i domini di Identity eseguono determinate convalide.

Quando gli attributi personalizzati vengono rimossi utilizzando PUT o PATCH, i domini di Identity eseguono convalide di eliminazione per garantire che non sia stato precedentemente eseguito il provisioning dei dati nel database per tale attributo. Se è stato eseguito il provisioning dei dati, l'operazione di rimozione non riesce.

Abilitazione dell'importazione degli attributi dello schema utente personalizzato

Per importare i dati nei nuovi attributi di schema utilizzando un file .csv, è necessario prima impostare i valori dei nomi di colonna per i nuovi attributi.

In questo esempio è stato creato un nuovo attributo utente denominato employeeStatus. Per impostare il valore del nome della colonna per questo attributo in modo da poter importare i dati in tale attributo da un file .csv, mappare internamente l'attributo a idcsCsvAttributeNameMappings.

Richiesta PATCH di esempio

L'esempio di richiesta riportato di seguito mostra come impostare il valore del nome della colonna per l'attributo personalizzato della stringa employeeStatus.

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

È ora possibile importare i dati utilizzando un file .csv che include una colonna (con dati) denominata Stato dipendente.

L'esempio di richiesta riportato di seguito mostra come impostare un nome di colonna per un attributo personalizzato array di stringhe denominato Colori preferiti i cui valori sarebbero delimitati da virgole in un file .csv.

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

Ulteriori informazioni

  • Vedere Importazione per il caso d'uso sull'importazione dei dati utente mediante l'API REST dei domini di identità.