Configurare l'iscrizione e l'accesso con un account Azure AD B2C da un altro tenant di Azure AD B2C

Prima di iniziare, usare il selettore Scegli un tipo di criterio per scegliere il tipo di criterio che si sta configurando. Azure Active Directory B2C offre due metodi per definire il modo in cui gli utenti interagiscono con le applicazioni: tramite flussi utente predefiniti o tramite criteri personalizzati completamente configurabili. I passaggi necessari in questo articolo sono diversi per ogni metodo.

Nota

In Azure Active Directory B2C i criteri personalizzati sono stati progettati principalmente per far fronte a scenari complessi. Per la maggior parte degli scenari, è consigliabile usare i flussi utente predefiniti. In caso contrario, vedere Introduzione ai criteri personalizzati in Active Directory B2C.

Panoramica

Questo articolo descrive come configurare una federazione con un altro tenant di Azure AD B2C. Quando le applicazioni sono protette con Azure AD B2C, ciò consente agli utenti di altri azure AD B2C di accedere con gli account esistenti. Nel diagramma seguente gli utenti possono accedere a un'applicazione protetta da Azure AD B2C di Contoso, con un account gestito dal tenant di Azure AD B2C di Fabrikam. In questo caso, l'account utente deve essere presente nel tenant di Fabrikam prima che un'applicazione protetta da Azure AD B2C di Contoso possa tentare di accedere.

Azure AD B2C federation with another Azure AD B2C tenant

Prerequisiti

Verificare il dominio dell'editore dell'applicazione

A partire da novembre 2020, le nuove registrazioni dell'applicazione vengono visualizzate come non verificate nella richiesta di consenso dell'utente, a meno che il dominio dell'editore dell'applicazione non venga verificatoe che l'identità della società sia stata verificata con Microsoft Partner Network e associata all'applicazione. Altre informazioni su questa modifica. Si noti che per i flussi utente di Azure AD B2C, il dominio dell'editore viene visualizzato solo quando si usa un account Microsoft o un altro tenant di Microsoft Entra come provider di identità. Per soddisfare questi nuovi requisiti, eseguire le operazioni seguenti:

  1. Verificare l'identità aziendale usando l'account Microsoft Partner Network (MPN). Questo processo verifica le informazioni relative all'azienda e al contatto principale dell'azienda.
  2. Completare il processo di verifica dell'editore per associare l'account MPN alla registrazione dell'app usando una delle opzioni seguenti:
    • Se la registrazione dell'app per il provider di identità dell'account Microsoft si trova in un tenant di Microsoft Entra, verificare l'app nel portale di registrazione app.
    • Se la registrazione dell'app per il provider di identità dell'account Microsoft si trova in un tenant di Azure AD B2C, contrassegnare l'app come editore verificata usando le API Microsoft Graph, ad esempio usando Graph Explorer. L'interfaccia utente per l'impostazione dell'autore verificato di un'app è attualmente disabilitata per i tenant di Azure AD B2C.

Creare un'applicazione Azure AD B2C

Per abilitare l'accesso per gli utenti con un account da un altro tenant di Azure AD B2C (ad esempio, Fabrikam), in Azure AD B2C (ad esempio, Contoso):

  1. Creare un flusso utente o un criterio personalizzato.
  2. Creare quindi un'applicazione in Azure AD B2C, come descritto in questa sezione.

Per creare un'applicazione.

  1. Accedi al portale di Azure.

  2. Se si ha accesso a più tenant, selezionare l'icona Impostazioni nel menu in alto per passare al tenant di Azure AD B2C dal menu Directory e sottoscrizioni.

  3. Nel portale di Azure cercare e selezionare Azure AD B2C.

  4. Selezionare Registrazioni app e quindi Nuova registrazione.

  5. Immettere un nome per l'applicazione. Ad esempio, ContosoApp.

  6. Sotto Tipi di account supportati, seleziona Account in qualsiasi provider di identità o directory dell'organizzazione (per autenticare gli utenti con flussi utente).

  7. In URI di reindirizzamento selezionare Web e quindi immettere l'URL seguente in tutte le lettere minuscole, dove your-B2C-tenant-name viene sostituito con il nome del tenant di Azure AD B2C, ad esempio Contoso.

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

    Ad esempio, https://contoso.b2clogin.com/contoso.onmicrosoft.com/oauth2/authresp.

    Se si usa un dominio personalizzato, immettere https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Sostituire your-domain-name con il dominio personalizzato e your-tenant-name con il nome del tenant.

  8. In Autorizzazioni selezionare la casella di controllo Concedi consenso amministratore a openid e offline_access autorizzazioni .

  9. Selezionare Registra.

  10. Nella pagina Azure AD B2C - Registrazioni app selezionare l'applicazione creata, ad esempio ContosoApp.

  11. Annotare l'ID applicazione (client) visualizzato nella pagina Panoramica dell'applicazione. Questa operazione è necessaria quando si configura il provider di identità nella sezione successiva.

  12. Nel menu a sinistra, in Gestisci, selezionare Certificati e segreti.

  13. Selezionare Nuovo segreto client.

  14. Immettere una descrizione per il segreto client nella casella Descrizione. Ad esempio, clientsecret1.

  15. In Scadenzaselezionare una durata per la quale il segreto è valido, quindi selezionare Aggiungi.

  16. Registrare il Valore del segreto. Questa operazione è necessaria quando si configura il provider di identità nella sezione successiva.

Configurare Azure AD B2C come provider di identità

  1. Accedi al portale di Azure.

  2. Se si ha accesso a più tenant, selezionare l'icona Impostazioni nel menu in alto per passare al tenant di Azure AD B2C dal menu Directory e sottoscrizioni.

  3. Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.

  4. Selezionare Provider di identità e quindi selezionare Nuovo provider di OpenID Connect.

  5. Immetti un valore per Nome. Ad esempio, immettere Fabrikam.

  6. Per URL dei metadati immettere l'URL seguente sostituendo {tenant} con il nome di dominio del tenant di Azure AD B2C, ad esempio Fabrikam. Sostituire con {policy} il nome del criterio configurato nell'altro tenant:

    https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration
    

    Ad esempio, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.

  7. Per ID client, immettere l'ID applicazione registrato in precedenza.

  8. In Segreto client immettere il segreto client registrato in precedenza.

  9. In Ambito, immettere il openid.

  10. Lasciare i valori predefiniti per Tipo di risposta e Modalità di risposta.

  11. (Facoltativo) Per l'hint Dominio immettere il nome di dominio che si vuole usare per l'accesso diretto. Ad esempio, fabrikam.com.

  12. In Mapping delle attestazioni del provider di identità selezionare le attestazioni seguenti:

    • ID utente: sub
    • Nome visualizzato: name
    • Nome: given_name
    • Cognome: family_name
    • Posta elettronica: posta elettronica
  13. Seleziona Salva.

Aggiungere un provider di identità di Azure AD B2C a un flusso utente

  1. Nel tenant di Azure AD B2C selezionare Flussi utente.
  2. Fare clic sul flusso utente che si vuole aggiungere il provider di identità di Azure AD B2C.
  3. In Provider di identità social selezionare Fabrikam.
  4. Seleziona Salva.
  5. Per testare i criteri, selezionare Esegui flusso utente.
  6. In Applicazione selezionare l'applicazione Web denominata testapp1 registrata in precedenza. L'URL di risposta dovrebbe mostrare https://jwt.ms.
  7. Selezionare il pulsante Esegui flusso utente.
  8. Nella pagina di iscrizione o accesso selezionare Fabrikam per accedere con l'altro tenant di Azure AD B2C.

Se il processo di accesso ha esito positivo, il browser viene reindirizzato a https://jwt.ms, che visualizza il contenuto del token restituito da Azure AD B2C.

Creare una chiave dei criteri

È necessario archiviare la chiave dell'applicazione creata in precedenza nel tenant di Azure AD B2C.

  1. Se si ha accesso a più tenant, selezionare l'icona Impostazioni nel menu in alto per passare al tenant di Azure AD B2C dal menu Directory e sottoscrizioni.
  2. Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.
  3. In Criteri selezionare Identity Experience Framework.
  4. Selezionare Chiavi dei criteri e quindi Aggiungi.
  5. Per Opzioni scegliere Manual.
  6. Immettere un nome per la chiave dei criteri. Ad esempio, FabrikamAppSecret. Il prefisso B2C_1A_ viene aggiunto automaticamente al nome della chiave al momento della creazione, quindi il relativo riferimento nel codice XML nella sezione seguente consiste nel B2C_1A_FabrikamAppSecret.
  7. In Segreto immettere il segreto client registrato in precedenza.
  8. In Uso chiave selezionare Signature.
  9. Seleziona Crea.

Configurare Azure AD B2C come provider di identità

Per consentire agli utenti di accedere usando un account da un altro tenant di Azure AD B2C (Fabrikam), è necessario definire l'altro Azure AD B2C come provider di attestazioni con cui Azure AD B2C può comunicare tramite un endpoint. L'endpoint offre un set di attestazioni che vengono usate da Azure AD B2C per verificare se un utente specifico è stato autenticato.

È possibile definire Azure AD B2C come provider di attestazioni aggiungendo Azure AD B2C all'elemento ClaimsProvider nel file di estensione dei criteri.

  1. Aprire il file TrustFrameworkExtensions.xml.

  2. Trovare l'elemento ClaimsProviders. Se non esiste, aggiungerlo nell'elemento radice.

  3. Aggiungere un nuovo ClaimsProvider come illustrato di seguito:

    <ClaimsProvider>
      <Domain>fabrikam.com</Domain>
      <DisplayName>Federation with Fabrikam tenant</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AzureADB2CFabrikam-OpenIdConnect">
        <DisplayName>Fabrikam</DisplayName>
        <Protocol Name="OpenIdConnect"/>
        <Metadata>
          <!-- Update the Client ID below to the Application ID -->
          <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
          <!-- Update the metadata URL with the other Azure AD B2C tenant name and policy name -->
          <Item Key="METADATA">https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration</Item>
          <Item Key="UsePolicyInRedirectUri">false</Item>
          <Item Key="response_types">code</Item>
          <Item Key="scope">openid</Item>
          <Item Key="response_mode">form_post</Item>
          <Item Key="HttpBinding">POST</Item>
        </Metadata>
        <CryptographicKeys>
          <Key Id="client_secret" StorageReferenceId="B2C_1A_FabrikamAppSecret"/>
        </CryptographicKeys>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
          <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
          <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
          <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
          <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
          <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss"  />
          <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          <OutputClaim ClaimTypeReferenceId="otherMails" PartnerClaimType="emails"/>    
        </OutputClaims>
        <OutputClaimsTransformations>
          <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
          <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
          <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
        </OutputClaimsTransformations>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
      </TechnicalProfile>
     </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Aggiornare gli elementi XML seguenti con il valore pertinente:

    Elemento XML Valore
    ClaimsProvider\Domain Nome di dominio usato per l'accesso diretto. Immettere il nome di dominio che si vuole usare nell'accesso diretto. Ad esempio, fabrikam.com.
    TechnicalProfile\DisplayName Questo valore verrà visualizzato sul pulsante di accesso nella schermata di accesso. Ad esempio, Fabrikam.
    Metadata\client_id L'identificatore dell'attestazione del provider di identità. Aggiornare l'ID client con l'ID applicazione creato in precedenza nell'altro tenant di Azure AD B2C.
    Metadata\METADATA URL che punta a un documento di configurazione openID Connessione provider di identità, noto anche come endpoint di configurazione noto openID. Immettere l'URL seguente sostituendo {tenant} con il nome di dominio dell'altro tenant di Azure AD B2C (Fabrikam). {tenant} Sostituire con il nome del criterio configurato nell'altro tenant e {policy] con il nome del criterio: https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration. Ad esempio, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.
    CryptographicKeys Aggiornare il valore di Archiviazione ReferenceId al nome della chiave dei criteri creata in precedenza. Ad esempio, B2C_1A_FabrikamAppSecret.

Aggiungere un percorso utente

A questo punto, il provider di identità è stato configurato, ma non è ancora disponibile in nessuna delle pagine di accesso. Se non si ha un percorso utente personalizzato, creare un duplicato di un percorso utente modello esistente, altrimenti continuare con il passaggio successivo.

  1. Aprire il file TrustFrameworkBase.xml dallo starter pack.
  2. Trovare e copiare l'intero contenuto dell'elemento UserJourney che include Id="SignUpOrSignIn".
  3. Aprire TrustFrameworkExtensions.xml e trovare l'elemento UserJourneys. Se l'elemento non esiste, aggiungerne uno.
  4. Incollare l'intero contenuto dell'elemento UserJourney copiato come figlio dell'elemento UserJourneys.
  5. Rinominare l'ID del percorso utente. Ad esempio, Id="CustomSignUpSignIn".

Aggiungere il provider di identità a un percorso utente

Dopo aver creato un percorso utente, aggiungere il nuovo provider di identità al percorso utente. Aggiungere prima un pulsante di accesso, quindi collegare il pulsante a un'azione. L'azione è il profilo tecnico creato in precedenza.

  1. Trovare l'elemento del passaggio di orchestrazione che include Type="CombinedSignInAndSignUp"o Type="ClaimsProviderSelection" nel percorso utente. In genere è il primo passaggio di orchestrazione. L'elemento ClaimsProviderSelections contiene un elenco di provider di identità con cui un utente può accedere. L'ordine degli elementi controlla l'ordine dei pulsanti di accesso presentati all'utente. Aggiungere un elemento XML ClaimsProviderSelection . Impostare il valore di TargetClaimsExchangeId su un nome descrittivo.

  2. Nel passaggio di orchestrazione successivo aggiungere un elemento ClaimsExchange . Impostare ID sul valore dell'ID di scambio di attestazioni di destinazione. Aggiornare il valore di TechnicalProfileReferenceId sull'ID del profilo tecnico creato in precedenza.

Il codice XML seguente illustra i primi due passaggi di orchestrazione di un percorso utente con il provider di identità:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="AzureADB2CFabrikamExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADB2CFabrikamExchange" TechnicalProfileReferenceId="AzureADB2CFabrikam-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Configurare i criteri della relying party

I criteri della relying party, ad esempio SignUpSignIn.xml, specificano il percorso utente che verrà eseguito da Azure AD B2C. Trovare l'elemento DefaultUserJourney all'interno della relying party. Aggiornare ReferenceId in modo che corrisponda all'ID percorso utente in cui è stato aggiunto il provider di identità.

Nell'esempio seguente, per il CustomSignUpSignIn percorso utente, ReferenceId è impostato su CustomSignUpSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Caricare il criterio personalizzati

  1. Accedi al portale di Azure.
  2. Selezionare l'icona Directory e sottoscrizione nella barra degli strumenti del portale e quindi la directory contenente il tenant di Azure AD B2C.
  3. Nel portale di Azure cercare e selezionare Azure AD B2C.
  4. In Criteri selezionare Identity Experience Framework.
  5. Selezionare Carica criteri personalizzati e quindi caricare i due file di criteri modificati, nell'ordine seguente: i criteri di estensione, ad esempio , quindi i criteri della relying party, ad esempio TrustFrameworkExtensions.xmlSignUpSignIn.xml.

Testare i criteri personalizzati

  1. Selezionare i criteri della relying party, ad esempio B2C_1A_signup_signin.
  2. In Applicazione selezionare un'applicazione Web registrata in precedenza. L'URL di risposta dovrebbe mostrare https://jwt.ms.
  3. Selezionare il pulsante Esegui adesso .
  4. Nella pagina di iscrizione o accesso selezionare Fabrikam per accedere con l'altro tenant di Azure AD B2C.

Se il processo di accesso ha esito positivo, il browser viene reindirizzato a https://jwt.ms, che visualizza il contenuto del token restituito da Azure AD B2C.

Passaggi successivi

Informazioni su come passare l'altro token di Azure AD B2C all'applicazione.