Personalizando Esquemas do Usuário
Quando você começar a usar domínios de identidades, poderá carregar um conjunto diferente de identidades de usuário com base nos requisitos de vários departamentos dentro ou fora da sua organização. A Personalização de Esquema permite criar esquemas personalizados específicos do domínio de identidades para complementar os atributos prontos para uso (OOTB) de um recurso e permite que os esquemas do usuário sejam estendidos.
Um esquema personalizado está disponível no OOTB como um esquema vazio sem atributos definidos. O esquema "Usuário Personalizado" a seguir é um exemplo de um esquema personalizado vazio sem atributos. Este esquema personalizado é usado como exemplo para todos os payloads de solicitação de exemplo neste 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"
}
}
Não é possível atualizar as propriedades a seguir. Qualquer tentativa de atualizar essas propriedades será ignorada.
tipo
idcsSearchable
exclusividade
caseExact
idcsSensitive
multiValued
obrigatório
Adicionando Atributos de Esquema do Usuário Personalizado
Os links a seguir fornecem informações e solicitações de exemplo para adicionar atributos de esquema de usuário personalizados usando os métodos PUT e PATCH. Também são incluídas informações sobre as validações executadas ao adicionar atributos.
Atualizando Atributos de Esquema do Usuário Personalizado
Os links a seguir fornecem informações e solicitações de exemplo para atualizar atributos de esquema de usuário personalizados usando os métodos PUT e PATCH. Informações sobre validações executadas ao atualizar atributos também são incluídas.
Removendo Atributos de Esquema Personalizados
Os links a seguir fornecem informações e solicitações de exemplo ao remover atributos personalizados do esquema do usuário usando os métodos PUT e PATCH. Informações sobre validações executadas ao remover atributos também são incluídas.
Ativando a Importação de Atributos de Esquema de Usuário Personalizado
O link a seguir fornece informações e solicitações de exemplo ao importar atributos de esquema do usuário personalizado.
Adicionando Atributos de Esquema de Usuário Personalizados Usando PUT
Preencha um esquema personalizado vazio adicionando novos atributos usando o método PUT.
Neste exemplo, estamos atualizando os seguintes atributos:
| Atributo | Tipo |
|---|---|
|
subDivision |
string |
|
branchAddress |
string |
Exemplo de Solicitação de 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
}
]
}
Exemplo de Resposta 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"
}
}
}
Adicionando Atributos de Esquema de Usuário Personalizado Usando PATCH
Este exemplo mostra como usar PATCH "op": "add" para adicionar atributos personalizados.
As validações realizadas durante a realização dessas operações são semelhantes ao método PUT. Consulte a seção Validações Executadas ao Adicionar Atributos para obter mais informações.
Atualize o esquema personalizado para adicionar novos atributos usando PATCH. Neste exemplo, a operação "adicionar" de PATCH é usada, e o nome do atributo é selecionado no payload de solicitação para aplicação de PATCH. Se o nome especificado já existir, ele será substituído automaticamente. Se não existir, o atributo será adicionado automaticamente. Se a propriedade name estiver ausente, uma mensagem de erro será exibida.
Exemplo de Solicitação de 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
}
]
}
]
}
Exemplo de Resposta 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"
}
Validações Executadas ao Adicionar Atributos
Quando você adiciona atributos personalizados, os domínios de identidades executam determinadas validações. A tabela a seguir descreve as validações com base na operação Adicionar.
Adicionar Validações
Esta tabela descreve as validações que os domínios de identidades executam quando você adiciona novos atributos personalizados ao esquema de destino.
| Nome do Atributo | Validações Realizadas |
|---|---|
|
nome |
Verifique se há duplicatas. Este valor deve ser exclusivo no esquema personalizado. |
|
idcsDisplayName |
Verifique se há duplicatas. Este valor deve ser exclusivo no esquema personalizado. |
|
idcsMaxLength |
O valor não pode ser menor que 2. |
|
idcsMinLength |
O valor não pode ser menor que 1. |
|
retornado |
O valor deve ser um valor de retorno válido, como sempre, padrão, solicitação ou nunca. |
|
tipo |
O valor deve ser uma string que pode ter um ou vários valores. |
|
mutabilidade |
O valor deve ser uma mutabilidade válida, como readWrite, readOnly, imutável ou somente para gravação. |
|
idcsCsvAttributeNameMappings.columnHeaderName |
O valor deve ser exclusivo no esquema personalizado. |
|
idcsCsvAttributeNameMappings.multiValueDelimiter |
Atributo obrigatório para atributos com vários valores que têm idcsCsvAttributeNameMappings. |
Atualizando atributos de esquema de usuário personalizado usando PUT
Atualize atributos em seu esquema personalizado usando o método PUT.
Atualizando Atributos
Neste exemplo, estamos atualizando os atributos para "subDivision" e "branchAddress".
Exemplo de Solicitação de 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
}
]
}
Exemplo de Resposta 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"
}
}
Atualizando Atributos de String de Vários Valores
Você pode atualizar atributos de string com vários valores em seu esquema personalizado existente usando o método PUT. Neste exemplo, estamos adicionando o atributo de string com vários valores "hobbies".
Exemplo de Solicitação de 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
}
]
}
Atualizando Atributos de Esquema do Usuário Personalizado Usando PATCH
Substitua os atributos no esquema personalizado usando o método PATCH.
Usando a Operação Substituir
Neste exemplo, a operação "substituir" PATCH é usada, e o nome do atributo é selecionado no payload de solicitação para aplicação de PATCH. Se o nome especificado já existir, ele o substituirá automaticamente. Se não existir, uma mensagem de erro será exibida.
Exemplo de Solicitação de 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
}
]
}
]
}
Exemplo de Resposta 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"
}
}
Usando a Operação Substituir por Filtros
-
Neste exemplo, a operação PATCH "replace" é usada com filtros para atualizar para "true" todos os atributos que têm a propriedade "required" com o atributo "returned" definido como "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" }] } -
Neste exemplo, a operação PATCH "replace" é usada com filtros para atualizar para "false" todos os atributos com a propriedade "auditable" definida como "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 }] }
Exemplo de Resposta 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"
}
}
Usando a Operação de Substituição para Atualizar um Atributo de String de Vários Valores
Você pode substituir atributos de string com vários valores em seu esquema personalizado usando o método PATCH. Neste exemplo, a operação "substituir" PATCH é usada, e o nome do atributo é selecionado no payload de solicitação para aplicação de PATCH. Se o nome especificado já existir, ele o substituirá automaticamente. Se não existir, uma mensagem de erro será exibida.
Exemplo de Solicitação de 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
}
]
}
]
}
Validações Executadas ao Atualizar Atributos
Sempre que você substitui atributos personalizados, os domínios de identidades executam determinadas validações. A tabela a seguir descreve as validações com base na operação Substituir/Atualizar.
Substituir/Atualizar Validações
Esta tabela descreve as validações que os domínios de identidades executam quando você atualiza atributos personalizados existentes para o esquema de destino.
| Nome do Atributo | Validações Realizadas |
|---|---|
|
idcsMinLength |
O valor não pode ser menor que 1. Não pode estar acima do limite de colunas alocado para o atributo. Por exemplo, se a coluna U_VC_40 tiver sido alocada, idcsMinLength não poderá exceder 40. |
|
idcsMaxLength |
O valor não pode ser menor que 1. Deve ser igual ou maior que o valor idcsMaxLength para o atributo e não pode estar acima do limite de coluna alocado para o atributo. Por exemplo, se a coluna U_VC_40 tiver sido alocada, idcsMaxLength não poderá exceder 40. |
|
idcsMinValue |
O valor não pode ser menor que o que existe atualmente na loja. |
|
idcsMaxValue |
O valor não pode ser maior que o que existe atualmente na loja. |
|
canonicalValues |
Os valores devem ser um superconjunto do que existe atualmente na loja. |
|
idcsCsvAttributeName |
O valor deve ser exclusivo no esquema personalizado. |
|
nome |
O valor deve ser exclusivo no esquema personalizado. |
|
idcsDisplayName |
O valor deve ser exclusivo no esquema personalizado. |
Removendo atributos de esquema de usuário personalizado usando PUT
Remova os atributos do seu esquema personalizado usando o método PUT.
Se os atributos personalizados "subDivision" e "branchAddress" já existirem no esquema personalizado, você poderá remover branchAddress usando a solicitação PUT a seguir.
É recomendável que você remova atributos do esquema personalizado somente quando estiver montando um esquema personalizado pela primeira vez. A remoção de atributos após a criação de um esquema personalizado pode causar problemas, pois muitos usuários já podem ter sido provisionados usando os atributos personalizados. Para remover atributos de esquema personalizados depois que os usuários tiverem sido provisionados usando os atributos, primeiro exclua todos os dados que pertencem aos atributos de esquema personalizados do banco de dados.
Exemplo de Solicitação de 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
}
]
}
Exemplo de Resposta 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"
}
}
Removendo Atributos de Esquema do Usuário Personalizado Usando PATCH
Esta seção descreve o uso do PATCH "op":"remove" ao remover atributos personalizados do esquema do usuário.
Usando a Operação Remover com Filtros
-
Neste exemplo, a operação "remover" do PATCH é usada com filtros para remover o 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\"]" }] } -
Neste exemplo, a operação PATCH "remove" é usada com filtros para remover todos os atributos com a propriedade "required" definida como "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]" }] }
Exemplo de Resposta 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"
}
}
Validações Executadas ao Remover Atributos
Sempre que você remove atributos personalizados, os domínios de identidades executam determinadas validações.
Quando atributos personalizados são removidos usando PUT ou PATCH, os domínios de identidade executam validações de exclusão para garantir que nenhum dado tenha sido provisionado anteriormente no banco de dados para esse atributo. Se os dados tiverem sido provisionados, a operação de remoção falhará.
Ativando a Importação de Atributos de Esquema de Usuário Personalizado
Para importar dados para seus novos atributos de esquema usando um arquivo .csv, você deve primeiro definir valores de nome de coluna para os novos atributos.
Neste exemplo, um novo atributo de usuário foi criado chamado employeeStatus. Para definir o valor do nome da coluna para esse atributo para que você possa importar dados para esse atributo de um arquivo .csv, mapeie internamente o atributo para idcsCsvAttributeNameMappings.
Exemplo de Solicitação de PATCH
O exemplo de solicitação a seguir mostra como definir o valor do nome da coluna para o atributo personalizado da string 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"
}
]
}
]
}
Agora você pode importar dados usando um arquivo .csv que inclua uma coluna (com dados) com o nome Status do Funcionário.
O exemplo de solicitação a seguir mostra como definir um nome de coluna para um atributo personalizado de array de strings chamado Cores Favoritas cujos valores seriam delimitados por vírgulas em um arquivo .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": ","
}
]
}
]
}
Mais Informações
-
Consulte Importando para obter o caso de uso sobre a importação de dados do usuário usando a API REST de domínios de identidades.