Problemas conhecidos e as resoluções em conformidade com o protocolo SCIM 2.0 do serviço de provisionamento de usuário do Microsoft Entra
O Microsoft Entra ID pode provisionar automaticamente usuários e grupos para qualquer aplicativo ou sistema que seja administrado por um serviço Web com a interface definida no especificação do protocolo do Sistema para SCIM (Gerenciamento de Identidade Entre Domínios) 2.0.
O suporte do Microsoft Entra para o protocolo SCIM 2.0 é descrito em Usar o Sistema de Gerenciamento de Usuários entre Domínios (SCIM) para provisionar automaticamente usuários e grupos do Microsoft Entra ID para aplicativos, que lista as partes específicas do protocolo que ele implementa para provisionar automaticamente usuários e grupos do Microsoft Entra ID para aplicativos que dão suporte ao SCIM 2.0.
Este artigo descreve os problemas atuais e anteriores com a aderência ao serviço de provisionamento do usuário do Microsoft Entra ao protocolo SCIM 2.0 e como trabalhar nesses problemas.
Noções básicas sobre o trabalho de provisionamento
O serviço de provisionamento usa o conceito de um trabalho para operar em um aplicativo. A jobID pode ser encontrada na barra de progresso. Todos os novos aplicativos de provisionamento são criados com uma jobID começando com “SCIM”. O trabalho SCIM representa o estado atual do serviço. Os trabalhos mais antigos têm a ID “customappsso”. Esse trabalho representa o estado do serviço em 2018.
Se estiver usando um aplicativo na galeria, o trabalho geralmente contém o nome do aplicativo (como zoom snowFlake ou dataBricks). Você pode ignorar esta documentação ao usar um aplicativo da galeria. Isso se aplica principalmente a aplicativos fora da galeria com a jobID SCIM ou customAppSSO.
Problemas de conformidade de SCIM 2.0 e o status
Na tabela a seguir, qualquer item marcado como corrigido significa que o comportamento adequado pode ser encontrado no trabalho SCIM. Trabalhamos para garantir a compatibilidade com versões anteriores das alterações que fizemos. É recomendável usar o novo comportamento das novas implementações e atualizar as implementações existentes. Observe que não há mais suporte para o comportamento customappSSO, que era o padrão antes de dezembro de 2018.
Observação
Em relação às alterações feitas em 2018, você pode reverter para o comportamento customappsso. Para as alterações feitas desde 2018, você pode usar as URLs para reverter para o comportamento mais antigo. Trabalhamos para garantir a compatibilidade com versões anteriores das alterações que fizemos, permitindo que você reverta para a jobID antiga ou usando um sinalizador. No entanto, como já mencionado, não recomendamos a implementação de um comportamento antigo, pois não há mais suporte para ele. É recomendável usar o novo comportamento das novas implementações e atualizar as implementações existentes.
Problemas de conformidade SCIM 2.0 | Corrigido? | Corrigir a data | Compatibilidade com versões anteriores |
---|---|---|---|
O Microsoft Entra ID requer "/scim" para estar na raiz da URL do ponto de extremidade do SCIM do aplicativo | Sim | 18 de dezembro de 2018 | faça downgrade para customappSSO |
Os atributos de extensão usam ponto de notação "." antes de nomes de atributo, em vez de notação de dois pontos “:” | Sim | 18 de dezembro de 2018 | faça downgrade para customappSSO |
As solicitações de patch para atributos com vários valores contêm a sintaxe de filtro de caminho inválido | Sim | 18 de dezembro de 2018 | faça downgrade para customappSSO |
As solicitações de criação de grupo contêm um URI de esquema inválido | Sim | 18 de dezembro de 2018 | faça downgrade para customappSSO |
Atualizar o comportamento do PATCH para garantir a conformidade (por exemplo, ativo como booleano e remoções adequadas de associações do grupo) | Não | TBD | usar sinalizador de recursos |
Sinalizadores para alterar o comportamento de SCIM
Use os sinalizadores abaixo na URL do locatário do aplicativo para alterar o comportamento padrão do cliente do SCIM.
Usar a URL a seguir para atualizar o comportamento de PATCH e garantir a conformidade do SCIM. O sinalizador alterará os seguintes comportamentos:
- Solicitações feitas para desabilitar usuários
- Solicitações para adicionar um atributo de cadeia de caracteres de valor único
- Solicitações para substituir vários atributos
- Solicitações para remover um membro do grupo
Esse comportamento está disponível apenas no momento de usar o sinalizador, mas se tornará o comportamento padrão nos próximos meses. Observe que esse sinalizador de recursos atualmente não funciona com o provisionamento sob demanda.
- URL (compatível com SCIM): aadOptscim062020
- Referências de RFC SCIM:
Abaixo estão as solicitações de amostra que ajudam a delinear o que o mecanismo de sincronização envia atualmente em comparação com as solicitações enviadas depois que o sinalizador de recurso está habilitado.
Solicitações feitas para desabilitar os usuários:
Sem o sinalizador de recurso
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "Replace",
"path": "active",
"value": "False"
}
]
}
Com o sinalizador de recurso
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "active",
"value": false
}
]
}
Solicitações feitas para adicionar um atributo de cadeia de caracteres de valor único:
Sem o sinalizador de recurso
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "Add",
"path": "nickName",
"value": "Babs"
}
]
}
Com o sinalizador de recurso
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "add",
"path": "nickName",
"value": "Babs"
}
]
}
Solicitações para substituir vários atributos:
Sem o sinalizador de recurso
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "Replace",
"path": "displayName",
"value": "Pvlo"
},
{
"op": "Replace",
"path": "emails[type eq \"work\"].value",
"value": "TestBcwqnm@test.microsoft.com"
},
{
"op": "Replace",
"path": "name.givenName",
"value": "Gtfd"
},
{
"op": "Replace",
"path": "name.familyName",
"value": "Pkqf"
},
{
"op": "Replace",
"path": "externalId",
"value": "Eqpj"
},
{
"op": "Replace",
"path": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber",
"value": "Eqpj"
}
]
}
Com o sinalizador de recurso
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "emails[type eq \"work\"].value",
"value": "TestMhvaes@test.microsoft.com"
},
{
"op": "replace",
"value": {
"displayName": "Bjfe",
"name.givenName": "Kkom",
"name.familyName": "Unua",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber": "Aklq"
}
}
]
}
Solicitações feitas para remover um membro do grupo:
Sem o sinalizador de recurso
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "Remove",
"path": "members",
"value": [
{
"value": "u1091"
}
]
}
]
}
Com o sinalizador de recurso
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "remove",
"path": "members[value eq \"7f4bc1a3-285e-48ae-8202-5accb43efb0e\"]"
}
]
}
- URL de downgrade: depois que o novo comportamento SCIM se tornar o padrão no aplicativo fora da galeria, você poderá usar a seguinte URL para reverter para o comportamento antigo não conforme com SCIM: AzureAdScimPatch2017
Atualizar o trabalho customappsso mais antigo para o trabalho SCIM
Seguir as etapas abaixo excluirá seu trabalho customappsso existente e criará um novo trabalho SCIM.
Entre no Centro de administração do Microsoft Entra pelo menos como um Administrador de Aplicativo.
Navegue até Identidade>Aplicativos>Aplicativos empresariais.
Localize e selecione seu aplicativo SCIM existente.
Na seção Propriedades do seu aplicativo existente do SCIM, copie a ID de objeto.
Em uma nova janela do navegador da Web, acesse https://developer.microsoft.com/graph/graph-explorer e entre como o administrador do locatário do Microsoft Entra o qual o aplicativo foi adicionado.
No Explorador do Graph, execute o comando a seguir para localizar a ID do seu trabalho de provisionamento. Substitua "[object-id]" pelo serviço de ID da entidade (ID de objeto) copiado da terceira etapa.
GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs
Nos resultados, copie a cadeia de caracteres completa de "ID" que começa com "customappsso" ou "scim".
Execute o comando a seguir para recuperar a configuração de mapeamento de atributo, para que você possa fazer um backup. Use o mesmo [object-id] como antes e substitua [job-id] pela ID de trabalho de provisionamento copiada da última etapa.
GET https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]/schema
Copie a saída JSON da última etapa e salve-a em um arquivo de texto. O JSON contém qualquer mapeamento de atributo personalizado que você adicionou ao aplicativo antigo e deve ser de aproximadamente alguns milhares de linhas de JSON.
Execute o comando a seguir para excluir o trabalho de provisionamento:
DELETE https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[job-id]
Execute o comando a seguir para criar um novo trabalho de provisionamento que tenha as correções mais recentes do serviço.
POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs
{ "templateId": "scim" }
- Nos resultados da última etapa, copie a cadeia de caracteres completa de "ID" que começa com "scim". Opcionalmente, reaplique os mapeamentos de atributos antigos, executando o comando abaixo, substituindo [new-job-id] pela nova ID de trabalho que você copiou e inserindo a saída JSON da etapa 7 como o corpo da solicitação.
PUT https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs/[new-job-id]/schema
{ <your-schema-json-here> }
- Volte para a primeira janela do navegador da web e selecione a guia Provisionamento para o seu aplicativo.
- Verifique a configuração e, em seguida, inicie o trabalho de provisionamento.
Fazer downgrade do trabalho SCIM para o trabalho customappsso (não recomendado)
Permitimos que você faça o downgrade de volta para o comportamento antigo, mas não recomendamos isso, pois algumas atualizações que fazemos não trazem benefício para o customappsso, e talvez não haja suporte para sempre.
Entre no Centro de administração do Microsoft Entra pelo menos como um Administrador de Aplicativo.
Navegue até Identidade>Aplicativos>Aplicativos empresariais.
Na seção Criar aplicativo, crie um novo aplicativo Não galeria.
Na seção propriedades do seu novo aplicativo personalizado, copie a ID de objeto.
Em uma nova janela do navegador da Web, acesse https://developer.microsoft.com/graph/graph-explorer e entre como o administrador do locatário do Microsoft Entra o qual o aplicativo foi adicionado.
No Graph Explorer, execute o comando a seguir para inicializar a configuração de provisionamento para seu aplicativo. Substitua "[object-id]" pelo serviço de ID da entidade (ID de objeto) copiado da terceira etapa.
POST https://graph.microsoft.com/beta/servicePrincipals/[object-id]/synchronization/jobs
{ templateId: "customappsso" }
Volte para a primeira janela do navegador da web e selecione a guia Provisionamento para o seu aplicativo.
Conclua o configuração de provisionamento de usuário conforme faria normalmente.
Próximas etapas
Saiba mais sobre o provisionamento e desprovisionamento para aplicativos SaaS