Definir URLs de redirecionamento para b2clogin.com do Azure Active Directory B2C

Ao configurar um provedor de identidade para inscrição e entrada em seus aplicativos Azure AD B2C (Azure Active Directory B2C), é preciso especificar os pontos de extremidade do provedor de identidade B2C Azure AD. Você não deve mais fazer referência a login.microsoftonline.com em seus aplicativos e APIs para autenticar usuários com Azure AD B2C. Em vez disso, use b2clogin.com ou um domínio personalizado para todos os aplicativos.

A quais pontos de extremidade essas alterações se aplicam

A transição para b2clogin.com só se aplica a pontos de extremidade de autenticação que usam políticas de Azure AD B2C (fluxos de usuário ou políticas personalizadas) para autenticar usuários. Esses pontos de extremidade têm um parâmetro <policy-name> que especifica a política Azure AD B2C deve usar. Saiba mais sobre as políticas do Azure AD B2C.

Pontos de extremidade antigos podem ser semelhantes a:

  • https://login.microsoft.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
  • https://login.microsoft.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/authorize?p=<policy-name>

Um ponto de extremidade atualizado correspondente teria a seguinte aparência:

  • https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
  • https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/authorize?p=<policy-name>

Com o domínio personalizado do Azure AD B2C, o ponto de extremidade atualizado correspondente seria semelhante a:

  • https://login.contoso.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
  • https://login.contoso.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/authorize?p=<policy-name>

Pontos de extremidade que não são afetados

Alguns clientes usam funcionalidades compartilhadas dos locatários empresariais do Microsoft Entra. Por exemplo, adquirir um token de acesso para chamar a API do Microsoft Graph do locatário do Azure AD B2C.

Essa alteração não afeta todos os pontos de extremidade, que não contêm um parâmetro de política na URL. Eles são acessados apenas com os pontos de extremidade login.microsoftonline.com do Microsoft Entra ID e não podem ser usados com o b2clogin.com nem domínios personalizados. O exemplo a seguir mostra um ponto de extremidade de token válido da plataforma de identidade da Microsoft:

https://login.microsoftonline.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/token

Visão geral de alterações obrigatórias

Talvez seja necessário fazer várias modificações para migrar seus aplicativos de login.microsoftonline.com usando pontos de extremidade do Azure AD B2C:

  • Altere a URL de redirecionamento nos aplicativos do provedor de identidade para fazer referência a b2clogin.com ou domínio personalizado. Para obter mais informações, siga as diretrizes para alterar URLs de redirecionamento do provedor de identidade.
  • Atualize seus Azure AD B2C aplicativos para usar b2clogin.com ou domínio personalizado em suas referências de ponto de extremidade de token e fluxo de usuário. Essa alteração pode incluir a atualização do uso de uma biblioteca de autenticação como MSAL (biblioteca de autenticação da Microsoft).
  • Certifique-se de alterar quaisquer Origens permitidas definidas nas configurações do CORS para personalização da interface do usuário.

Alterar URLs de redirecionamento do provedor de identidade

No site de cada provedor de identidade no qual você criou um aplicativo, altere todas as URLs confiáveis para redirecionar para your-tenant-name.b2clogin.com ou um domínio personalizado, em vez de login.microsoftonline.com.

Há dois formatos que você pode usar para suas URLs de redirecionamento para b2clogin.com. A primeira fornece o benefício de não fazer com que "Microsoft" apareça em qualquer lugar na URL usando a ID do locatário (um GUID) no lugar do nome de domínio do locatário. Observe que o ponto de extremidade authresp pode não conter um nome de política.

https://{your-tenant-name}.b2clogin.com/{your-tenant-id}/oauth2/authresp

A segunda opção usa o nome de domínio do locatário na forma de your-tenant-name.onmicrosoft.com. Por exemplo:

https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp

Para ambos os formatos:

  • Substitua {your-tenant-name} pelo nome de seu locatário do Azure AD B2C.
  • Remova /te se ele existir na URL.

Atualizar seus aplicativos e APIs

O código em seus aplicativos Azure AD B2C e APIs habilitados para uso pode se referir a login.microsoftonline.com em vários locais. Por exemplo, seu código pode ter referências a fluxos de usuário e pontos de extremidade de token. Atualize o seguinte para, em vez disso, fazer referência a your-tenant-name.b2clogin.com:

  • Ponto de extremidade de autorização
  • Ponto de extremidade de token
  • Emissor do token

Por exemplo, o ponto de extremidade de autoridade para a política de inscrição/entrada da Contoso agora seria:

https://contosob2c.b2clogin.com/00000000-0000-0000-0000-000000000000/B2C_1_signupsignin1

Você pode encontrar informações sobre como migrar APIs da Web baseadas em OWIN e seus aplicativos para b2clogin.com em Migrar uma API da Web baseada em OWIN para b2clogin.com.

Para migrar APIs de gerenciamento de API do Azure protegidas por Azure AD B2C, consulte a seção Migrar para b2clogin.com de Proteger uma API de gerenciamento de API do Azure com Azure AD B2C.

MSAL (Biblioteca de Autenticação da Microsoft)

Propriedade MSAL.NET ValidateAuthority

Se você estiver usando o MSAL.NET v2 ou anterior, defina a propriedade ValidateAuthority como false na instanciação do cliente para permitir redirecionamentos para o b2clogin.com. A definição desse valor como false não é necessária para MSAL.NET v3 e posterior.

ConfidentialClientApplication client = new ConfidentialClientApplication(...); // Can also be PublicClientApplication
client.ValidateAuthority = false; // MSAL.NET v2 and earlier **ONLY**

MSAL para a propriedade validateAuthority do JavaScript

Se você estiver usando MSAL para JavaScript v 1.2.2 ou anterior, defina a propriedade validateAuthority como false.

// MSAL.js v1.2.2 and earlier
this.clientApplication = new UserAgentApplication(
  env.auth.clientId,
  env.auth.loginAuthority,
  this.authCallback.bind(this),
  {
    validateAuthority: false // Required in MSAL.js v1.2.2 and earlier **ONLY**
  }
);

Se você definir validateAuthority: true em MSAL.js 1.3.0 + (o padrão), também deverá especificar um emissor de token válido com knownAuthorities:

// MSAL.js v1.3.0+
this.clientApplication = new UserAgentApplication(
  env.auth.clientId,
  env.auth.loginAuthority,
  this.authCallback.bind(this),
  {
    validateAuthority: true, // Supported in MSAL.js v1.3.0+
    knownAuthorities: ['tenant-name.b2clogin.com'] // Required if validateAuthority: true
  }
);

Próximas etapas

Você pode encontrar informações sobre como migrar APIs da Web baseadas em OWIN e seus aplicativos para b2clogin.com em Migrar uma API da Web baseada em OWIN para b2clogin.com.

Para migrar APIs de gerenciamento de API do Azure protegidas por Azure AD B2C, consulte a seção Migrar para b2clogin.com de Proteger uma API de gerenciamento de API do Azure com Azure AD B2C.