Azure Active Directory B2C: accedere usando account di Azure ADAzure Active Directory B2C: Sign in by using Azure AD accounts

Nota

I criteri personalizzati sono disponibili in anteprima pubblica.Custom policies are in public preview.

I criteri personalizzati sono stati progettati principalmente per professionisti della gestione delle identità che devono affrontare scenari complessi.Custom policies are designed primarily for identity pros who need to address complex scenarios. Per la maggior parte degli scenari è consigliabile usare i criteri predefiniti di Azure Active Directory B2C.For most scenarios, we recommend that you use Azure Active Directory B2C built-in policies. I criteri predefiniti sono più facili da impostare per la configurazione.Built-in policies are easier to set up for your configuration. È possibile usare i criteri predefiniti e i criteri personalizzati nello stesso tenant di Azure Active Directory B2C.You can use built-in and custom policies in the same Azure Active Directory B2C tenant. Per altre informazioni, vedere la panoramica dei criteri personalizzati.To learn more, see the overview of custom policies.

Questo articolo illustra come abilitare l'accesso per gli utenti da una specifica organizzazione di Azure Active Directory (Azure AD) tramite l'uso di criteri personalizzati.This article shows you how to enable sign-in for users from a specific Azure Active Directory (Azure AD) organization through the use of custom policies.

PrerequisitiPrerequisites

Completare la procedura descritta nell'articolo Introduzione ai criteri personalizzati.Complete the steps in the Getting started with custom policies article.

La procedura include i passaggi seguenti:These steps include:

  1. Creazione di un tenant di Azure Active Directory B2C (Azure AD B2C).Creating an Azure Active Directory B2C (Azure AD B2C) tenant.
  2. Creazione di un'applicazione Azure AD B2C.Creating an Azure AD B2C application.
  3. Registrazione di due applicazioni del motore di criteri.Registering two policy-engine applications.
  4. Configurazione delle chiavi.Setting up keys.
  5. Configurazione del pacchetto Starter.Setting up the starter pack.

Creare un'app di Azure ADCreate an Azure AD app

Per abilitare l'accesso agli utenti da una specifica organizzazione di Azure AD, è necessario registrare un'applicazione all'interno del tenant aziendale di Azure AD.To enable sign-in for users from a specific Azure AD organization, you need to register an application within the organizational Azure AD tenant.

Nota

Nelle istruzioni seguenti vengono usati "contoso.com" per il tenant di Azure AD dell'organizzazione e "fabrikamb2c.onmicrosoft.com" come tenant di Azure AD B2C.We use "contoso.com" for the organizational Azure AD tenant and "fabrikamb2c.onmicrosoft.com" as the Azure AD B2C tenant in the following instructions.

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Nella barra in alto selezionare il proprio account.On the top bar, select your account. Nell'elenco Directory scegliere il tenant di Azure AD dell'organizzazione in cui si desidera registrare l'applicazione (contoso.com).From the Directory list, choose the organizational Azure AD tenant where you want to register your application (contoso.com).
  3. Fare clic su Altri servizi nel riquadro a sinistra e cercare "Registrazioni per l'app".Select More services in the left pane, and search for "App registrations."
  4. Selezionare Registrazione nuova applicazione.Select New application registration.
  5. Immettere un nome per l'applicazione, ad esempio Azure AD B2C App.Enter a name for your application (for example, Azure AD B2C App).
  6. Selezionare App Web/API per il tipo di applicazione.Select Web app / API for the application type.
  7. Per URL accesso immettere l'URL seguente, dove yourtenant viene sostituito dal nome del tenant di Azure AD B2C (fabrikamb2c.onmicrosoft.com):For Sign-on URL, enter the following URL, where yourtenant is replaced by the name of your Azure AD B2C tenant (fabrikamb2c.onmicrosoft.com):

    Nota

    Il valore di "yourtenant" deve essere in formato minuscolo in URL accesso.The value for "yourtenant" must be all lowercase in the Sign-on URL.

    https://login.microsoftonline.com/te/yourtenant.onmicrosoft.com/oauth2/authresp
    
  8. Salvare l'ID applicazione.Save the application ID.

  9. Selezionare l'applicazione appena creata.Select the newly created application.
  10. Nel pannello Impostazioni selezionare Chiavi.Under the Settings blade, select Keys.
  11. Creare una nuova chiave e salvarla.Create a new key, and save it. Questa chiave sarà necessaria nei passaggi della prossima sezione.You will use it in the steps in the next section.

Aggiungere la chiave di Azure AD in Azure AD B2CAdd the Azure AD key to Azure AD B2C

È necessario archiviare la chiave dell'applicazione contoso.com nel tenant di Azure AD B2C.You need to store the contoso.com application key in your Azure AD B2C tenant. A tale scopo, effettuare l'operazione seguente:To do this:

  1. Passare al tenant di Azure AD B2C e selezionare B2C Settings (Impostazioni B2C) > Framework dell'esperienza di gestione delle identità > Chiavi dei criteri.Go to your Azure AD B2C tenant, and select B2C Settings > Identity Experience Framework > Policy Keys.
  2. Selezionare +Aggiungi.Select +Add.
  3. Selezionare o immettere queste opzioni:Select or enter these options:
    • Selezionare Manuale.Select Manual.
    • Per Nome scegliere un nome che corrisponda al nome del tenant di Azure AD, ad esempio ContosoAppSecret.For Name, choose a name that matches your Azure AD tenant name (for example, ContosoAppSecret). Verrà aggiunto automaticamente il prefisso B2C_1A_ al nome della chiave.The prefix B2C_1A_ is added automatically to the name of your key.
    • Incollare la chiave dell'applicazione nella casella Segreto.Paste your application key in the Secret box.
    • Selezionare Firma.Select Signature.
  4. Selezionare Create.Select Create.
  5. Confermare di avere creato la chiave B2C_1A_ContosoAppSecret.Confirm that you've created the key B2C_1A_ContosoAppSecret.

Aggiungere un provider di attestazioni nel criterio di baseAdd a claims provider in your base policy

Per consentire agli utenti di accedere con Azure AD, è necessario definire Azure AD come provider di attestazioni.If you want users to sign in by using Azure AD, you need to define Azure AD as a claims provider. In altre parole, è necessario specificare un endpoint con cui Azure AD B2C comunicherà.In other words, you need to specify an endpoint that Azure AD B2C will communicate with. L'endpoint offrirà un set di attestazioni che verranno usate da Azure AD B2C per verificare se un utente specifico è stato autenticato.The endpoint will provide a set of claims that are used by Azure AD B2C to verify that a specific user has authenticated.

È possibile definire Azure AD come provider di attestazioni aggiungendo Azure AD al nodo <ClaimsProvider> nel file di estensione dei criteri:You can define Azure AD as a claims provider by adding Azure AD to the <ClaimsProvider> node in the extension file of your policy:

  1. Aprire il file di estensione (TrustFrameworkExtensions.xml) dalla directory di lavoro.Open the extension file (TrustFrameworkExtensions.xml) from your working directory.
  2. Trovare la sezione <ClaimsProviders>.Find the <ClaimsProviders> section. Se non esiste, aggiungerla nel nodo radice.If it does not exist, add it under the root node.
  3. Aggiungere un nuovo nodo <ClaimsProvider> come mostrato di seguito:Add a new <ClaimsProvider> node as follows:

    <ClaimsProvider>
        <Domain>Contoso</Domain>
        <DisplayName>Login using Contoso</DisplayName>
        <TechnicalProfiles>
            <TechnicalProfile Id="ContosoProfile">
                <DisplayName>Contoso Employee</DisplayName>
                <Description>Login with your Contoso account</Description>
                <Protocol Name="OpenIdConnect"/>
                <OutputTokenFormat>JWT</OutputTokenFormat>
                <Metadata>
                    <Item Key="METADATA">https://login.windows.net/contoso.com/.well-known/openid-configuration</Item>
                    <Item Key="ProviderName">https://sts.windows.net/00000000-0000-0000-0000-000000000000/</Item>
                    <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
                    <Item Key="IdTokenAudience">00000000-0000-0000-0000-000000000000</Item>
                    <Item Key="response_types">id_token</Item>
                    <Item Key="UsePolicyInRedirectUri">false</Item>
                </Metadata>
                <CryptographicKeys>
                    <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoAppSecret"/>
                </CryptographicKeys>
                <OutputClaims>
                    <OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="oid"/>
                    <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/>
                    <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
                    <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
                    <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
                    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="contosoAuthentication" />
                    <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="AzureADContoso" />
                </OutputClaims>
                <OutputClaimsTransformations>
                    <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
                    <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
                    <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
                    <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
                </OutputClaimsTransformations>
                <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop"/>
            </TechnicalProfile>
        </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Nel nodo <ClaimsProvider> aggiornare il valore di <Domain> con un valore univoco che consenta di distinguerlo da altri provider di identità.Under the <ClaimsProvider> node, update the value for <Domain> to a unique value that can be used to distinguish it from other identity providers.

  5. Nel nodo <ClaimsProvider> aggiornare il valore di <DisplayName> con un nome descrittivo per il provider di attestazioni.Under the <ClaimsProvider> node, update the value for <DisplayName> to a friendly name for the claims provider. Questo valore non è attualmente usato.This value is not currently used.

Aggiornare il profilo tecnicoUpdate the technical profile

Per ottenere un token dall'endpoint di Azure AD, è necessario definire i protocolli che Azure AD B2C deve usare per comunicare con Azure AD.To get a token from the Azure AD endpoint, you need to define the protocols that Azure AD B2C should use to communicate with Azure AD. Questa operazione viene eseguita all'interno dell'elemento <TechnicalProfile> di <ClaimsProvider>.This is done inside the <TechnicalProfile> element of <ClaimsProvider>.

  1. Aggiornare l'ID del nodo <TechnicalProfile>.Update the ID of the <TechnicalProfile> node. Questo ID viene usato per fare riferimento al profilo tecnico da altre parti dei criteri.This ID is used to refer to this technical profile from other parts of the policy.
  2. Aggiornare il valore di <DisplayName>.Update the value for <DisplayName>. Questo valore verrà visualizzato sul pulsante di accesso nella schermata di accesso.This value will be displayed on the sign-in button on your sign-in screen.
  3. Aggiornare il valore di <Description>.Update the value for <Description>.
  4. Azure AD usa il protocollo OpenID Connect, pertanto è necessario verificare che il valore di <Protocol> sia "OpenIdConnect".Azure AD uses the OpenID Connect protocol, so ensure that the value for <Protocol> is "OpenIdConnect".

È necessario aggiornare la sezione <Metadata> nel file XML precedente in modo da riflettere le impostazioni di configurazione per il tenant di Azure AD specifico.You need to update the <Metadata> section in the XML file referred to earlier to reflect the configuration settings for your specific Azure AD tenant. Nel file XML aggiornare i valori dei metadati come mostrato di seguito:In the XML file, update the metadata values as follows:

  1. Impostare <Item Key="METADATA"> su https://login.windows.net/yourAzureADtenant/.well-known/openid-configuration, dove yourAzureADtenant è il nome del tenant di Azure AD, ad esempio, contoso.com.Set <Item Key="METADATA"> to https://login.windows.net/yourAzureADtenant/.well-known/openid-configuration, where yourAzureADtenant is your Azure AD tenant name (contoso.com).
  2. Aprire il browser e passare all'URL METADATA appena aggiornato.Open your browser and go to the METADATA URL that you just updated.
  3. Nel browser cercare l'oggetto "emittente" e copiarne il valore.In the browser, look for the 'issuer' object and copy its value. L'aspetto dovrebbe essere simile al seguente: https://sts.windows.net/{tenantId}/.It should look like the following: https://sts.windows.net/{tenantId}/.
  4. Incollare il valore per <Item Key="ProviderName"> nel file XML.Paste the value for <Item Key="ProviderName"> in the XML file.
  5. Impostare <Item Key="client_id"> sull'ID dell'applicazione al momento della registrazione dell'app.Set <Item Key="client_id"> to the application ID from the app registration.
  6. Impostare <Item Key="IdTokenAudience"> sull'ID dell'applicazione al momento della registrazione dell'app.Set <Item Key="IdTokenAudience"> to the application ID from the app registration.
  7. Assicurarsi che <Item Key="response_types"> sia impostato su id_token.Ensure that <Item Key="response_types"> is set to id_token.
  8. Assicurarsi che <Item Key="UsePolicyInRedirectUri"> sia impostato su false.Ensure that <Item Key="UsePolicyInRedirectUri"> is set to false.

È anche necessario collegare il segreto di Azure AD registrato nel tenant di Azure AD B2C alle informazioni <ClaimsProvider> di Azure AD:You also need to link the Azure AD secret that you registered in your Azure AD B2C tenant to the Azure AD <ClaimsProvider> information:

  • Nella sezione <CryptographicKeys> del file XML precedente, aggiornare il valore di StorageReferenceId all'ID di riferimento del segreto definito, ad esempio ContosoAppSecret.In the <CryptographicKeys> section in the preceding XML file, update the value for StorageReferenceId to the reference ID of the secret that you defined (for example, ContosoAppSecret).

Caricare il file di estensione per la verificaUpload the extension file for verification

I criteri sono stati a questo punto configurati in modo che Azure AD B2C possa comunicare con la directory di Azure AD.By now, you have configured your policy so that Azure AD B2C knows how to communicate with your Azure AD directory. Provare a caricare il file di estensione dei criteri per verificare che non siano presenti problemi.Try uploading the extension file of your policy just to confirm that it doesn't have any issues so far. A tale scopo, procedere come segue:To do so:

  1. Aprire il pannello Tutti i criteri nel tenant di Azure AD B2C.Open the All Policies blade in your Azure AD B2C tenant.
  2. Selezionare la casella Sovrascrivi il criterio se esistente.Check the Overwrite the policy if it exists box.
  3. Caricare il file di estensione (TrustFrameworkExtensions.xml) e assicurarsi che non presenti errori di convalida.Upload the extension file (TrustFrameworkExtensions.xml), and ensure that it does not fail the validation.

Registrare il provider di attestazioni di Azure AD in un percorso utenteRegister the Azure AD claims provider to a user journey

È ora necessario aggiungere il provider di identità Azure AD in uno dei percorsi utente.You now need to add the Azure AD identity provider to one of your user journeys. Il provider di identità è a questo punto configurato, ma non è disponibile in alcuna delle schermate di iscrizione/accesso.At this point, the identity provider has been set up, but it’s not available in any of the sign-up/sign-in screens. Perché diventi disponibile, occorre creare un duplicato di un percorso utente modello esistente e quindi modificarlo in modo che includa anche il provider di identità Azure AD:To make it available, we will create a duplicate of an existing template user journey, and then modify it so that it also has the Azure AD identity provider:

  1. Aprire il file di base dei criteri, ad esempio TrustFrameworkBase.xml.Open the base file of your policy (for example, TrustFrameworkBase.xml).
  2. Trovare l'elemento <UserJourneys> e copiare l'intero nodo <UserJourney> che include Id="SignUpOrSignIn".Find the <UserJourneys> element and copy the entire <UserJourney> node that includes Id="SignUpOrSignIn".
  3. Aprire il file di estensione, ad esempio TrustFrameworkExtensions.xml, e trovare l'elemento <UserJourneys>.Open the extension file (for example, TrustFrameworkExtensions.xml) and find the <UserJourneys> element. Se l'elemento non esiste, aggiungerne uno.If the element doesn't exist, add one.
  4. Incollare l'intero nodo <UserJourney> copiato come figlio dell'elemento <UserJourneys>.Paste the entire <UserJourney> node that you copied as a child of the <UserJourneys> element.
  5. Rinominare l'ID del nuovo percorso utente (ad esempio, rinominare come SignUpOrSignUsingContoso).Rename the ID of the new user journey (for example, rename as SignUpOrSignUsingContoso).

Visualizzare il "pulsante"Display the "button"

L'elemento <ClaimsProviderSelection> è analogo a un pulsante del provider di identità in una schermata di iscrizione/accesso.The <ClaimsProviderSelection> element is analogous to an identity provider button on a sign-up/sign-in screen. Se si aggiunge un elemento <ClaimsProviderSelection> per Azure AD, verrà visualizzato un nuovo pulsante quando un utente apre la pagina.If you add a <ClaimsProviderSelection> element for Azure AD, a new button shows up when a user lands on the page. Per aggiungere questo elemento:To add this element:

  1. Trovare il nodo <OrchestrationStep> che include Order="1" nel percorso utente appena creato.Find the <OrchestrationStep> node that includes Order="1" in the user journey that you just created.
  2. Aggiungere quanto segue:Add the following:

    <ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
    
  3. Impostare TargetClaimsExchangeId su un valore appropriato.Set TargetClaimsExchangeId to an appropriate value. È consigliabile seguire la stessa convenzione degli altri: [NomeProviderAttestazioni]Exchange.We recommend following the same convention as others: [ClaimProviderName]Exchange.

Ora che il pulsante è stato posizionato, è necessario collegarlo a un'azione.Now that you have a button in place, you need to link it to an action. L'azione, in questo caso, consiste nel far comunicare Azure AD B2C con Azure AD per ricevere un token.The action, in this case, is for Azure AD B2C to communicate with Azure AD to receive a token. È possibile farlo collegando il profilo tecnico per il provider di attestazioni di Azure AD:Link the button to an action by linking the technical profile for your Azure AD claims provider:

  1. Trovare l'oggetto <OrchestrationStep> che include Order="2" nel nodo <UserJourney>.Find the <OrchestrationStep> that includes Order="2" in the <UserJourney> node.
  2. Aggiungere quanto segue:Add the following:

    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="ContosoProfile" />
    
  3. Aggiornare Id allo stesso valore di TargetClaimsExchangeId nella sezione precedente.Update Id to the same value as that of TargetClaimsExchangeId in the preceding section.

  4. Aggiornare TechnicalProfileReferenceId all'ID del profilo tecnico creato in precedenza, ad esempio ContosoProfile.Update TechnicalProfileReferenceId to the ID of the technical profile you created earlier (ContosoProfile).

Caricare il file di estensione aggiornatoUpload the updated extension file

La modifica del file di estensione è completata.You are done modifying the extension file. Salvare il file.Save it. Caricare il file e assicurarsi che tutte le convalide abbiano esito positivo.Then upload the file, and ensure that all validations succeed.

Aggiornare il file RPUpdate the RP file

È ora necessario aggiornare il file della relying party (RP) che avvierà il percorso utente appena creato:You now need to update the relying party (RP) file that will initiate the user journey that you just created:

  1. Creare una copia di SignUpOrSignIn.xml nella directory di lavoro e rinominarla, ad esempio in SignUpOrSignInWithAAD.xml.Make a copy of SignUpOrSignIn.xml in your working directory, and rename it (for example, rename it to SignUpOrSignInWithAAD.xml).
  2. Aprire il nuovo file e aggiornare l'attributo PolicyId per <TrustFrameworkPolicy> con un valore univoco, ad esempio SignUpOrSignInWithAAD,Open the new file and update the PolicyId attribute for <TrustFrameworkPolicy> with a unique value (for example, SignUpOrSignInWithAAD).
    che sarà il nome dei criteri, ad esempio B2C_1A_SignUpOrSignInWithAAD.This will be the name of your policy (for example, B2C_1A_SignUpOrSignInWithAAD).
  3. Modificare l'attributo ReferenceId in <DefaultUserJourney> in modo che corrisponda all'ID del nuovo percorso utente creato, ad esempio SignUpOrSignUsingContoso.Modify the ReferenceId attribute in <DefaultUserJourney> to match the ID of the new user journey that you created (SignUpOrSignUsingContoso).
  4. Salvare le modifiche e caricare il file.Save your changes, and upload the file.

risoluzione dei problemiTroubleshooting

Testare i criteri personalizzati appena caricati aprendo il relativo pannello e facendo clic su Esegui adesso.Test the custom policy that you just uploaded by opening its blade and clicking Run now. Per diagnosticare i problemi, leggere l'articolo relativo alla risoluzione dei problemi.To diagnose problems, read about troubleshooting.

Passaggi successiviNext steps

Inviare commenti e suggerimenti all'indirizzo AADB2CPreview@microsoft.com.Provide feedback to AADB2CPreview@microsoft.com.