Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
A partire dal 1° maggio 2025, Azure AD B2C non sarà più disponibile per l'acquisto per i nuovi clienti. Altre informazioni sono disponibili nelle domande frequenti.
Prima di iniziare, utilizza il selettore Scegli un tipo di criterio nella parte superiore di questa pagina 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.
Annotazioni
Questa funzionalità è disponibile in anteprima pubblica.
Importante
A partire da maggio 2021, GitHub ha annunciato una modifica che influisce sulla federazione dei criteri personalizzati di Azure AD B2C. A causa della modifica, aggiungere <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
metadati al profilo tecnico di GitHub. Per altre informazioni, vedere Deprecazione dell'autenticazione API tramite parametri di query.
Prerequisiti
- Creare un flusso utente in modo tale che gli utenti possano iscriversi e accedere all'applicazione.
- Registrare un'applicazione Web.
- Completare i passaggi descritti in Introduzione ai criteri personalizzati in Active Directory B2C. Questa esercitazione illustra come aggiornare i file di criteri personalizzati per usare la configurazione del tenant di Azure AD B2C.
- Registrare un'applicazione Web.
Creare un'applicazione OAuth gitHub
Per abilitare l'accesso con un account GitHub in Azure Active Directory B2C (Azure AD B2C), è necessario creare un'applicazione nel portale per sviluppatori GitHub . Per altre informazioni, vedere Creazione di un'app OAuth. Se non si ha già un account GitHub, è possibile iscriversi all'indirizzo https://www.github.com/.
- Accedere a GitHub Developer con le credenziali di GitHub.
- Selezionare App OAuth e quindi Nuova app OAuth.
- Immettere un nome applicazione e l'URL della home page.
- Per URL di callback di autorizzazione immettere
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Se si usa un dominio personalizzato, immetterehttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Sostituireyour-domain-name
con il dominio personalizzato eyour-tenant-name
con il nome del tenant. Usare tutte le lettere minuscole quando si immette il nome del tenant anche se il tenant è definito con lettere maiuscole in Azure AD B2C. - Fare clic su Registra applicazione.
- Copiare i valori di ID client e Segreto client. Devi soddisfare entrambi i requisiti per aggiungere il provider di identità al tenant.
Configurare GitHub come provider di identità
- Accedere al portale di Azure con un account con almeno privilegi di amministratore del provider di identità esterno .
- Se si dispone dell'accesso a più tenant, selezionare l'icona Impostazioni nel menu superiore per passare al tenant di Azure AD B2C dal menu Directory + sottoscrizioni.
- Scegliere Tutti i servizi nell'angolo in alto a sinistra del portale di Azure, cercare e selezionare Azure AD B2C.
- Seleziona Provider di identità, quindi seleziona GitHub (Anteprima).
- Immettere un nome. Ad esempio, GitHub.
- Per ID client immettere l'ID client dell'applicazione GitHub creata in precedenza.
- Per Segreto client immettere il segreto client annotato in precedenza.
- Seleziona Salva.
Aggiungere un provider di identità GitHub a un flusso utente
A questo punto, il fornitore di identità GitHub è stato configurato, ma non è ancora disponibile in nessuna delle pagine di accesso. Per aggiungere il fornitore di identità di GitHub a un flusso utente:
- Nel tenant di Azure AD B2C selezionare Flussi utente.
- Fai clic sul flusso utente a cui vuoi aggiungere il provider di identità GitHub.
- In Provider di identità social selezionare GitHub.
- Seleziona Salva.
- Per testare la politica, selezionare Esegui flusso utente.
- In Applicazione selezionare l'applicazione Web denominata testapp1 registrata in precedenza. L'URL di risposta dovrebbe mostrare
https://jwt.ms
. - Selezionare il pulsante Esegui flusso utente.
- Nella pagina di iscrizione o accesso selezionare GitHub per accedere con l'account GitHub.
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 il segreto client registrato in precedenza nel tenant di Azure AD B2C.
- Accedi al portale di Azure.
- Se si dispone dell'accesso a più tenant, selezionare l'icona Impostazioni nel menu superiore per passare al tenant di Azure AD B2C dal menu Directory + sottoscrizioni.
- Scegliere Tutti i servizi nell'angolo in alto a sinistra del portale di Azure e quindi cercare e selezionare Azure AD B2C.
- Nella pagina Panoramica selezionare Identity Experience Framework.
- Selezionare Chiavi dei criteri e quindi selezionare Aggiungi.
- Per Opzioni scegliere
Manual
. - Immettere un nome per la chiave della politica. Ad esempio:
GitHubSecret
. Il prefissoB2C_1A_
viene aggiunto automaticamente al nome della chiave. - In Segreto immettere il segreto client registrato in precedenza.
- Per Utilizzo chiave selezionare
Signature
. - Clicca su Crea.
Configurare GitHub come provider di identità
Per consentire agli utenti di accedere usando un account GitHub, è necessario definire l'account come provider di attestazioni con cui Azure AD B2C può comunicare tramite un endpoint. L'endpoint fornisce un set di attestazioni usate da Azure AD B2C per verificare che un utente specifico sia stato autenticato.
È possibile definire un account GitHub come provider di attestazioni aggiungendolo all'elemento ClaimsProviders nel file di estensione dei criteri.
Aprire il TrustFrameworkExtensions.xml.
Trova l'elemento ClaimsProviders. Se non esiste, aggiungerlo sotto l'elemento radice.
Aggiungere un nuovo ClaimsProvider come segue:
<ClaimsProvider> <Domain>github.com</Domain> <DisplayName>GitHub</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="GitHub-OAuth2"> <DisplayName>GitHub</DisplayName> <Protocol Name="OAuth2" /> <Metadata> <Item Key="ProviderName">github.com</Item> <Item Key="authorization_endpoint">https://github.com/login/oauth/authorize</Item> <Item Key="AccessTokenEndpoint">https://github.com/login/oauth/access_token</Item> <Item Key="ClaimsEndpoint">https://api.github.com/user</Item> <Item Key="HttpBinding">GET</Item> <Item Key="scope">read:user user:email</Item> <Item Key="UsePolicyInRedirectUri">0</Item> <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> <Item Key="UserAgentForClaimsExchange">CPIM-Basic/{tenant}/{policy}</Item> <!-- Update the Client ID below to the Application ID --> <Item Key="client_id">Your GitHub application ID</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_GitHubSecret"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="numericUserId" PartnerClaimType="id" /> <OutputClaim ClaimTypeReferenceId="issuerUserId" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="github.com" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateIssuerUserId" /> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Impostare client_id sull'ID applicazione dalla registrazione dell'app.
Salva il file.
Aggiungere le trasformazioni delle attestazioni
Il profilo tecnico di GitHub richiede che le trasformazioni delle attestazioni CreateIssuerUserId vengano aggiunte all'elenco di ClaimsTransformations. Se nel file non è definito un elemento ClaimsTransformations , aggiungere gli elementi XML padre come illustrato di seguito. Le trasformazioni delle attestazioni richiedono anche un nuovo tipo di attestazione definito con nome numericUserId.
- Cercare l'elemento BuildingBlocks. Se l'elemento non esiste, aggiungerlo.
- Individuare l'elemento ClaimsSchema . Se l'elemento non esiste, aggiungerlo.
- Aggiungere l'asserzione numericUserId all'elemento ClaimsSchema.
- Trova l'elemento ClaimsTransformations. Se l'elemento non esiste, aggiungerlo.
- Aggiungete le trasformazioni delle attestazioni CreateIssuerUserId all'elemento ClaimsTransformations.
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="numericUserId">
<DisplayName>Numeric user Identifier</DisplayName>
<DataType>long</DataType>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<ClaimsTransformation Id="CreateIssuerUserId" TransformationMethod="ConvertNumberToStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
</BuildingBlocks>
Aggiungere un percorso utente
A questo punto, il fornitore dell'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.
- Aprire il fileTrustFrameworkBase.xml dallo starter pack.
- Trovare e copiare l'intero contenuto dell'elemento UserJourney che include
Id="SignUpOrSignIn"
. - Aprire il TrustFrameworkExtensions.xml e trovare l'elemento UserJourneys . Se l'elemento non esiste, aggiungerne uno.
- Incollare l'intero contenuto dell'elemento UserJourney copiato come elemento figlio dell'elemento UserJourneys .
- Rinominare l'ID del percorso utente. Ad esempio:
Id="CustomSignUpSignIn"
.
Aggiungere il fornitore di identità a un percorso dell'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.
Trovare l'elemento del passaggio di orchestrazione che include
Type="CombinedSignInAndSignUp"
oType="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 amichevole.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="GitHubExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="GitHubExchange" TechnicalProfileReferenceId="GitHub-OAuth2" />
</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. Aggiorna ReferenceId affinché corrisponda all'ID del percorso utente in cui hai aggiunto il provider di identità.
Nell'esempio seguente, per il CustomSignUpSignIn
percorso utente, ReferenceId è impostato su CustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Caricare i criteri personalizzati
- Accedi al portale di Azure.
- Selezionare l'icona Directory e sottoscrizione nella barra degli strumenti del portale e quindi selezionare la directory che contiene il tenant di Azure AD B2C.
- Nel portale di Azure cercare e selezionare Azure AD B2C.
- Sotto Politiche, selezionare Identity Experience Framework.
- Selezionare Carica criteri personalizzati e quindi caricare i due file di criteri modificati, nell'ordine seguente: il criterio di estensione, ad esempio
TrustFrameworkExtensions.xml
, quindi il criterio della parte fiduciante, comeSignUpSignIn.xml
.
Metti alla prova la tua politica personalizzata.
- Seleziona i criteri della tua parte fidata, ad esempio
B2C_1A_signup_signin
. - In Applicazione selezionare un'applicazione Web registrata in precedenza. L'URL di risposta dovrebbe mostrare
https://jwt.ms
. - Selezionare il pulsante Esegui adesso .
- Nella pagina di iscrizione o accesso selezionare GitHub per accedere con l'account GitHub.
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 il token GitHub all'applicazione.
- Scopri la Demo live della federazione di GitHub e come trasferire il token di accesso di GitHub nella Demo live.