Compartilhar via


Tutorial: validar um ponto de extremidade do SCIM

Este tutorial descreve como usar o validador de SCIM do Microsoft Entra para validar se o 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 identidades com o serviço de provisionamento do Microsoft Entra.

Neste tutorial, você aprenderá a:

  • Selecionar um método de teste
  • Configurar o método de teste
  • Validar o ponto de extremidade do SCIM

Pré-requisitos

Selecionar um método de teste

A primeira etapa é selecionar um método de teste para validar o ponto de extremidade do SCIM.

  1. Abra o navegador da Web e procure o Validador do SCIM: https://scimvalidator.microsoft.com/.

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

    Captura de tela da página principal do Validador do SCIM.

Usar atributos padrão – O sistema fornece os atributos padrão, e você os modifica de acordo com suas necessidades.

Descobrir esquema – Se o ponto de extremidade oferecer suporte a /Schemas, essa opção permite que a ferramenta descubra os atributos compatíveis. Recomendamos essa opção, pois ela reduz a sobrecarga de atualização do aplicativo à medida que você o cria.

Upload de esquema do Microsoft Entra – Carregue no Microsoft Entra ID o esquema que você baixou do aplicativo de exemplo.

Configurar o método de teste

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

Captura de tela da página de atributos do Validador do 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 descoberta de esquema, insira a URL e o token do ponto de extremidade do SCIM.
  3. Se você estiver carregando um esquema, selecione o arquivo .json a ser carregado. A opção aceita um arquivo .json exportado do aplicativo de exemplo no Centro de administração do Microsoft Entra. Para saber como exportar um esquema, confira Como exportar uma configuração de provisionamento e revertê-la para um estado válido conhecido.

Observação

Para testar atributos de grupo, selecione Habilitar Testes de Grupo.

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

Observação

A propriedade de junção, também conhecida como atributo correspondente, é um atributo que os recursos de usuário e de grupo podem ser consultados exclusivamente na origem e serem correspondentes no sistema de destino.

Validar o ponto de extremidade do SCIM

Por fim, você precisa testar e validar o ponto de extremidade.

  1. Selecione Testar Esquema para iniciar o teste.

  2. Revise os resultados com um resumo dos testes com aprovação e com falha.

  3. Escolha a guia Mostrar detalhes e revise e corrija os problemas.

  4. Continue testando seu esquema até que ele seja aprovado em todos os testes.

    Captura de tela da página de resultados do Validador do SCIM.

Anotar validações executadas pelo Validador scim

Criar novo usuário

  • POST /Users – Cria um novo usuário com uma carga JSON completa.
    • O ponto de extremidade retorna HTTP 201
    • A resposta POST contém a ID de usuário criada
  • GET /Users?filter={joiningProperty} eq "value" – verifica a criação filtrando a propriedade de junção.
    • GET retorna usuário criado
    • Os valores retornados de GET correspondem aos valores passados da requisição POST (varia de acordo com o endpoint)
  • DELETE /Users – limpa o usuário de teste. -Chamado somente se houver suporte para exclusão temporária

Criar usuário duplicado

  • POST /Users – Tenta criar um usuário utilizando uma carga idêntica (com o mesmo atributo exclusivo/de junção) de um usuário já 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 de usuário
    • Êxito HTTP 2xx
  • PATCH /Users/{id} – usa um documento de patch JSON (com a operação de adição) 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 de usuário
    • Êxito 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 foram aplicados corretamente.
    • O usuário é retornado
    • Os atributos atualizados estão presentes no usuário

Atualizar propriedade de junção

  • POST /Users – Cria o recurso de usuário
    • Êxito 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 "joining" é atualizada no usuário

Atualizar atributo ativo para false

  • POST /Users/ – Cria um recurso com base no esquema
    • Êxito HTTP 2xx
    • O usuário desabilitado deve ser retornado na solicitação GET
  • PATCH /Users/{id} – emite um documento de patch JSON que define o atributo "ativo" como false.
    • Êxito HTTP 2xx
  • GET /Users?filter={joiningProperty} eq "value" – recupera o usuário para confirmar se o atributo ativo agora é falso.
    • O registro de usuário retornado deve ter ACTIVE=FALSE"

Criar novo grupo

  • POST /Groups – Cria um novo grupo com uma carga JSON completa.
    • O ponto de extremidade retorna HTTP 201
    • A resposta POST contém a ID do grupo criada
  • GET /Group?filter={joiningProperty} eq "value" – verifica a criação filtrando a propriedade de junção.
    • GET retorna grupo criado
    • Os valores retornados de GET correspondem aos valores passados da requisição POST (varia de acordo com o endpoint)
  • DELETE /Groups – limpa o usuário de teste.
    • Chamado somente se houver suporte para exclusão temporária

Criar grupo duplicado

  • POST /Groups – Tenta criar um grupo usando uma carga idêntica (com o mesmo atributo exclusivo/de junção) para 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 de 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 de substituição para atualizar um ou mais atributos de um grupo existente (excluindo membros).
    • PATCH retorna êxito (HTTP 2xx)
  • GET /Groups?filter={joiningProperty} eq "value" – confirma se os atributos do grupo foram atualizados corretamente.
    • GET retorna grupo corrigido
    • 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 a 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 oferece suporte ao uso de expressões para gerar valores desejados para atributos.

Como usar expressões

  1. Vá para a página Atributos.
  2. Insira a expressão desejada na coluna valor do atributo que deseja personalizar.
  3. Executar seus testes

Observação

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

Expressões disponíveis

A tabela abaixo lista as expressões disponíveis

Expressão Significado Exemplo Resultado
generateRandomString {Número de caracteres da sequência} Gerar uma sequência aleatória com o número especificado de caracteres do alfabeto {%generateRandomString 6%}@contoso.com CXJHYP@contoso.com
generateRandomNumber {Número de dígitos} Gerar um número aleatório com o número especificado de dígitos {%generateRandomNumber 4%} 8821
generateAlphaNumeric {Número de caracteres} Gerar uma sequência aleatória composta por uma mistura de letras e números com o número de caracteres especificado {%generateAlphaNumeric 7%} 59Q2M9W
generateAlphaNumericWithSpecialCharacters {Número de caracteres} Gerar uma sequência aleatória com uma mistura de letras, números e um caractere especial com base no número especificado de caracteres {%generateAlphaNumericWithSpecialCharacters 8%}TESTE D385N05’TEST

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

Limpar os recursos

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

Problemas conhecidos com o validador de SCIM do Microsoft Entra

  • Ainda não há suporte para exclusões temporárias (desabilitações).
  • O formato de fuso horário é gerado aleatoriamente e falha nos sistemas que tentarem validá-lo.
  • Os atributos de remoção de usuário de patch podem tentar remover atributos obrigatórios/necessários para alguns sistemas. Essas falhas devem ser ignoradas.

Próximas etapas