Iniciar sessão na Web com OpenID Connect no Azure Ative Directory B2C
O OpenID Connect é um protocolo de autenticação, construído sobre o OAuth 2.0, que pode ser usado para conectar usuários com segurança a aplicativos da Web. Usando a implementação do Azure Ative Directory B2C (Azure AD B2C) do OpenID Connect, você pode terceirizar a inscrição, o logon e outras experiências de gerenciamento de identidade em seus aplicativos Web para o Microsoft Entra ID. Este guia mostra-lhe como fazê-lo de uma forma independente da língua. Ele descreve como enviar e receber mensagens HTTP sem usar nenhuma de nossas bibliotecas de código aberto.
Nota
A maioria das bibliotecas de autenticação de código aberto adquire e valida os tokens JWT para seu aplicativo. Recomendamos explorar essas opções, em vez de implementar seu próprio código. Para obter mais informações, consulte Visão geral da Microsoft Authentication Library (MSAL) e Microsoft Identity Web authentication library.
O OpenID Connect estende o protocolo de autorização OAuth 2.0 para uso como um protocolo de autenticação. Esse protocolo de autenticação permite que você execute o logon único. Ele introduz o conceito de um token de ID, que permite ao cliente verificar a identidade do usuário e obter informações básicas de perfil sobre o usuário.
O OpenID Connect também permite que os aplicativos adquiram tokens de acesso com segurança. Você pode usar tokens de acesso para acessar recursos que o servidor de autorização protege. Recomendamos o OpenID Connect se você estiver criando um aplicativo da Web que hospeda em um servidor e acessado por meio de um navegador. Para obter mais informações sobre tokens, consulte Visão geral de tokens no Azure Ative Directory B2C
O Azure AD B2C estende o protocolo padrão OpenID Connect para fazer mais do que simples autenticação e autorização. Ele introduz o parâmetro de fluxo de usuário, que permite que você use o OpenID Connect para adicionar experiências de usuário ao seu aplicativo, como inscrição, login e gerenciamento de perfil.
Enviar pedidos de autenticação
Quando seu aplicativo Web precisa autenticar o usuário e executar um fluxo de usuário, ele pode direcionar o usuário para o /authorize
ponto de extremidade. O usuário executa uma ação dependendo do fluxo do usuário.
Nessa solicitação, o cliente indica as permissões que precisa adquirir do usuário no scope
parâmetro e especifica o fluxo de usuário a ser executado. Para ter uma ideia de como a solicitação funciona, cole-a em seu navegador e execute-a. Substituir:
{tenant}
com o nome do seu inquilino.90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
com o ID da aplicação de uma aplicação que registou no seu inquilino.{application-id-uri}/{scope-name}
com o URI da ID do Aplicativo e o escopo de um aplicativo que você registrou em seu locatário.{policy}
com o nome da política que você tem em seu locatário, por exemplob2c_1_sign_in
.
GET /{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
Host: {tenant}.b2clogin.com
client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&response_type=code+id_token
&redirect_uri=https%3A%2F%2Fjwt.ms%2F
&response_mode=fragment
&scope=openid%20offline_access%20{application-id-uri}/{scope-name}
&state=arbitrary_data_you_can_receive_in_the_response
&nonce=12345
Parâmetro | Obrigatório | Description |
---|---|---|
{inquilino} | Sim | Nome do seu locatário do Azure AD B2C. Se estiver a utilizar um domínio personalizado, substitua tenant.b2clogin.com pelo seu domínio, como fabrikam.com . |
{política} | Sim | O fluxo de usuário ou a política que o aplicativo executa. Especifique o nome de um fluxo de usuário que você cria em seu locatário do Azure AD B2C. Por exemplo: b2c_1_sign_in , b2c_1_sign_up , ou b2c_1_edit_profile . |
client_id | Sim | A ID do aplicativo que o portal do Azure atribuiu ao seu aplicativo. |
nonce | Sim | Um valor incluído na solicitação (gerada pelo aplicativo) que é incluído no token de ID resultante como uma declaração. O aplicativo pode então verificar esse valor para mitigar ataques de repetição de token. O valor é normalmente uma cadeia de caracteres exclusiva aleatória que pode ser usada para identificar a origem da solicitação. |
response_type | Sim | Deve incluir um token de ID para o OpenID Connect. Se seu aplicativo Web também precisar de tokens para chamar uma API da Web, você poderá usar code+id_token o . |
âmbito | Sim | Uma lista de escopos separados por espaços. O openid escopo indica uma permissão para entrar no usuário e obter dados sobre o usuário na forma de tokens de ID. O offline_access escopo é opcional para aplicativos Web. Ele indica que seu aplicativo precisa de um token de atualização para acesso estendido aos recursos. O https://{tenant-name}/{app-id-uri}/{scope} indica uma permissão para recursos protegidos, como uma API da Web. Para obter mais informações, consulte Solicitar um token de acesso. |
Prompt | Não | O tipo de interação do usuário que você precisa. O único valor válido no momento é login , que força o usuário a inserir suas credenciais nessa solicitação. |
redirect_uri | Sim | O redirect_uri parâmetro do seu aplicativo, onde o servidor envia respostas de autenticação para o seu aplicativo. Ele deve corresponder exatamente a redirect_uri um dos parâmetros que você registrou no portal do Azure, exceto que ele deve ser codificado por URL. |
response_mode | Não | O método que é usado para enviar o código de autorização resultante de volta para o seu aplicativo. Pode ser , query form_post ou fragment . Recomendamos que você use o modo de form_post resposta para melhor segurança. |
state | Não | Um valor que você pode incluir na solicitação que o servidor de autorização retorna na resposta do token. Pode ser uma sequência de qualquer conteúdo que você quiser. Um valor exclusivo gerado aleatoriamente é normalmente usado para evitar ataques de falsificação de solicitação entre sites. O estado também é usado para codificar informações sobre o estado do usuário no aplicativo antes da solicitação de autenticação ocorrer, como a página em que eles estavam. Se você não quiser registrar várias URLs de redirecionamento em seu portal do Azure, poderá usar o parâmetro para diferenciar as state respostas em seu aplicativo do serviço Azure AD B2C devido a solicitações diferentes. |
login_hint | Não | Pode ser utilizado para pré-preencher o campo de nome de início de sessão da página de início de sessão. Para obter mais informações, consulte Pré-preencher o nome de entrada. |
domain_hint | Não | Fornece uma dica para o Azure AD B2C sobre o provedor de identidade social que deve ser usado para entrar. Se um valor válido for incluído, o usuário irá diretamente para a página de entrada do provedor de identidade. Para obter mais informações, consulte Redirecionar o login para um provedor social. |
Parâmetros personalizados | Não | Parâmetros personalizados que podem ser usados com políticas personalizadas. Por exemplo, URI dinâmico de conteúdo de página personalizada ou resolvedores de declaração de chave-valor. |
Neste ponto, o usuário é solicitado a concluir o fluxo de trabalho. O usuário pode ter que digitar seu nome de usuário e senha, entrar com uma identidade social ou se inscrever no diretório. Pode haver qualquer outro número de etapas, dependendo de como o fluxo do usuário é definido.
Depois que o usuário conclui o fluxo de usuário, uma resposta é retornada ao seu aplicativo no parâmetro indicado redirect_uri
, usando o método especificado no response_mode
parâmetro. A resposta é a mesma para cada um dos casos anteriores, independentemente do fluxo de usuários.
Uma resposta bem-sucedida usando response_mode=fragment
seria semelhante a:
GET https://jwt.ms/#
id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&state=arbitrary_data_you_can_receive_in_the_response
Parâmetro | Description |
---|---|
id_token | O token de ID que o aplicativo solicitou. Você pode usar o token de ID para verificar a identidade do usuário e iniciar uma sessão com o usuário. |
code | O código de autorização que o aplicativo solicitou, se você usou response_type=code+id_token . O aplicativo pode usar o código de autorização para solicitar um token de acesso para um recurso de destino. Os códigos de autorização normalmente expiram após cerca de 10 minutos. |
state | Se um state parâmetro for incluído na solicitação, o mesmo valor deverá aparecer na resposta. O aplicativo deve verificar se os state valores na solicitação e na resposta são idênticos. |
As respostas de erro também podem ser enviadas para o parâmetro para que o redirect_uri
aplicativo possa manipulá-las adequadamente:
GET https://jwt.ms/#
error=access_denied
&error_description=AADB2C90091%3a+The+user+has+cancelled+entering+self-asserted+information.%0d%0aCorrelation+ID%3a+xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%0d%0aTimestamp%3a+xxxx-xx-xx+xx%3a23%3a27Z%0d%0a
&state=arbitrary_data_you_can_receive_in_the_response
Parâmetro | Description |
---|---|
erro | Um código que pode ser usado para classificar os tipos de erros que ocorrem. |
error_description | Uma mensagem de erro específica que pode ajudar a identificar a causa raiz de um erro de autenticação. |
state | Se um state parâmetro for incluído na solicitação, o mesmo valor deverá aparecer na resposta. O aplicativo deve verificar se os state valores na solicitação e na resposta são idênticos. |
Validar o token de ID
Apenas receber um token de ID não é suficiente para autenticar o usuário. Valide a assinatura do token de ID e verifique as declarações no token de acordo com os requisitos do seu aplicativo. O Azure AD B2C usa JSON Web Tokens (JWTs) e criptografia de chave pública para assinar tokens e verificar se eles são válidos.
Nota
A maioria das bibliotecas de autenticação de código aberto valida os tokens JWT para seu aplicativo. Recomendamos explorar essas opções, em vez de implementar sua própria lógica de validação. Para obter mais informações, consulte Visão geral da Microsoft Authentication Library (MSAL) e Microsoft Identity Web authentication library.
O Azure AD B2C tem um ponto de extremidade de metadados do OpenID Connect, que permite que um aplicativo obtenha informações sobre o Azure AD B2C em tempo de execução. Essas informações incluem pontos de extremidade, conteúdo de token e chaves de assinatura de token. Há um documento de metadados JSON para cada fluxo de usuário em seu locatário B2C. Por exemplo, o documento de metadados para o b2c_1_sign_in
fluxo de usuário está localizado em fabrikamb2c.onmicrosoft.com
:
https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_sign_in/v2.0/.well-known/openid-configuration
Uma das propriedades deste documento de configuração é jwks_uri
, cujo valor para o mesmo fluxo de usuário seria:
https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/b2c_1_sign_in/discovery/v2.0/keys
Para determinar qual fluxo de usuário foi usado para assinar um token de ID, você tem duas opções. Primeiro, o nome do fluxo de usuário é incluído na declaração no token de ID, consulte declaração que representa o fluxo do acr
usuário. Sua outra opção é codificar o fluxo de usuário no valor do parâmetro quando você emitir a solicitação e, em seguida, decodificá-lo para determinar qual fluxo de state
usuário foi usado. Qualquer um dos métodos é válido.
Depois de adquirir o documento de metadados do ponto de extremidade de metadados do OpenID Connect, você pode usar as chaves públicas RSA 256 para validar a assinatura do token de ID. Pode haver várias chaves listadas neste ponto de extremidade, cada uma identificada por uma kid
declaração. O cabeçalho do token de ID também contém uma kid
declaração, que indica qual dessas chaves foi usada para assinar o token de ID.
Para verificar os tokens do Azure AD B2C, você precisa gerar a chave pública usando o expoente(e) e o módulo(n). Para fazer isso, você precisa aprender a gerar a chave pública em uma linguagem de programação de sua escolha. A documentação oficial sobre a geração de Chave Pública com o protocolo RSA pode ser encontrada aqui: https://tools.ietf.org/html/rfc3447#section-3.1
Depois de validar a assinatura do token de ID, há várias declarações que você precisa verificar. Por exemplo:
- Valide a declaração para evitar ataques de repetição de
nonce
token. Seu valor deve ser o que você especificou na solicitação de entrada. - Valide a
aud
declaração para garantir que o token de ID foi emitido para seu aplicativo. Seu valor deve ser o ID do aplicativo do seu aplicativo. - Valide as
iat
declarações eexp
para certificar-se de que o token de ID não expirou.
Há também várias outras validações que você deve realizar. As validações são descritas em detalhes na especificação principal do OpenID Connect. Você também pode querer validar mais declarações, dependendo do seu cenário. Algumas validações comuns incluem:
- Certifique-se de que o usuário/organização se inscreveu no aplicativo.
- Certifique-se de que o usuário tem autorização/privilégios adequados.
- Verifique se ocorreu uma determinada força de autenticação, como a autenticação multifator do Microsoft Entra.
Depois que o token de ID for validado, você poderá iniciar uma sessão com o usuário. Você pode usar as declarações no token de ID para obter informações sobre o usuário em seu aplicativo. Os usos para essas informações incluem exibição, registros e autorização.
Obter um token
Se você precisar que seu aplicativo Web execute apenas fluxos de usuário, poderá ignorar as próximas seções. Essas seções são aplicáveis somente a aplicativos Web que precisam fazer chamadas autenticadas para uma API da Web, que é protegida pelo próprio Azure AD B2C.
Você pode resgatar o código de autorização adquirido (usando response_type=code+id_token
) por um token para o recurso desejado enviando uma POST
solicitação para o /token
ponto de extremidade. No Azure AD B2C, você pode solicitar tokens de acesso para outras APIs como de costume, especificando o(s) seu(s) escopo(s) na solicitação.
Você também pode solicitar um token de acesso para a API Web back-end do seu aplicativo. Nesse caso, você usa o ID do cliente do aplicativo como o escopo solicitado, o que resulta em um token de acesso com esse ID do cliente como "público-alvo":
POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&scope=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access
&code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
Parâmetro | Obrigatório | Description |
---|---|---|
{inquilino} | Sim | Nome do locatário do Azure AD B2C |
{política} | Sim | O fluxo de usuário que foi usado para adquirir o código de autorização. Não é possível usar um fluxo de usuário diferente nessa solicitação. Adicione esse parâmetro à cadeia de caracteres de consulta, não ao corpo do POST. |
client_id | Sim | A ID do aplicativo que o portal do Azure atribuiu ao seu aplicativo. |
client_secret | Sim, em Aplicações Web | O segredo do aplicativo que foi gerado no portal do Azure. Os segredos do cliente são usados nesse fluxo para cenários de aplicativo Web, onde o cliente pode armazenar com segurança um segredo do cliente. Para cenários de aplicativo nativo (cliente público), os segredos do cliente não podem ser armazenados com segurança, portanto, não são usados nesse fluxo. Se estiver usando um segredo do cliente, altere-o periodicamente. |
code | Sim | O código de autorização que você adquiriu no início do fluxo de usuário. |
grant_type | Sim | O tipo de concessão, que deve ser authorization_code para o fluxo de código de autorização. |
redirect_uri | Não | O redirect_uri parâmetro do aplicativo onde você recebeu o código de autorização. |
âmbito | Não | Uma lista de escopos separados por espaços. O openid escopo indica uma permissão para entrar no usuário e obter dados sobre o usuário na forma de parâmetros id_token. Ele pode ser usado para obter tokens para a própria API da Web de back-end do seu aplicativo, que é representada pelo mesmo ID do aplicativo que o cliente. O offline_access escopo indica que seu aplicativo precisa de um token de atualização para acesso estendido aos recursos. |
Uma resposta de token bem-sucedida se parece com:
{
"not_before": "1442340812",
"token_type": "Bearer",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
"scope": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
"expires_in": "3600",
"expires_on": "1644254945",
"refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
}
Parâmetro | Description |
---|---|
not_before | A época em que o token se torna válido. |
token_type | O valor do tipo de token. Bearer é o único tipo suportado. |
access_token | O token JWT assinado que você solicitou. |
âmbito | Os escopos válidos para o token. |
expires_in | O período de tempo em que o token de acesso é válido (em segundos). |
expires_on | A época em que o token de acesso se torna inválido. |
refresh_token | Um token de atualização OAuth 2.0. O aplicativo pode usar esse token para adquirir mais tokens depois que o token atual expirar. Os tokens de atualização podem ser usados para manter o acesso aos recursos por longos períodos de tempo. O escopo offline_access deve ter sido usado nas solicitações de autorização e token para receber um token de atualização. |
As respostas de erro são parecidas:
{
"error": "invalid_grant",
"error_description": "AADB2C90080: The provided grant has expired. Please re-authenticate and try again. Current time: xxxxxxxxxx, Grant issued time: xxxxxxxxxx, Grant expiration time: xxxxxxxxxx\r\nCorrelation ID: xxxxxxxx-xxxx-xxxX-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-16 xx:10:52Z\r\n"
}
Parâmetro | Description |
---|---|
erro | Um código que pode ser usado para classificar tipos de erros que ocorrem. |
error_description | Uma mensagem que pode ajudar a identificar a causa raiz de um erro de autenticação. |
Use o token
Depois de adquirir com êxito um token de acesso, você pode usá-lo em solicitações para suas APIs da Web de back-end incluindo-o Authorization
no cabeçalho:
GET /tasks
Host: mytaskwebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
Atualizar o token
Os tokens de acesso e os tokens de ID têm vida curta. Depois que eles expirarem, você deve atualizá-los para continuar a acessar recursos. Quando você atualiza o token de acesso, o Azure AD B2C retorna um novo token. O token de acesso atualizado terá valores de declaração atualizados nbf
(não antes), iat
(emitidos em) e exp
(expiração). Todos os outros valores de declaração são semelhantes aos do token de acesso anterior.
Atualize um token enviando outra POST
solicitação para o /token
ponto de extremidade. Desta vez, forneça o refresh_token
parâmetro em vez do code
parâmetro:
POST https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: {tenant}.b2clogin.com
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
&scope=openid offline_access
&refresh_token=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
Parâmetro | Obrigatório | Description |
---|---|---|
{inquilino} | Sim | Nome do locatário do Azure AD B2C |
{política} | Sim | O fluxo de usuário que foi usado para adquirir o token de atualização original. Não é possível usar um fluxo de usuário diferente nessa solicitação. Adicione esse parâmetro à cadeia de caracteres de consulta, não ao corpo do POST. |
client_id | Sim | A ID do aplicativo que o portal do Azure atribuiu ao seu aplicativo. |
client_secret | Sim, em Aplicações Web | O segredo do aplicativo que foi gerado no portal do Azure. Os segredos do cliente são usados nesse fluxo para cenários de aplicativo Web, onde o cliente pode armazenar com segurança um segredo do cliente. Para cenários de aplicativo nativo (cliente público), os segredos do cliente não podem ser armazenados com segurança, portanto, não são usados nesta chamada. Se estiver usando um segredo do cliente, altere-o periodicamente. |
grant_type | Sim | O tipo de concessão, que deve ser refresh_token para esta parte do fluxo de código de autorização. |
refresh_token | Sim | O token de atualização original que foi adquirido na segunda parte do fluxo. O offline_access escopo deve ser usado nas solicitações de autorização e token para receber um token de atualização. |
redirect_uri | Não | O redirect_uri parâmetro do aplicativo onde você recebeu o código de autorização. |
âmbito | Não | Uma lista de escopos separados por espaços. O openid escopo indica uma permissão para entrar no usuário e obter dados sobre o usuário na forma de tokens de ID. Ele pode ser usado para enviar tokens para a própria API da Web de back-end do seu aplicativo, que é representada pelo mesmo ID do aplicativo que o cliente. O offline_access escopo indica que seu aplicativo precisa de um token de atualização para acesso estendido aos recursos. |
Uma resposta de token bem-sucedida se parece com:
{
"not_before": "1442340812",
"token_type": "Bearer",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
"scope": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
"expires_in": "3600",
"refresh_token": "AAQfQmvuDy8WtUv-sd0TBwWVQs1rC-Lfxa_NDkLqpg50Cxp5Dxj0VPF1mx2Z...",
"refresh_token_expires_in": "1209600"
}
Parâmetro | Description |
---|---|
not_before | A época em que o token se torna válido. |
token_type | O valor do tipo de token. Bearer é o único tipo suportado. |
access_token | O token JWT assinado que foi solicitado. |
âmbito | Os escopos válidos para o token. |
expires_in | O período de tempo em que o token de acesso é válido (em segundos). |
refresh_token | Um token de atualização OAuth 2.0. O aplicativo pode usar esse token para adquirir tokens adicionais depois que o token atual expirar. Os tokens de atualização podem ser usados para manter o acesso aos recursos por longos períodos de tempo. |
refresh_token_expires_in | O período de tempo em que o token de atualização é válido (em segundos). |
As respostas de erro são parecidas:
{
"error": "invalid_grant",
"error_description": "AADB2C90129: The provided grant has been revoked. Please reauthenticate and try again.\r\nCorrelation ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r\nTimestamp: xxxx-xx-xx xx:xx:xxZ\r\n",
}
Parâmetro | Description |
---|---|
erro | Um código que pode ser usado para classificar tipos de erros que ocorrem. |
error_description | Uma mensagem que pode ajudar a identificar a causa raiz de um erro de autenticação. |
Enviar uma solicitação de saída
Quando você deseja desconectar o usuário do aplicativo, não é suficiente limpar os cookies do aplicativo ou encerrar a sessão com o usuário. Redirecionar o usuário para o Azure AD B2C para sair. Se você não fizer isso, o usuário poderá se autenticar novamente em seu aplicativo sem inserir suas credenciais novamente. Para obter mais informações, consulte Comportamento de sessão do Azure AD B2C.
Para sair do usuário, redirecione-o para o end_session_endpoint
que está listado no documento de metadados do OpenID Connect descrito anteriormente:
GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Fjwt.ms%2F
Parâmetro | Obrigatório | Description |
---|---|---|
{inquilino} | Sim | Nome do seu locatário do Azure AD B2C. Se você estiver usando um domínio personalizado, substitua tenant.b2clogin.com pelo seu domínio, como fabrikam.com . |
{política} | Sim | O fluxo de usuário especificado na solicitação de autorização. Por exemplo, se o usuário entrou com o fluxo de b2c_1_sign_in usuário, especifique b2c_1_sign_in na solicitação de saída. |
id_token_hint | Não | Um token de ID emitido anteriormente para passar para o ponto de extremidade de logout como uma dica sobre a sessão autenticada atual do usuário final com o cliente. O id_token_hint garante que o post_logout_redirect_uri é uma URL de resposta registrada em suas configurações de aplicativo do Azure AD B2C. Para obter mais informações, consulte Proteger o redirecionamento de logout. |
client_id | Não* | A ID do aplicativo que o portal do Azure atribuiu ao seu aplicativo. *Isso é necessário ao usar Application a configuração de SSO de isolamento e Exigir Token de ID na solicitação de logout é definido como No . |
post_logout_redirect_uri | Não | A URL para a qual o usuário deve ser redirecionado após o logout bem-sucedido. Se não estiver incluído, o Azure AD B2C mostrará ao usuário uma mensagem genérica. A menos que forneça um , não deve registar este URL como um id_token_hint URL de resposta nas definições da aplicação Azure AD B2C. |
state | Não | Se você incluir um state parâmetro na solicitação de autorização, o servidor de autorização retornará o mesmo valor na resposta ao post_logout_redirect_uri . O aplicativo deve verificar se o state valor na solicitação e na resposta são idênticos. |
Após uma solicitação de saída, o Azure AD B2C invalida a sessão baseada em cookies do Azure AD B2C e tenta sair de provedores de identidade federados. Para obter mais informações, consulte Saída única.
Proteja seu redirecionamento de logout
Após o logout, o usuário é redirecionado para o URI especificado no post_logout_redirect_uri
parâmetro, independentemente das URLs de resposta especificadas para o aplicativo. No entanto, se um válido id_token_hint
for passado e o Exigir Token de ID em solicitações de logout estiver ativado, o Azure AD B2C verificará se o valor de corresponde a um dos URIs de redirecionamento configurados do aplicativo antes de post_logout_redirect_uri
executar o redirecionamento. Se nenhuma URL de resposta correspondente tiver sido configurada para o aplicativo, uma mensagem de erro será exibida e o usuário não será redirecionado.
Para definir o Token de ID necessário em solicitações de logout, consulte Configurar o comportamento da sessão no Azure Ative Directory B2C.
Próximos passos
- Saiba mais sobre a sessão B2C do Azure AD.