Personnalisation des schémas d'utilisateur

Lorsque vous commencez à utiliser des domaines d'identité, vous pouvez charger un jeu différent d'identités d'utilisateur en fonction des exigences de différents services au sein ou à l'extérieur 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 d'une ressource et d'étendre les schémas d'utilisateur.

Un schéma personnalisé est disponible en tant que schéma vide sans attributs définis. Le schéma "Utilisateur personnalisé" suivant est un exemple de schéma personnalisé vide sans attribut. Ce schéma personnalisé est utilisé comme exemple pour toutes les données utiles de demande dans ce cas d'utilisation.

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

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

  • obligatoire

Ajout d'attributs de schéma d'utilisateur personnalisés

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. Les informations sur les validations effectuées lors de l'ajout d'attributs sont également incluses.

Mise à jour des attributs de schéma d'utilisateur personnalisé

Les liens suivants fournissent des informations et des exemples de demandes de mise à jour des attributs de schéma d'utilisateur personnalisés à l'aide des méthodes PUT et PATCH. Les informations sur les validations effectuées lors de la mise à jour des attributs sont également incluses.

Suppression des attributs de schéma personnalisé

Les liens suivants fournissent des informations et des exemples de demande lors de la suppression d'attributs de schéma utilisateur personnalisés à l'aide des méthodes PUT et PATCH. Les informations sur les validations effectuées lors de la suppression des attributs sont également incluses.

Activation de l'importation des attributs de schéma d'utilisateur personnalisé

Le lien suivant fournit des informations et des exemples de demande lors de l'importation d'attributs de schéma d'utilisateur personnalisés.

Ajout d'attributs de schéma d'utilisateur personnalisés à l'aide de PUT

Alimentez 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 de 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 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 d'utilisateur personnalisés à l'aide de 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, voir 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 PATCH "add" est utilisée et le nom de l'attribut est sélectionné dans les données utiles de la demande pour l'application de correctifs. 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 de 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 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 Add.

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

Vérifier la présence de doublons. Cette valeur doit être unique dans l'ensemble du schéma personnalisé.

idcsDisplayName

Vérifier la présence de doublons. Cette valeur doit être unique dans l'ensemble du schéma personnalisé.

idcsMaxLength

La valeur ne peut pas être inférieure à 2.

idcsMinLength

La valeur ne peut pas être inférieure à 1.

retourné

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 multivaleur.

mutabilité

La valeur doit être une mutabilité valide telle que readWrite, readOnly, non mutable ou en écriture seule.

idcsCsvAttributeNameMappings.columnHeaderName

La valeur doit être unique dans l'ensemble du schéma personnalisé.

idcsCsvAttributeNameMappings.multiValueDelimiter

Attribut obligatoire pour les attributs multivaleurs ayant idcsCsvAttributeNameMappings.

Mise à jour des attributs de schéma d'utilisateur personnalisé à l'aide de PUT

Mettez à jour les attributs de votre schéma personnalisé à l'aide de la méthode PUT.

Mise à jour des attributs

Dans cet exemple, nous mettons à jour les attributs pour "subDivision" et "branchAddress".

Exemple de 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 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 multivaleur

Vous pouvez mettre à jour les attributs de chaîne à plusieurs valeurs 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 de 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 d'utilisateur personnalisé à l'aide de PATCH

Remplacez les attributs du schéma personnalisé à l'aide de la méthode PATCH.

Utilisation de l'opération de remplacement

Dans cet exemple, l'opération PATCH "replace" est utilisée et le nom de l'attribut est sélectionné dans les données utiles de la demande pour l'application de correctifs. Si le nom indiqué existe déjà, il le remplace automatiquement. S'il n'existe pas, un message d'erreur s'affiche.

Exemple de 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 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"
    }
}

Utilisation de l'opération de remplacement avec des filtres

  • Dans cet exemple, l'opération "replace" de PATCH est utilisée avec des filtres pour mettre à jour à "true" tous les attributs qui ont la propriété "required" avec l'attribut "returned" réglé à "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 PATCH "replace" est utilisée avec des filtres pour mettre à jour à "faux" tous les attributs avec la propriété "auditable" réglée à "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 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"
    }
}

Utilisation de l'opération de remplacement pour mettre à jour un attribut de chaîne multivaleur

Vous pouvez remplacer les attributs de chaîne à plusieurs valeurs dans votre schéma personnalisé à l'aide de la méthode PATCH. Dans cet exemple, l'opération PATCH "replace" est utilisée et le nom de l'attribut est sélectionné dans les données utiles de la demande pour l'application de correctifs. Si le nom indiqué existe déjà, il le remplace automatiquement. S'il n'existe pas, un message d'erreur s'affiche.

Exemple de 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

Lorsque 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 de remplacement/mise à 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 affectée pour l'attribut.

Par exemple, si la colonne U_VC_40 a été affectée, idcsMinLength ne peut pas dépasser 40.

idcsMaxLength

La valeur ne peut pas être inférieure à 1. Elle doit être égale ou supérieure à la valeur idcsMaxLength pour l'attribut et ne peut pas dépasser la limite de colonne affectée pour l'attribut.

Par exemple, si la colonne U_VC_40 a été affecté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 super jeu de ce qui existe actuellement dans le magasin.

idcsCsvAttributeName

La valeur doit être unique dans l'ensemble du schéma personnalisé.

nom

La valeur doit être unique dans l'ensemble du schéma personnalisé.

idcsDisplayName

La valeur doit être unique dans l'ensemble du schéma personnalisé.

Suppression des attributs de schéma d'utilisateur personnalisés à l'aide de PUT

Supprimez les 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 supprimer branchAddress à l'aide de la demande PUT suivante.

Note

Il est recommandé de supprimer 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 la création d'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 supprimer des attributs de schéma personnalisé après le provisionnement des utilisateurs à 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é.

Exemple de 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 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 des attributs de schéma d'utilisateur personnalisés à l'aide de PATCH

Cette section décrit l'utilisation de PATCH "op":"remove" lors de la suppression des attributs de schéma d'utilisateur personnalisés.

Utilisation de l'opération de suppression avec des filtres

  • Dans cet exemple, l'opération "remove" de PATCH est utilisée avec des filtres pour supprimer 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 "remove" de PATCH est utilisée avec des filtres pour supprimer tous les attributs dont la propriété "required" est réglée à "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 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 supprimez des attributs personnalisés, les domaines d'identité effectuent certaines validations.

Lorsque des attributs personnalisés sont supprimé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é provisionnée précédemment dans la base de données pour cet attribut. Si des données ont été provisionnées, l'opération de suppression échoue.

Activation de l'importation des attributs de schéma d'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 nouvel attribut d'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, mappez l'attribut à l'interne à idcsCsvAttributeNameMappings.

Exemple de 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 maintenant 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 délimité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": ","
                }
            ]
        }
    ]
}

Informations supplémentaires

  • Voir Importation pour le cas d'utilisation lors de l'importation de données d'utilisateur à l'aide de l'API REST des domaines d'identité.