Personnaliser les schémas utilisateur
Lorsque vous commencez à utiliser des domaines d'identité, vous pouvez charger un ensemble différent d'identités utilisateur en fonction des exigences de divers services au sein ou en dehors de votre organisation. La personnalisation de schéma vous permet de créer des schémas personnalisés propres au domaine d'identité afin de compléter les attributs prêts à l'emploi (OOTB) d'une ressource et d'étendre les schémas utilisateur.
Un schéma personnalisé est disponible en tant que schéma vide sans attribut défini. Le schéma Custom User suivant est un exemple de schéma personnalisé vide sans attribut. Ce schéma personnalisé est utilisé comme exemple pour tous les exemples de charge utile de demande dans ce cas d'emploi.
{
"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"
}
}
Vous ne pouvez pas mettre à jour les propriétés suivantes. Toute tentative de mise à jour de ces propriétés est ignorée.
type
idcsSearchable
unicité
caseExact
idcsSensitive
multiValued
requis
Ajout d'attributs de schéma utilisateur personnalisé
Les liens suivants fournissent des informations et des exemples de demandes d'ajout d'attributs de schéma utilisateur personnalisés à l'aide des méthodes PUT et PATCH. Des informations sur les validations effectuées lors de l'ajout d'attributs sont également incluses.
Mise à jour des attributs de schéma utilisateur personnalisé
Les liens suivants fournissent des informations et des exemples de demandes de mise à jour d'attributs de schéma utilisateur personnalisés à l'aide des méthodes PUT et PATCH. Des informations sur les validations effectuées lors de la mise à jour des attributs sont également incluses.
Suppression d'attributs de schéma personnalisés
Les liens suivants fournissent des informations et des exemples de demandes lors de la suppression d'attributs de schéma utilisateur personnalisés à l'aide des méthodes PUT et PATCH. Des informations sur les validations effectuées lors de la suppression d'attributs sont également incluses.
Activation de l'importation d'attributs de schéma utilisateur personnalisé
Le lien suivant fournit des informations et des exemples de demandes lors de l'importation d'attributs de schéma utilisateur personnalisé.
Ajout d'attributs de schéma utilisateur personnalisés à l'aide de PUT
Remplissez un schéma personnalisé vide en ajoutant de nouveaux attributs à l'aide de la méthode PUT.
Dans cet exemple, nous mettons à jour les attributs suivants :
| Attribut | Type |
|---|---|
|
subDivision |
chaîne |
|
branchAddress |
chaîne |
Exemple d'une demande PUT
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
}
]
}
Exemple de réponse au format 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"
}
}
}
Ajout d'attributs de schéma utilisateur personnalisés avec PATCH
Cet exemple montre comment utiliser PATCH "op" : "add" pour ajouter des attributs personnalisés.
Les validations effectuées lors de ces opérations sont similaires à la méthode PUT. Pour plus d'informations, reportez-vous à la section Validations effectuées lors de l'ajout d'attributs.
Mettez à jour le schéma personnalisé pour ajouter de nouveaux attributs à l'aide de PATCH. Dans cet exemple, l'opération "add" PATCH est utilisée et le nom d'attribut est sélectionné dans la charge utile de la demande pour l'application de patches. Si le nom spécifié existe déjà, il est remplacé automatiquement. S'il n'existe pas, l'attribut est automatiquement ajouté. Si la propriété name est manquante, un message d'erreur s'affiche.
Exemple d'une demande 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
}
]
}
]
}
Exemple de réponse au format 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"
}
Validations effectuées lors de l'ajout d'attributs
Lorsque vous ajoutez des attributs personnalisés, les domaines d'identité effectuent certaines validations. Le tableau suivant décrit les validations basées sur l'opération d'ajout.
Ajouter des validations
Ce tableau décrit les validations effectuées par les domaines d'identité lorsque vous ajoutez de nouveaux attributs personnalisés au schéma cible.
| Nom d'attribut | Validations effectuées |
|---|---|
|
nom |
Rechercher les éléments en double. Cette valeur doit être unique dans le schéma personnalisé. |
|
idcsDisplayName |
Rechercher les éléments en double. Cette valeur doit être unique dans le schéma personnalisé. |
|
idcsMaxLength |
La valeur ne peut pas être inférieure à 2. |
|
idcsMinLength |
La valeur ne peut pas être inférieure à 1. |
|
renvoyé |
La valeur doit être une valeur de retour valide, telle que Toujours, Par défaut, Demande ou Jamais. |
|
type |
La valeur doit être une chaîne qui peut être unique ou à valeurs multiples. |
|
mutabilité |
La valeur doit être une mutabilité valide telle que readWrite, readOnly, immuable ou en écriture seule. |
|
idcsCsvAttributeNameMappings.columnHeaderName |
La valeur doit être unique dans le schéma personnalisé. |
|
idcsCsvAttributeNameMappings.multiValueDelimiter |
Attribut obligatoire pour les attributs à valeurs multiples ayant idcsCsvAttributeNameMappings. |
Mise à jour des attributs de schéma utilisateur personnalisé avec PUT
Mettez à jour les attributs dans votre schéma personnalisé à l'aide de la méthode PUT.
Mise à jour des attributs
Dans cet exemple, nous mettons à jour les attributs de "subDivision" et "branchAddress".
Exemple d'une demande PUT
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
}
]
}
Exemple de réponse au format 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"
}
}
Mise à jour des attributs de chaîne multivaleurs
Vous pouvez mettre à jour des attributs de chaîne à valeurs multiples dans votre schéma personnalisé existant à l'aide de la méthode PUT. Dans cet exemple, nous ajoutons l'attribut de chaîne à valeurs multiples "hobbies".
Exemple d'une demande PUT
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
}
]
}
Mise à jour des attributs de schéma utilisateur personnalisé avec PATCH
Remplacez les attributs du schéma personnalisé à l'aide de la méthode PATCH.
Utiliser l'opération de remplacement
Dans cet exemple, l'opération "replace" de PATCH est utilisée et le nom de l'attribut est sélectionné dans la charge utile de la demande pour l'application de patches. Si le nom spécifié existe déjà, il le remplace automatiquement. S'il n'existe pas, un message d'erreur s'affiche.
Exemple d'une demande 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
}
]
}
]
}
Exemple de réponse au format 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"
}
}
Utiliser l'opération Replace avec les filtres
-
Dans cet exemple, l'opération "replace" de PATCH est utilisée avec des filtres pour mettre à jour sur "true" tous les attributs qui ont la propriété "required" avec l'attribut "returned" défini sur "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" }] } -
Dans cet exemple, l'opération "replace" de PATCH est utilisée avec des filtres pour mettre à jour sur "false" tous les attributs dont la propriété "auditable" est définie sur "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 }] }
Exemple de réponse au format 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"
}
}
Utiliser l'opération de remplacement pour mettre à jour un attribut de chaîne multivaleur
Vous pouvez remplacer les attributs de chaîne à valeurs multiples dans votre schéma personnalisé à l'aide de la méthode PATCH. Dans cet exemple, l'opération "replace" de PATCH est utilisée et le nom de l'attribut est sélectionné dans la charge utile de la demande pour l'application de patches. Si le nom spécifié existe déjà, il le remplace automatiquement. S'il n'existe pas, un message d'erreur s'affiche.
Exemple d'une demande 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
}
]
}
]
}
Validations effectuées lors de la mise à jour des attributs
Chaque fois que vous remplacez des attributs personnalisés, les domaines d'identité effectuent certaines validations. Le tableau suivant décrit les validations basées sur l'opération Remplacer/Mettre à jour.
Remplacer/Mettre à jour les validations
Ce tableau décrit les validations effectuées par les domaines d'identité lorsque vous mettez à jour des attributs personnalisés existants vers le schéma cible.
| Nom d'attribut | Validations effectuées |
|---|---|
|
idcsMinLength |
La valeur ne peut pas être inférieure à 1. Il ne peut pas dépasser la limite de colonne allouée pour l'attribut. Par exemple, si la colonne U_VC_40 a été allouée, idcsMinLength ne peut pas dépasser 40. |
|
idcsMaxLength |
La valeur ne peut pas être inférieure à 1. Il doit être supérieur ou égal à la valeur idcsMaxLength pour l'attribut et ne peut pas dépasser la limite de colonne allouée pour l'attribut. Par exemple, si la colonne U_VC_40 a été allouée, idcsMaxLength ne peut pas dépasser 40. |
|
idcsMinValue |
La valeur ne peut pas être inférieure à ce qui existe actuellement dans le magasin. |
|
idcsMaxValue |
La valeur ne peut pas être supérieure à ce qui existe actuellement dans le magasin. |
|
canonicalValues |
Les valeurs doivent être un superensemble de ce qui existe actuellement dans le magasin. |
|
idcsCsvAttributeName |
La valeur doit être unique dans le schéma personnalisé. |
|
nom |
La valeur doit être unique dans le schéma personnalisé. |
|
idcsDisplayName |
La valeur doit être unique dans le schéma personnalisé. |
Suppression d'attributs de schéma utilisateur personnalisé avec PUT
Enlevez des attributs de votre schéma personnalisé à l'aide de la méthode PUT.
Si les attributs personnalisés "subDivision" et "branchAddress" existent déjà dans le schéma personnalisé, vous pouvez enlever branchAddress à l'aide de la demande PUT suivante.
Il est recommandé de retirer des attributs du schéma personnalisé uniquement lorsque vous créez un schéma personnalisé pour la première fois. La suppression d'attributs après avoir créé un schéma personnalisé peut entraîner des problèmes, car de nombreux utilisateurs ont peut-être déjà été provisionnés à l'aide des attributs personnalisés. Pour enlever des attributs de schéma personnalisés après que les utilisateurs ont été provisionnés à l'aide des attributs, vous devez d'abord supprimer de la base de données toutes les données relatives aux attributs de schéma personnalisés.
Exemple d'une demande PUT
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
}
]
}
Exemple de réponse au format 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"
}
}
Suppression d'attributs de schéma utilisateur personnalisé avec PATCH
Cette section décrit l'utilisation de PATCH "op":"remove" lors de la suppression d'attributs de schéma utilisateur personnalisés.
Utilisation de l'opération de suppression avec des filtres
-
Dans cet exemple, l'opération PATCH "remove" est utilisée avec des filtres pour enlever l'attribut "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\"]" }] } -
Dans cet exemple, l'opération PATCH "remove" est utilisée avec des filtres pour supprimer tous les attributs dont la propriété "required" est définie sur "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]" }] }
Exemple de réponse au format 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"
}
}
Validations effectuées lors de la suppression d'attributs
Chaque fois que vous enlevez des attributs personnalisés, les domaines d'identité effectuent certaines validations.
Lorsque des attributs personnalisés sont enlevés à l'aide de PUT ou PATCH, les domaines d'identité effectuent des validations de suppression pour s'assurer qu'aucune donnée n'a été précédemment provisionnée dans la base de données pour cet attribut. Si les données ont été provisionnées, l'opération de suppression échoue.
Activation de l'importation d'attributs de schéma utilisateur personnalisé
Pour importer des données dans vos nouveaux attributs de schéma à l'aide d'un fichier .csv, vous devez d'abord définir des valeurs de nom de colonne pour les nouveaux attributs.
Dans cet exemple, un attribut utilisateur nommé employeeStatus. a été créé. Pour définir la valeur de nom de colonne pour cet attribut afin que vous puissiez importer des données vers cet attribut à partir d'un fichier .csv, mettez en correspondance l'attribut en interne avec idcsCsvAttributeNameMappings.
Exemple d'une demande PATCH
L'exemple de demande suivant montre comment définir la valeur de nom de colonne pour l'attribut personnalisé de chaîne 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"
}
]
}
]
}
Vous pouvez désormais importer des données à l'aide d'un fichier .csv qui inclut une colonne (avec des données) nommée Statut de l'employé.
L'exemple de demande suivant montre comment définir un nom de colonne pour un attribut personnalisé de tableau de chaînes nommé Couleurs favorites dont les valeurs seraient séparées par des virgules dans un fichier .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": ","
}
]
}
]
}
Plus d'informations
-
Reportez-vous à Import pour connaître le cas d'emploi de l'import de données utilisateur à l'aide de l'API REST de domaines d'identité.