Condividi tramite


Impostare gli URL di reindirizzamento su b2clogin.com per Azure Active Directory B2C

Quando si configura un provider di identità per l'iscrizione e l'accesso nelle applicazioni Azure Active Directory B2C (Azure AD B2C), è necessario specificare gli endpoint del provider di identità di Azure AD B2C. Non è più consigliabile fare riferimento login.microsoftonline.com nelle applicazioni e nelle API per autenticare gli utenti con Azure AD B2C. Usare invece b2clogin.com o un dominio personalizzato per tutte le applicazioni.

A quali endpoint si applicano queste modifiche

La transizione a b2clogin.com si applica solo agli endpoint di autenticazione che usano i criteri di Azure AD B2C (flussi utente o criteri personalizzati) per autenticare gli utenti. Questi endpoint hanno un <policy-name> parametro che specifica i criteri che Azure AD B2C deve usare. Altre informazioni sui criteri di Azure AD B2C.

Gli endpoint precedenti possono essere simili ai seguenti:

  • 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>

Un endpoint aggiornato corrispondente sarà simile al seguente:

  • 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>

Con il dominio personalizzato di Azure AD B2C, l'endpoint aggiornato corrispondente sarà simile al seguente:

  • 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>

Endpoint non interessati

Alcuni clienti usano le funzionalità condivise dei tenant aziendali di Microsoft Entra. Ad esempio, l'acquisizione di un token di accesso per chiamare l'API Microsoft Graph del tenant di Azure AD B2C.

Questa modifica non influisce su tutti gli endpoint, che non contengono un parametro di criteri nell'URL. L'accesso viene eseguito solo con gli endpoint di login.microsoftonline.com dell'ID Entra di Microsoft e non può essere usato con il b2clogin.com o i domini personalizzati. L'esempio seguente mostra un endpoint di token valido di Microsoft Identity Platform:

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

Panoramica delle modifiche necessarie

Potrebbe essere necessario apportare diverse modifiche per eseguire la migrazione delle applicazioni da login.microsoftonline.com usando gli endpoint di Azure AD B2C:

  • Modificare l'URL di reindirizzamento nelle applicazioni del provider di identità in modo che faccia riferimento a b2clogin.com o dominio personalizzato. Per altre informazioni, seguire le indicazioni sugli URL di reindirizzamento del provider di identità di modifica.
  • Aggiornare le applicazioni Azure AD B2C per usare b2clogin.com o dominio personalizzato nei riferimenti al flusso utente e all'endpoint del token. La modifica può includere l'aggiornamento dell'uso di una libreria di autenticazione come Microsoft Authentication Library (MSAL).
  • Aggiornare le origini consentite definite nelle impostazioni CORS per la personalizzazione dell'interfaccia utente.

Modificare gli URL di reindirizzamento del provider di identità

Nel sito Web di ogni provider di identità in cui è stata creata un'applicazione modificare tutti gli URL attendibili per reindirizzare a your-tenant-name.b2clogin.como a un dominio personalizzato invece di login.microsoftonline.com.

Esistono due formati che è possibile usare per gli URL di reindirizzamento b2clogin.com. Il primo offre il vantaggio di non visualizzare "Microsoft" in qualsiasi punto dell'URL usando l'ID tenant (GUID) al posto del nome di dominio del tenant. Si noti che l'endpoint authresp potrebbe non contenere un nome di criterio.

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

La seconda opzione usa il nome di dominio del tenant sotto forma di your-tenant-name.onmicrosoft.com. Ad esempio:

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

Per entrambi i formati:

  • Sostituire {your-tenant-name} con il nome del tenant di Azure AD B2C.
  • Rimuovere /te se è presente nell'URL.

Aggiornare le applicazioni e le API

Il codice nelle applicazioni e nelle API abilitate per Azure AD B2C può fare riferimento a login.microsoftonline.com in diverse posizioni. Ad esempio, il codice potrebbe avere riferimenti ai flussi utente e agli endpoint del token. Aggiornare quanto segue in modo da fare riferimento your-tenant-name.b2clogin.coma :

  • Authorization endpoint (Endpoint di autorizzazione)
  • Endpoint token
  • Autorità emittente del token

Ad esempio, l'endpoint dell'autorità per i criteri di iscrizione/accesso di Contoso sarà ora:

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

Per informazioni sulla migrazione di applicazioni Web basate su OWIN a b2clogin.com, vedere Eseguire la migrazione di un'API Web basata su OWIN a b2clogin.com.

Per la migrazione delle API di Azure Gestione API protette da Azure AD B2C, vedere la sezione Eseguire la migrazione alle b2clogin.com di Proteggere un'API di Azure Gestione API con Azure AD B2C.

Microsoft Authentication Library (MSAL)

MSAL.NET proprietà ValidateAuthority

Se si usa MSAL.NET v2 o versioni precedenti, impostare la proprietà ValidateAuthority su false nella creazione di istanze client per consentire i reindirizzamenti a b2clogin.com. L'impostazione di questo valore su false non è necessaria per MSAL.NET v3 e versioni successive.

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

Proprietà validateAuthority di MSAL per JavaScript

Se si usa MSAL per JavaScript v1.2.2 o versioni precedenti, impostare la proprietà validateAuthority su 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 si imposta validateAuthority: true in MSAL.js 1.3.0+ (impostazione predefinita), è necessario specificare anche un'autorità emittente di token valida con 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
  }
);

Passaggi successivi

Per informazioni sulla migrazione di applicazioni Web basate su OWIN a b2clogin.com, vedere Eseguire la migrazione di un'API Web basata su OWIN a b2clogin.com.

Per la migrazione delle API di Azure Gestione API protette da Azure AD B2C, vedere la sezione Eseguire la migrazione alle b2clogin.com di Proteggere un'API di Azure Gestione API con Azure AD B2C.