Gerenciar métodos de autenticação dos usuários usando o Microsoft Graph

Os métodos de autenticação são as maneiras pelas quais os usuários se autenticam em Microsoft Entra ID. Os seguintes métodos de autenticação estão disponíveis no Microsoft Entra ID atualmente e são gerenciáveis por meio do Microsoft Graph:

  • Windows Hello para Empresas
  • Microsoft Authenticator
  • Chave de segurança FIDO2
  • Autenticação baseada em certificados
  • Tokens de hardware OATH (versão prévia)
  • Tokens de software OATH
  • Passe de Acesso Temporário (TAP)
  • SMS
  • Voz
  • Senha

Os métodos de autenticação são usados nas autenticações primária, de segundo fator e de step-up. Além disso, no processo de redefinição de senha de autoatendimento (SSPR).

O que você pode fazer com as APIs de métodos de autenticação?

Você pode usar as APIs do método de autenticação para integrar aos seus aplicativos para gerenciar os métodos de autenticação de um usuário. Por exemplo, você pode:

  • Adicionar um número de telefone para um usuário, que pode usar esse número para SMS e autenticação de chamada de voz, se estiverem habilitados para o uso pela política
  • Atualizar ou excluir o número de telefone atribuído a um usuário
  • Habilitar ou desabilitar o número para entrada de SMS
  • Redefinir a senha de um usuário

Importante

Não recomendamos usar as APIs de métodos de autenticação para cenários em que você precisa iterar sobre toda a população de usuários para fins de auditoria ou segurança marcar. Para esses tipos de cenários, recomendamos usar as APIs de registro e relatório de uso do método de autenticação (algumas APIs estão disponíveis apenas no beta ponto de extremidade).

Usar políticas para gerenciar métodos de autenticação em seu locatário

Você pode escolher quais métodos de autenticação são permitidos para usuários em seu locatário configurando políticas de método de autenticação. Para cada política, você configura se o método de autenticação está habilitado, suas configurações e pode definir explicitamente os grupos de usuários permitidos ou não para usar o método.

Cenário de exemplo

Neste artigo, você aprenderá a:

  • Autenticar para Microsoft Entra ID com as funções e permissões certas
  • Verificar os métodos de autenticação do usuário
  • Adicionar novos números de telefone para o usuário
  • Remover um número de telefone do usuário
  • Redefinir a senha do usuário

Etapa 1: Autenticar para Microsoft Entra ID com as funções e permissões certas

Entre em um cliente de API, como o Graph Explorer com uma conta que tenha pelo menos a função Administrador de Autenticação Privilegiada ou Administrador de AutenticaçãoMicrosoft Entra função. Você pode usar um locatário de teste com dados de exemplo para experimentar as APIs.

Em seguida, conceda ao aplicativo a permissão UserAuthenticationMethod.ReadWrite.All . Você precisa dessa permissão para executar as operações de leitura e gravação nesse cenário.

Agora você pode começar a usar as APIs. Nesse cenário, você usa as APIs para gerenciar os métodos de autenticação de Cameron White.

Etapa 2: Verificar os métodos de autenticação do usuário

Solicitação

GET https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/methods

Resposta

A partir dessa resposta, Cameron tem apenas o método de autenticação de senha habilitado. 28c10230-6103-485e-b985-444c60001490é a ID globalmente exclusiva do método de autenticação de senha em Microsoft Entra ID.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('CameronW%40contoso.com')/authentication/methods",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users('<key>')/authentication/methods?$select=id",
    "value": [
        {
            "@odata.type": "#microsoft.graph.passwordAuthenticationMethod",
            "id": "28c10230-6103-485e-b985-444c60001490",
            "password": null,
            "createdDateTime": "2023-09-18T10:38:07Z"
        }
    ]
}

Etapa 3: Adicionar novos números de telefone para o usuário

Nesta etapa, você adiciona um novo número de telefone celular para Cameron usar.

Solicitação

POST https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/phoneMethods
Content-Type: application/json

{
    "phoneNumber": "+1 2065555555",
    "phoneType": "mobile"
}

Resposta

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('CameronW%40contoso.com')/authentication/phoneMethods/$entity",
    "id": "3179e48a-750b-4051-897c-87b9720928f7",
    "phoneNumber": "+1 2065555555",
    "phoneType": "mobile",
    "smsSignInState": "notAllowedByPolicy"
}

Execute a mesma solicitação, adicionando um phoneType do office .

Etapa 4: verificar os métodos de autenticação do usuário

Solicitação

GET https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/methods

Resposta

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('CameronW%40contoso.com')/authentication/methods",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users('<key>')/authentication/methods?$select=id",
    "value": [
        {
            "@odata.type": "#microsoft.graph.phoneAuthenticationMethod",
            "id": "e37fc753-ff3b-4958-9484-eaa9425c82bc",
            "phoneNumber": "+1 4255550199",
            "phoneType": "office",
            "smsSignInState": "notSupported"
        },
        {
            "@odata.type": "#microsoft.graph.phoneAuthenticationMethod",
            "id": "3179e48a-750b-4051-897c-87b9720928f7",
            "phoneNumber": "+1 2065555555",
            "phoneType": "mobile",
            "smsSignInState": "notAllowedByPolicy"
        },
        {
            "@odata.type": "#microsoft.graph.passwordAuthenticationMethod",
            "id": "28c10230-6103-485e-b985-444c60001490",
            "password": null,
            "createdDateTime": "2023-09-18T10:38:07Z"
        }
    ]
}

Confirme se você consegue ver os dois números conforme o esperado. As IDs dos diferentes tipos de número de telefone são globalmente as mesmas em Microsoft Entra ID da seguinte maneira:

  • b6332ec1-7057-4abe-9331-3d72feddfe41para o tipo de telefone alternateMobile
  • e37fc753-ff3b-4958-9484-eaa9425c82bcpara o tipo de telefone do office
  • 3179e48a-750b-4051-897c-87b9720928f7para o tipo de telefone celular

Etapa 5: remover um número de telefone do usuário

Cameron está trabalhando em casa, então você precisa remover o número do escritório da conta dele.

DELETE https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/phoneMethods/e37fc753-ff3b-4958-9484-eaa9425c82bc

A solicitação retorna o código de resposta 204 No Content. Para verificar se o método de telefone do office foi removido da conta de Cameron, execute novamente a solicitação na Etapa 4. Cameron agora deve ter apenas os métodos de autenticação de celular e senha.

Etapa 6: redefinir a senha do usuário

Cameron esqueceu a senha deles e você precisa redefini-la para eles. Você pode redefinir a senha de um usuário e especificar uma senha temporária ou permitir que Microsoft Entra ID gere uma senha temporária.

Em ambos os métodos, a resposta inclui um cabeçalho Local com uma URL que você pode usar para marcar o status da operação por meio de uma operação GET. A operação de redefinição não é concluída imediatamente, pois Microsoft Entra ID precisa sincronizar a senha, inclusive até o Active Directory na infraestrutura local do locatário (para usuários locais). A URL é válida por 24 horas.

Opção 1: redefinir a senha do usuário e fornecer uma nova senha temporária

Solicitação

POST https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/passwordMethods/28c10230-6103-485e-b985-444c60001490/resetPassword
Content-Type: application/json

{
    "newPassword": "29sdjfw#fajsdA_a_3an3223"
}

Resposta

HTTP/1.1 202 Accepted

Location: https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/operations/cc8e9b0e-7495-47f2-ad4a-3daa966543c6?aadgdc=DUB02P&aadgsu=ssprprod-a

Opção 2: redefinir a senha do usuário e permitir que Microsoft Entra ID gere uma nova senha temporária

Nesta solicitação, você não fornece uma nova senha e, em vez disso, permite que Microsoft Entra ID gere uma senha e a retorne na resposta.

POST https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/passwordMethods/28c10230-6103-485e-b985-444c60001490/resetPassword

Resposta

HTTP/1.1 202 Accepted

Location: https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/operations/ba0c9a11-5163-4353-89ba-81501617ede0?aadgdc=AM4P&aadgsu=ssprprod-a
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.passwordResetResponse",
    "newPassword": "Hopu0277"
}

Verifique o status da operação de redefinição de senha

Solicitação

GET https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/operations/ba0c9a11-5163-4353-89ba-81501617ede0?aadgdc=AM4P&aadgsu=ssprprod-a

Resposta

HTTP/1.1 202 Accepted

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('a87cc624-b550-4559-b934-3bc0325a4808')/authentication/operations/$entity",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users('<guid>')/authentication/operations('<guid>')?$select=createdDateTime,lastActionDateTime",
    "id": "ba0c9a11-5163-4353-89ba-81501617ede0",
    "createdDateTime": "2024-01-18T16:37:10Z",
    "lastActionDateTime": "2024-01-18T16:37:10Z",
    "status": "succeeded",
    "statusDetail": "ResetSuccess",
    "resourceLocation": "https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/methods/28c10230-6103-485e-b985-444c60001490"
}

Referência da API

Está procurando a referência de API para métodos de autenticação?