Partilhar via


Tutorial: Validar um ponto de extremidade SCIM

Este tutorial descreve como usar o Microsoft Entra SCIM Validator para validar se seu servidor de provisionamento é compatível com o cliente SCIM do Azure. O tutorial destina-se a desenvolvedores que desejam criar um servidor compatível com SCIM para gerenciar suas identidades com o serviço de provisionamento Microsoft Entra.

Neste tutorial, irá aprender a:

  • Selecione um método de teste
  • Configurar o método de teste
  • Valide seu endpoint SCIM

Pré-requisitos

Selecione um método de teste

A primeira etapa é selecionar um método de teste para validar seu endpoint SCIM.

  1. Abra o navegador da Web e navegue até o Validador SCIM: https://scimvalidator.microsoft.com/.

  2. Selecione uma das três opções de teste. Você pode usar atributos padrão, descobrir automaticamente o esquema ou carregar um esquema.

    Screenshot da página principal do SCIM Validator.

Usar atributos padrão - O sistema fornece os atributos padrão e você os modifica para atender às suas necessidades.

Descobrir esquema - Se o seu ponto final suportar /Schemas, esta opção permite que a ferramenta descubra os atributos suportados. Recomendamos essa opção, pois reduz a sobrecarga de atualizar seu aplicativo à medida que você o cria.

Carregar o esquema do Microsoft Entra - Carregue o esquema que você baixou do seu aplicativo de exemplo na ID do Microsoft Entra.

Configurar o método de teste

Agora que você selecionou um método de teste, a próxima etapa é configurá-lo.

Captura de ecrã da página de atributos do Validador SCIM.

  1. Se você estiver usando a opção de atributos padrão, preencha todos os campos indicados.
  2. Se você estiver usando a opção de esquema de descoberta, insira a URL e o token do ponto de extremidade SCIM.
  3. Se você estiver carregando um esquema, selecione o arquivo .json para carregar. A opção aceita um arquivo de .json exportado do seu aplicativo de exemplo no centro de administração do Microsoft Entra. Para saber como exportar um esquema, consulte Como exportar a configuração de provisionamento e reverter para um estado em boas condições.

Nota

Para testar atributos de grupo, certifique-se de selecionar Ativar testes de grupo.

  1. Edite os atributos da lista conforme desejado para os tipos de usuário e grupo usando a opção 'Adicionar atributo' no final da lista de atributos e sinal de menos (-) no lado direito da página.
  2. Selecione a propriedade de associação na lista de atributos de usuário e grupo.

Nota

A propriedade de junção, também conhecida como atributo de correspondência, é um atributo no qual os recursos de usuário e grupo podem ser consultados exclusivamente na origem e correspondidos no sistema de destino.

Valide seu endpoint SCIM

Finalmente, você precisa testar e validar seu endpoint.

  1. Selecione Test Schema (Esquema de teste ) para iniciar o teste.

  2. Analise os resultados com um resumo dos testes aprovados e reprovados.

  3. Selecione a guia mostrar detalhes e revise e corrija problemas.

  4. Continue a testar seu esquema até que todos os testes sejam aprovados.

    Captura de ecrã da página de resultados do Validador SCIM.

Validações de notas realizadas pelo Validador SCIM

Criar novo usuário

  • POST /Users – Cria um novo usuário com uma carga JSON completa.
    • O endpoint retorna HTTP 201
    • A resposta POST contém o ID de usuário criado
  • GET /Users?filter={joiningProperty} eq "value" – Confirma a criação ao filtrar pela propriedade de ligação.
    • GET retorna usuário criado
    • Os valores retornados de GET são iguais aos valores passados da solicitação POST (varia de acordo com o endpoint)
  • DELETE /Users - Limpa o usuário de teste. Chamado apenas se a exclusão rígida for suportada

Criar usuário duplicado

  • POST /Users – Tenta criar um utilizador usando uma carga idêntica (com o mesmo atributo único/de junção) igual a um utilizador existente.
    • Retornar HTTP 201 na primeira solicitação de criação
    • Retornar HTTP 409 na segunda solicitação de criação

Adicionar atributos

  • POST /Users - Cria o recurso do usuário
    • Sucesso HTTP 2xx
  • PATCH /Users/{id} – Usa um documento JSON Patch (com a operação add) para inserir atributos adicionais não necessários.
  • GET /Users?filter={joiningProperty} eq "value" – Recupera o usuário para verificar os atributos adicionados.
    • O usuário é retornado
    • Os atributos inseridos agora estão presentes no usuário

Substituir atributos de usuário

  • POST /Users - Cria o recurso do usuário
    • Sucesso HTTP 2xx
  • PATCH /Users/{id} – Envia um documento de patch JSON (usando a operação de substituição) para atualizar um ou mais atributos.
  • GET /Users?filter={joiningProperty} eq "value" – Verifica se os atributos atualizados são aplicados corretamente.
    • O usuário é retornado
    • Atributos atualizados estão presentes no usuário

Atualizar propriedade de associação

  • POST /Users - Cria o recurso do usuário
    • Sucesso HTTP 2xx
  • PATCH /Users/{id} – Atualiza a propriedade de junção (por exemplo, userName) por meio de um documento de patch JSON.
  • GET /Users?filter={joiningProperty} eq "newValue" – Confirma que a propriedade de junção foi atualizada.
    • "A propriedade de associação é atualizada para o usuário"

Atualizar atributo ativo para falso

  • POST /Users/ - Cria um recurso com base no esquema
    • Sucesso HTTP 2xx
    • O utilizador desativado deve ser retornado na solicitação GET
  • PATCH /Users/{id} – Emite um documento JSON Patch que define o atributo "ativo" como false.
    • Sucesso HTTP 2xx
  • GET /Users?filter={joiningProperty} eq "value" – Recupera o usuário para confirmar que o atributo ativo agora é false.
    • O registo de utilizador retornado deve ter ATIVO=FALSO

Criar novo grupo

  • POST /Groups – Cria um novo grupo com uma carga JSON completa.
    • O endpoint retorna HTTP 201
    • A resposta POST contém o ID de grupo criado
  • GET /Group?filter={joiningProperty} eq "value" – Verifica a criação com base na propriedade de junção.
    • GET retorna o grupo criado
    • Os valores retornados de GET são iguais aos valores passados da solicitação POST (varia de acordo com o endpoint)
  • DELETE /groups - limpa o usuário de teste.
    • Chamado apenas se a exclusão rígida for suportada

Criar grupo duplicado

  • POST /Groups – Tenta criar um grupo usando uma carga idêntica (com o mesmo atributo exclusivo/junção) a um grupo existente.
    • Retornar HTTP 201 na primeira solicitação de criação
    • Retornar HTTP 409 na segunda solicitação de criação

Atualizar atributos do grupo

  • POST /Groups - Cria um novo recurso de grupo para atualizar atributos em
    • POST retorna HTTP 2xx
  • PATCH /Groups/{id} – Envia um documento de patch JSON usando a operação replace para atualizar um ou mais atributos de um grupo existente (excluindo membros).
    • PATCH retorna sucesso (HTTP 2xx)
  • GET /Groups?filter={joiningProperty} eq "value" – Confirma que os atributos do grupo foram atualizados corretamente.
    • GET retorna grupo corrigido
    • Os atributos no grupo retornado correspondem aos atributos alterados na solicitação PATCH

Criar um novo recurso de grupo

  • POST /Groups - Cria um novo recurso de grupo para adicionar membro
    • POST retorna HTTP 2xx
  • POST /Users – Cria um novo recurso de usuário para ser usado como membro do grupo.
    • POST retorna HTTP 2xx
  • PATCH /Groups/{id} – Adiciona o identificador do usuário recém-criado ao grupo usando um documento de patch JSON.
    • PATCH Retorna sucesso

Usando expressões no validador SCIM

O Validador SCIM suporta o uso de expressões para gerar os valores desejados para atributos.

Como usar expressões

  1. Vá para a página Atributos.
  2. Insira a expressão desejada na coluna de valor do atributo que você deseja personalizar.
  3. Execute o teste

Nota

Essas expressões funcionam para atributos Usuário e Grupo.

Expressões disponíveis

A tabela abaixo lista as expressões disponíveis

Expressão Significado Exemplo Resultado
generateRandomString {Contagem de caracteres de cadeia de caracteres} Gerar uma cadeia de caracteres aleatória com a contagem especificada de caracteres do alfabeto {%generateRandomString 6%}@contoso.com CXJHYP@contoso.com
generateRandomNumber {Contagem de Números} Gere um número aleatório com a contagem especificada de dígitos {%generateRandomNumber 4%} 8821
generateAlphaNumeric {Contagem de caracteres} Gere uma sequência aleatória com uma mistura de alfabetos e números, com a contagem especificada de caracteres {%generateAlphaNumeric 7%} 59Q2M9W
generateAlphaNumericWithSpecialCharacters {Contagem de caracteres} Gere uma cadeia de caracteres aleatória com uma mistura de alfabetos, números e um caractere especial, com base na contagem especificada de caracteres {%generateAlphaNumericWithSpecialCharacters 8%}TESTE D385N05'TESTE

Você pode adicionar valores antes ou depois das expressões para alcançar o resultado desejado, por exemplo, quando você adiciona {% generateRandomString 6 %}@contoso.com em um campo de valor do atributo userName, ele gerará um novo valor userName a cada teste, mantendo o domínio contoso.com.

Clean up resources (Limpar recursos)

Se você criou recursos do Azure em seu teste que não são mais necessários, não se esqueça de excluí-los.

Problemas conhecidos com o Microsoft Entra SCIM Validator

  • As exclusões suaves (desativações) ainda não são suportadas.
  • O formato de fuso horário é gerado aleatoriamente e falha para sistemas que tentam validá-lo.
  • O usuário do patch remover atributos pode tentar remover atributos obrigatórios/necessários para determinados sistemas. Tais falhas devem ser ignoradas.

Próximos passos