Estenda o provisionamento controlado por API para sincronizar atributos personalizados
Por padrão, os aplicativos de provisionamento orientados por API oferecem suporte a atributos de processamento que fazem parte do esquema padrão SCIM Core User e Enterprise User. Seu sistema de registro pode ter atributos personalizados que você pode querer incluir como parte do provisionamento controlado por API. Este tutorial avançado descreve como estender seu aplicativo de provisionamento controlado por API para processar atributos personalizados adicionais.
Nota
Antes de tentar esse cenário avançado, recomendamos verificar se a configuração do aplicativo de provisionamento pronto para uso funciona conforme o esperado usando um dos seguintes clientes de API Graph Explorer, cURL.
Cenário de exemplo
Você configurou o aplicativo de provisionamento controlado por API. Você está provisionando o aplicativo está consumindo com êxito os atributos que fazem parte do esquema padrão SCIM Core User e Enterprise User e provisionando usuários no Microsoft Entra ID. Agora você deseja enviar dois atributos HireDate
personalizados e JobCode
do seu sistema de RH para o ponto de extremidade da API de provisionamento de entrada. Você gostaria de mapear esses dois atributos personalizados para os atributos employeeHireDate
do Microsoft Entra e jobTitle
.
Etapa 1 - Estender o esquema do aplicativo de provisionamento
Nesta etapa, adicionaremos os dois atributos "HireDate" e "JobCode" que não fazem parte do esquema SCIM padrão ao aplicativo de provisionamento e os usaremos no fluxo de dados de provisionamento.
- Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Aplicativos.
- Navegue até Aplicativos de identidade>>Aplicativos corporativos.
- Abra seu aplicativo de provisionamento controlado por API.
- Abra a folha Provisionamento .
- Clique no botão Editar provisionamento .
- Expanda a seção Mapeamentos e clique no link mapeamento de atributos.
- Role para baixo na página Mapeamentos de Atributos. Selecione Mostrar opções avançadas e clique no link Editar lista de atributos para API .
- Role para baixo até o final da página Editar lista de atributos.
- Adicione os dois atributos a seguir à lista como extensões de esquema SCIM. Você pode usar seu próprio namespace de esquema SCIM.
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
- Guarde as alterações
Nota
Se você quiser adicionar apenas alguns atributos adicionais ao aplicativo de provisionamento, use o Centro de administração do Microsoft Entra para estender o esquema. Se você quiser adicionar mais atributos personalizados (digamos 20+ atributos), recomendamos usar o UpdateSchema
modo do script do CSV2SCIM PowerShell que automatiza o processo manual acima.
Etapa 2 - Mapear os atributos personalizados
Vamos agora adicionar essas extensões ao mapeamento de atributos do aplicativo de provisionamento.
Clique no link Adicionar novo mapeamento na página Mapeamento de atributos.
Mapeie o
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
atributo paraemployeeHireDate
. Clique em OK.
Em seguida, selecione o mapeamento existente e
title
clique nele para editar o mapeamento.Edite o mapeamento de atributos para uma expressão que incluirá o
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
como parte dojobTitle
atributo Microsoft Entra.Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
Com esse mapeamento de expressão, se o
title
for "Tour Lead" eJobCode
for "TL-1001", o atributojobTitle
Microsoft Entra será definido como "Tour Lead (TL-1001)".Salve os mapeamentos de atributos.
Etapa 3 - Carregar solicitação em massa com atributos personalizados
- Abra seu cliente de API (Graph Explorer / cURL).
- Copie e cole a solicitação em massa com atributos personalizados.
- Envie a solicitação em massa para a URL do ponto de extremidade da API de provisionamento.
- Depois de algum tempo, você pode verificar os logs de provisionamento para verificar a alteração de atributo.
- Você também pode verificar a alteração no perfil de usuário do Microsoft Entra. O valor para
Employee hire date
reflete o fuso horário do locatário.
Anexo
Solicitação em massa com atributos personalizados
A solicitação em massa inclui os atributos personalizados configurados nas etapas acima.
Corpo do pedido
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
"Operations": [
{
"method": "POST",
"bulkId": "701984",
"path": "/Users",
"data": {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:contoso:1.0:User"],
"externalId": "701984",
"userName": "bjensen@example.com",
"name": {
"formatted": "Ms. Barbara J Jensen, III",
"familyName": "Jensen",
"givenName": "Barbara",
"middleName": "Jane",
"honorificPrefix": "Ms.",
"honorificSuffix": "III"
},
"displayName": "Babs Jensen",
"nickName": "Babs",
"emails": [
{
"value": "bjensen@example.com",
"type": "work",
"primary": true
}
],
"addresses": [
{
"type": "work",
"streetAddress": "234300 Universal City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91608",
"country": "USA",
"formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
"primary": true
}
],
"phoneNumbers": [
{
"value": "555-555-5555",
"type": "work"
}
],
"userType": "Employee",
"title": "Tour Guide",
"preferredLanguage": "en-US",
"locale": "en-US",
"timezone": "America/Los_Angeles",
"active":true,
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "701984",
"costCenter": "4130",
"organization": "Universal Studios",
"division": "Theme Park",
"department": "Tour Operations",
"manager": {
"value": "89607",
"displayName": "John Smith"
}
},
"urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
"HireDate": "2021-05-01T00:00:00-05:00",
"JobCode": "TG-1001"
}
}
},
{
"method": "POST",
"bulkId": "701985",
"path": "/Users",
"data": {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:contoso:1.0:User"],
"externalId": "701985",
"userName": "Kjensen@example.com",
"name": {
"formatted": "Ms. Kathy J Jensen, III",
"familyName": "Jensen",
"givenName": "Kathy",
"middleName": "Jane",
"honorificPrefix": "Ms.",
"honorificSuffix": "III"
},
"displayName": "Kathy Jensen",
"nickName": "Kathy",
"emails": [
{
"value": "kjensen@example.com",
"type": "work",
"primary": true
}
],
"addresses": [
{
"type": "work",
"streetAddress": "100 Oracle City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91618",
"country": "USA",
"formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
"primary": true
}
],
"phoneNumbers": [
{
"value": "555-555-5545",
"type": "work"
}
],
"userType": "Employee",
"title": "Tour Lead",
"preferredLanguage": "en-US",
"locale": "en-US",
"timezone": "America/Los_Angeles",
"active":true,
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "701984",
"costCenter": "4130",
"organization": "Universal Studios",
"division": "Theme Park",
"department": "Tour Operations",
"manager": {
"value": "701984",
"displayName": "Barbara Jensen"
}
},
"urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
"HireDate": "2022-07-15T00:00:00-05:00",
"JobCode": "TL-1003"
}
}
}
],
"failOnErrors": null
}