Personalización de esquemas de usuario

Al empezar a utilizar dominios de identidad, puede cargar un juego diferente de identidades de usuario en función de los requisitos de varios departamentos dentro o fuera de la organización. La personalización de esquemas permite crear esquemas personalizados específicos del dominio de identidad para complementar los atributos listos para usar (OOTB) de un recurso y permite ampliar los esquemas de usuario.

Hay disponible un esquema personalizado OOTB como esquema vacío sin atributos definidos. El siguiente esquema "Custom User" es un ejemplo de un esquema personalizado vacío sin atributos. Este esquema personalizado se utiliza como ejemplo para todas las cargas útiles de solicitud de ejemplo en este caso de uso.

{
    "name": "CustomUser",
    "description": "Custom User",
    "id": "urn:ietf:params:scim:schemas:idcs:extension:custom:User",
    "idcsResourceTypes": [
        "User"
    ],
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
    ],
    "meta": {
        "resourceType": "Schema",
        "created": "2022-08-15T05:02:13.788Z",
        "lastModified": "2022-08-15T05:02:13.788Z",
        "location": "https://<domainURL>>/admin/v1/Schemas/urn:ietf:params:scim:schemas:idcs:extension:custom:User"
    },
    "idcsCreatedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    },
    "idcsLastModifiedBy": {
        "value": "158d625222f442ef8fcc817593701dd9",
        "type": "App",
        "display": "idcssm",
        "$ref": "https://<domainURL>>/admin/v1/Apps/158d625222f442ef8fcc817593701dd9"
    }
}
Nota

No puede actualizar las siguientes propiedades. Se ignora cualquier intento de actualizar estas propiedades.
  • tipo

  • idcsSearchable

  • unicidad

  • caseExact

  • idcsSensitive

  • multiValued

  • Necesario

Agregando Atributos de Esquema de Usuario Personalizados

Los siguientes enlaces proporcionan información y solicitudes de ejemplo para agregar atributos de esquema de usuario personalizados mediante los métodos PUT y PATCH. También se incluye información sobre las validaciones realizadas al agregar atributos.

Actualización de atributos de esquema de usuario personalizados

Los siguientes enlaces proporcionan información y solicitudes de ejemplo para actualizar atributos de esquema de usuario personalizados mediante los métodos PUT y PATCH. También se incluye información sobre las validaciones realizadas al actualizar atributos.

Eliminación de atributos de esquema personalizados

Los siguientes enlaces proporcionan información y solicitudes de ejemplo al eliminar atributos de esquema de usuario personalizados mediante los métodos PUT y PATCH. También se incluye información sobre las validaciones realizadas al eliminar atributos.

Activación de la importación de atributos de esquema de usuario personalizados

El siguiente enlace proporciona información y solicitudes de ejemplo al importar atributos de esquema de usuario personalizados.

Adición de atributos de esquema de usuario personalizados mediante PUT

Rellene un esquema personalizado vacío agregando nuevos atributos mediante el método PUT.

En este ejemplo, estamos actualizando los siguientes atributos:

Atributo Tipo

subDivision

Cadena

branchAddress

Cadena

Ejemplo de solicitud 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
        }
    ]
}
Ejemplo de respuesta 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"
    }
}
}

Adición de atributos de esquema de usuario personalizados mediante PATCH

En este ejemplo se muestra cómo utilizar PATCH "op": "add" para agregar atributos personalizados.

Las validaciones realizadas durante la realización de estas operaciones son similares al método PUT. Consulte la sección Validaciones realizadas al agregar atributos para obtener más información.

Actualice el esquema personalizado para agregar nuevos atributos mediante PATCH. En este ejemplo, se utiliza la operación "add" de PATCH y el nombre del atributo se selecciona de la carga útil de solicitud para la aplicación de parches. Si el nombre especificado ya existe, se sustituye automáticamente. Si no existe, el atributo se agrega automáticamente. Si falta la propiedad de nombre, aparece un mensaje de error.

Ejemplo de solicitud 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
                }
            ]
        }
    ]
}

Ejemplo de respuesta 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"
}

Validaciones realizadas al agregar atributos

Al agregar atributos personalizados, los dominios de identidad realizan determinadas validaciones. En la siguiente tabla se describen las validaciones basadas en la operación Agregar.

Agregar validaciones

En esta tabla se describen las validaciones que realizan los dominios de identidad al agregar nuevos atributos personalizados al esquema de destino.

Nombre de Atributo Validaciones realizadas

nombre

Buscar duplicados. Este valor debe ser único en el esquema personalizado.

idcsDisplayName

Buscar duplicados. Este valor debe ser único en el esquema personalizado.

idcsMaxLength

El valor no puede ser menor que 2.

idcsMinLength

El valor no puede ser menor que 1.

devuelto

El valor debe ser un valor de retorno válido, como siempre, por defecto, solicitud o nunca.

tipo

El valor debe ser una cadena que pueda tener uno o varios valores.

mutabilidad

El valor debe ser una mutabilidad válida como readWrite, readOnly, inmutable o de solo escritura.

idcsCsvAttributeNameMappings.columnHeaderName

El valor debe ser único en el esquema personalizado.

idcsCsvAttributeNameMappings.multiValueDelimiter

Atributo obligatorio para atributos de varios valores que tienen idcsCsvAttributeNameMappings.

Actualización de atributos de esquema de usuario personalizados mediante PUT

Actualice los atributos del esquema personalizado mediante el método PUT.

Actualizando Atributos

En este ejemplo, estamos actualizando los atributos de "subDivision" y "branchAddress".

Ejemplo de solicitud 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
        }
    ]
}

Ejemplo de respuesta 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"
    }
}

Actualización de atributos de cadena de varios valores

Puede actualizar atributos de cadena de varios valores en el esquema personalizado existente mediante el método PUT. En este ejemplo, estamos agregando el atributo de cadena de varios valores "hobbies".

Ejemplo de solicitud 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
        } 
    ]
}

Actualización de atributos de esquema de usuario personalizados mediante PATCH

Sustituya los atributos en el esquema personalizado mediante el método PATCH.

Uso de la Operación de Sustitución

En este ejemplo, se utiliza la operación PATCH "replace" y el nombre del atributo se selecciona de la carga útil de solicitud para la aplicación de parches. Si el nombre especificado ya existe, lo sustituye automáticamente. Si no existe, aparece un mensaje de error.

Ejemplo de solicitud 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
                }
            ]
        }
    ]
}

Ejemplo de respuesta 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"
    }
}

Uso de la operación de sustitución con filtros

  • En este ejemplo, la operación "replace" de PATCH se utiliza con filtros para actualizar a "true" todos los atributos que tienen la propiedad "required" con el atributo "returned" definido en "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"
            }]
    }
  • En este ejemplo, la operación "replace" de PATCH se utiliza con filtros para actualizar a "false" todos los atributos con la propiedad "auditable" establecida en "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
            }]
    }

Ejemplo de respuesta 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"
    }
}

Uso de la Operación de Sustitución para Actualizar un Atributo de Cadena de Varios Valores

Puede sustituir atributos de cadena de varios valores en el esquema personalizado mediante el método PATCH. En este ejemplo, se utiliza la operación PATCH "replace" y el nombre del atributo se selecciona de la carga útil de solicitud para la aplicación de parches. Si el nombre especificado ya existe, lo sustituye automáticamente. Si no existe, aparece un mensaje de error.

Ejemplo de solicitud 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
                }
            ] 
        }
    ]
}

Validaciones realizadas al actualizar atributos

Cada vez que sustituye atributos personalizados, los dominios de identidad realizan determinadas validaciones. En la siguiente tabla se describen las validaciones basadas en la operación de sustitución/actualización.

Sustituir/actualizar validaciones

En esta tabla se describen las validaciones que realizan los dominios de identidad al actualizar los atributos personalizados existentes al esquema de destino.

Nombre de Atributo Validaciones realizadas

idcsMinLength

El valor no puede ser menor que 1. No puede superar el límite de columna asignado para el atributo.

Por ejemplo, si se ha asignado la columna U_VC_40, idcsMinLength no puede superar 40.

idcsMaxLength

El valor no puede ser menor que 1. Debe ser igual o mayor que el valor idcsMaxLength para el atributo y no puede superar el límite de columna asignado para el atributo.

Por ejemplo, si se ha asignado la columna U_VC_40, idcsMaxLength no puede superar 40.

idcsMinValue

El valor no puede ser menor que el que existe actualmente en la tienda.

idcsMaxValue

El valor no puede ser mayor que el que existe actualmente en la tienda.

canonicalValues

Los valores deben ser un superjuego de lo que existe actualmente en la tienda.

idcsCsvAttributeName

El valor debe ser único en el esquema personalizado.

nombre

El valor debe ser único en el esquema personalizado.

idcsDisplayName

El valor debe ser único en el esquema personalizado.

Eliminación de atributos de esquema de usuario personalizados mediante PUT

Elimine los atributos del esquema personalizado mediante el método PUT.

Si los atributos personalizados "subDivision" y "branchAddress" ya existen en el esquema personalizado, puede eliminar branchAddress mediante la siguiente solicitud PUT.

Nota

Se recomienda eliminar atributos del esquema personalizado solo al armar un esquema personalizado por primera vez. La eliminación de atributos después de crear un esquema personalizado puede causar problemas, ya que es posible que muchos usuarios ya se hayan aprovisionado mediante los atributos personalizados. Para eliminar atributos de esquema personalizados después de que los usuarios se hayan aprovisionado mediante los atributos, primero debe suprimir todos los datos que pertenecen a los atributos de esquema personalizados de la base de datos.

Ejemplo de solicitud 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
        }
    ]
}

Ejemplo de respuesta 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"
    }
}

Eliminación de atributos de esquema de usuario personalizados mediante PATCH

En esta sección se describe el uso de PATCH "op":"remove" al eliminar atributos de esquema de usuario personalizados.

Uso de la operación Eliminar con filtros

  • En este ejemplo, la operación PATCH "remove" se utiliza con filtros para eliminar el atributo "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\"]"
            }]
    }
  • En este ejemplo, la operación "remove" de PATCH se utiliza con filtros para eliminar todos los atributos con la propiedad "required" establecida en "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]"
            }]
    }

Ejemplo de respuesta 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"
    }
}

Validaciones realizadas al eliminar atributos

Cada vez que elimina atributos personalizados, los dominios de identidad realizan determinadas validaciones.

Cuando se eliminan atributos personalizados mediante PUT o PATCH, los dominios de identidad realizan validaciones de supresión para garantizar que no se haya aprovisionado previamente ningún dato en la base de datos para ese atributo. Si se han aprovisionado datos, la operación de eliminación falla.

Activación de la importación de atributos de esquema de usuario personalizados

Para importar datos a los nuevos atributos de esquema mediante un archivo .csv, primero debe definir los valores de nombre de columna para los nuevos atributos.

En este ejemplo, se ha creado un nuevo atributo de usuario denominado employeeStatus. Para definir el valor de nombre de columna para este atributo de modo que pueda importar datos a ese atributo desde un archivo .csv, asigne internamente el atributo a idcsCsvAttributeNameMappings.

Ejemplo de solicitud PATCH

El siguiente ejemplo de solicitud muestra cómo definir el valor de nombre de columna para el atributo personalizado de cadena 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"
                }
            ]
        }
    ]
}

Ahora puede importar datos mediante un archivo .csv que incluya una columna (con datos) denominada Estado de empleado.

En el siguiente ejemplo de solicitud se muestra cómo definir un nombre de columna para un atributo personalizado de matriz de cadena denominado Colores favoritos cuyos valores estarían delimitados por comas en un archivo .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": ","
                }
            ]
        }
    ]
}

Más información

  • Consulte Importación para conocer el caso de uso al importar datos de usuario mediante la API de REST de dominios de identidad.