Personalizzazione degli schemi utente
Quando si inizia a utilizzare i domini di Identity, è 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 consente di estendere gli schemi utente.
Uno schema personalizzato è disponibile OOTB come schema 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 di richiesta 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"
}
}
Non è possibile aggiornare le seguenti proprietà. Qualsiasi tentativo di aggiornamento di queste proprietà viene ignorato.
Tipo
idcsSearchable
unicità
caseExact
idcsSensitive
multiValued
obbligatorio
Aggiunta degli attributi dello schema utente personalizzato
I collegamenti riportati di seguito forniscono informazioni e richieste di esempio per l'aggiunta di attributi di schema utente personalizzati utilizzando 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 i metodi PUT e PATCH. Sono incluse anche le informazioni sulle convalide eseguite durante l'aggiornamento degli attributi.
Rimozione degli attributi di schema personalizzati
I collegamenti riportati di seguito forniscono informazioni e richieste di esempio quando si rimuovono attributi di schema utente personalizzati utilizzando sia i metodi PUT che 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
Popolare uno schema personalizzato vuoto aggiungendo nuovi attributi utilizzando il metodo PUT.
In questo esempio vengono aggiornati i seguenti attributi:
Attributo | Digita |
---|---|
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
}
]
}
Risposta JSON di esempio
{
"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
In questo esempio viene illustrato 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 "add" PATCH e il nome dell'attributo viene selezionato dal payload della richiesta per l'applicazione delle PATCH. Se il nome specificato esiste già, viene sostituito automaticamente. Se non esiste, l'attributo viene aggiunto automaticamente. Se la proprietà name risulta mancante, viene visualizzato un messaggio di errore.
Esempio di richiesta PATCH
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
}
]
}
]
}
Risposta JSON di esempio
{
"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 seguente vengono descritte le convalide basate sull'operazione Aggiungi.
Aggiungi convalide
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 always, default, request o never. |
Tipo |
Il valore deve essere una stringa che può essere a più valori o singola. |
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 gli attributi a più valori 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 corso
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
}
]
}
Risposta JSON di esempio
{
"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 di attributi stringa con più valori
È possibile aggiornare gli attributi stringa a più valori nello schema personalizzato esistente utilizzando il metodo PUT. In questo esempio viene aggiunto l'attributo stringa a più valori "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 delle PATCH. Se il nome specificato esiste già, lo sostituisce automaticamente. Se non esiste, viene visualizzato un messaggio di errore.
Esempio di richiesta PATCH
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
}
]
}
]
}
Risposta JSON di esempio
{
"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 filtri
-
In questo esempio, l'operazione di sostituzione PATCH viene utilizzata con i filtri per aggiornare a "true" tutti gli attributi con 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 di sostituzione PATCH viene utilizzata con i filtri per eseguire l'aggiornamento a "false" di 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 }] }
Risposta JSON di esempio
{
"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 multivalore 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 delle PATCH. Se il nome specificato esiste già, lo sostituisce automaticamente. Se non esiste, viene visualizzato un messaggio di errore.
Esempio di richiesta PATCH
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 gli attributi personalizzati, i domini di Identity eseguono determinate convalide. Nella tabella seguente vengono descritte le convalide basate sull'operazione di sostituzione/aggiornamento.
Convalide sostituzione/aggiornamento
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 maggiore o uguale al 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 super set 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.
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 il provisioning degli utenti mediante 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
}
]
}
Risposta JSON di esempio
{
"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 di "rimozione" PATCH 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 di "rimozione" PATCH 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]" }] }
Risposta JSON di esempio
{
"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 mediante PUT o PATCH, i domini di Identity eseguono convalide di eliminazione per assicurarsi 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 dello schema utilizzando un file .csv, è necessario prima impostare i valori dei nomi delle colonne per i nuovi attributi.
In questo esempio è stato creato un nuovo attributo utente denominato employeeStatus.
Per impostare il valore del nome di colonna per questo attributo in modo da poter importare i dati in tale attributo da un file .csv, mappare internamente l'attributo a idcsCsvAttributeNameMappings
.
Esempio di richiesta PATCH
L'esempio di richiesta riportato di seguito mostra come impostare il valore del nome di colonna per l'attributo personalizzato 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 di array di stringhe denominato Colori preferiti i cui valori sono 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
-
Per informazioni sul caso d'uso relativo all'importazione dei dati utente mediante l'API REST dei domini di Identity, vedere Importazione.