Partilhar via


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.

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Aplicativos.
  2. Navegue até Aplicativos de identidade>>Aplicativos corporativos.
  3. Abra seu aplicativo de provisionamento controlado por API.
  4. Abra a folha Provisionamento .
  5. Clique no botão Editar provisionamento .
  6. Expanda a seção Mapeamentos e clique no link mapeamento de atributos.
    Captura de tela do mapeamento de atributos de edição.
  7. 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 . Captura de tela da lista de atributos da API de edição.
  8. Role para baixo até o final da página Editar lista de atributos.
  9. 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
    Captura de tela da adição de atributos personalizados.
  10. 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.

  1. Clique no link Adicionar novo mapeamento na página Mapeamento de atributos. Captura de tela de adicionar novo mapeamento.

  2. Mapeie o urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate atributo para employeeHireDate. Clique em OK.
    Captura de tela do mapeamento de data de contratação.

  3. Em seguida, selecione o mapeamento existente e title clique nele para editar o mapeamento.

  4. 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 do jobTitle atributo Microsoft Entra.

      Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
    

    Captura de tela do mapeamento do título do trabalho.

    Com esse mapeamento de expressão, se o title for "Tour Lead" e JobCodefor "TL-1001", o atributo jobTitle Microsoft Entra será definido como "Tour Lead (TL-1001)".

  5. Salve os mapeamentos de atributos.

Etapa 3 - Carregar solicitação em massa com atributos personalizados

  1. Abra seu cliente de API (Graph Explorer / cURL).
  2. Copie e cole a solicitação em massa com atributos personalizados.
  3. Envie a solicitação em massa para a URL do ponto de extremidade da API de provisionamento.
    Captura de ecrã do pedido de carregamento em massa.
  4. Depois de algum tempo, você pode verificar os logs de provisionamento para verificar a alteração de atributo.
    Captura de tela dos logs de provisionamento.
  5. 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.
    Captura de ecrã do perfil de utilizador.

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
}

Próximos passos