Aggiungere AD FS come provider di identità openID Connessione usando criteri personalizzati in Azure Active Directory 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.
Prerequisiti
- Creare un flusso utente in modo 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
- Registrare un'applicazione Web.
Creare un'applicazione AD FS
Per abilitare l'accesso per gli utenti con un account AD FS in Azure Active Directory B2C (Azure AD B2C), creare un gruppo di applicazioni in AD FS. Per altre informazioni, vedere Creare un'applicazione Web con OpenID Connessione con AD FS 2016 e versioni successive
Per creare un gruppo di applicazioni, seguire questa procedura:
- In Server Manager selezionare Strumenti e quindi gestione AD FS.
- Nella gestione di ADFS, fare clic su Gruppi di applicazioni e selezionare Aggiungi gruppo di applicazioni.
- Nella schermata iniziale della Creazione guidata gruppo di applicazioni:
- Immettere il nome dell'applicazione. Ad esempio, applicazione Azure AD B2C.
- In Applicazioni client-server selezionare il Web browser che accede a un modello di applicazione Web.
- Selezionare Avanti.
- Nella schermata Applicazione nativa della Creazione guidata gruppo di applicazioni :
- Copia il identificatore Client valore. L'identificatore client è l'ID applicazione AD FS. L'ID applicazione sarà necessario più avanti in questo articolo.
- In URI di reindirizzamento immettere
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
e quindi Aggiungi. Se si usa un dominio personalizzato, immetterehttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Sostituireyour-tenant-name
con il nome del tenant eyour-domain-name
con il dominio personalizzato. - Selezionare Avanti e quindi Avanti e quindi di nuovo Avanti per completare la registrazione guidata dell'app.
- Selezionare Chiudi.
Configurare le attestazioni dell'app
In questo passaggio configurare l'applicazione AD FS attestazioni restituisce ad Azure AD B2C.
In Gruppi di applicazioni selezionare l'applicazione creata.
Nella finestra delle proprietà dell'applicazione, in Applicazioni, selezionare l'applicazione Web. A questo punto selezionare Edit (Modifica).
Selezionare la scheda Regole di trasformazione rilascio. Selezionare quindi Aggiungi regola.
In Modello di regola attestazione selezionare Invia attributi LDAP come attestazioni e quindi Avanti.
Specificare un nome in Nome regola attestazione. Per Archivio attributi selezionare Active Directory, aggiungere le attestazioni seguenti.
Attributo LDAP Tipo di attestazione in uscita Nome dell'entità utente upn Surname family_name Given-Name given_name Display-Name name Si noti che alcuni nomi non verranno visualizzati nell'elenco a discesa tipo di attestazione in uscita. È necessario digitarli manualmente in (l'elenco a discesa è modificabile).
Selezionare Fine.
Selezionare Applica e quindi OK.
Selezionare di nuovo OK per completare.
Configurare AD FS come provider di identità
Accedere al portale di Azure come amministratore globale del tenant di Azure AD B2C.
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.
Scegliere Tutti i servizi nell'angolo in alto a sinistra nel portale di Azure e quindi cercare e selezionare Azure AD B2C.
Selezionare Provider di identità e quindi selezionare Nuovo provider di OpenID Connect.
Immetti un valore per Nome. Ad esempio, Contoso.
Per URL metadati immettere l'URL del documento Di configurazione di AD FS OpenID Connessione. Ad esempio:
https://adfs.contoso.com/adfs/.well-known/openid-configuration
Per ID client, immettere l'ID applicazione registrato in precedenza.
In Ambito, immettere il
openid
.In Tipo di risposta selezionare id_token. Il valore del segreto client non è quindi necessario. Altre informazioni sull'uso di ID client e segreto quando si aggiunge un provider di identità OpenID Connessione generico.
(Opzionale) Per l'hint di dominio, immettere
contoso.com
. Per altre informazioni, vedere Configurare l'accesso diretto tramite Active Directory B2C.In Mapping delle attestazioni del provider di identità selezionare le attestazioni seguenti:
- ID utente:
upn
- Nome visualizzato:
unique_name
- Nome specificato:
given_name
- Cognome:
family_name
- ID utente:
Seleziona Salva.
Aggiungere un provider di identità AD FS a un flusso utente
A questo punto, il provider di identità AD FS (Contoso) è stato configurato, ma non è ancora disponibile in nessuna delle pagine di accesso. Per aggiungere il provider di identità AD FS a un flusso utente:
- Nel tenant di Azure AD B2C selezionare Flussi utente.
- Selezionare il flusso utente che si vuole aggiungere il provider di identità AD FS (Contoso).
- In Provider di identità social selezionare Contoso.
- Seleziona Salva.
- Per testare i criteri, 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 Contoso per accedere con l'account Contoso.
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.
Configurare AD FS come provider di identità
Per consentire agli utenti di accedere usando un account AD FS, è necessario definire AD FS come provider di attestazioni con cui Azure AD B2C può comunicare tramite un endpoint.
Aprire TrustFrameworkExtensions.xml.
Trovare l'elemento ClaimsProviders. Se non esiste, aggiungerlo nell'elemento radice.
Aggiungere un nuovo ClaimsProvider come illustrato di seguito:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-OpenIdConnect"> <DisplayName>Contoso</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://your-adfs-domain/adfs/.well-known/openid-configuration</Item> <Item Key="response_types">id_token</Item> <Item Key="response_mode">form_post</Item> <Item Key="scope">openid</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">0</Item> <!-- Update the Client ID below to the Application ID --> <Item Key="client_id">Your AD FS application ID</Item> </Metadata> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="upn" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="unique_name" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Per l'URL dei metadati immettere l'URL del documento Di configurazione di AD FS OpenID Connessione. Ad esempio:
https://adfs.contoso.com/adfs/.well-known/openid-configuration
Impostare client_id sull'ID applicazione ottenuto con la registrazione dell'applicazione.
Salva il file.
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.
- Aprire il file TrustFrameworkBase.xml dallo starter pack.
- Trovare e copiare l'intero contenuto dell'elemento UserJourney che include
Id="SignUpOrSignIn"
. - Aprire TrustFrameworkExtensions.xml e trovare l'elemento UserJourneys. Se l'elemento non esiste, aggiungerne uno.
- Incollare l'intero contenuto dell'elemento UserJourney copiato come figlio dell'elemento UserJourneys.
- 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.
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 descrittivo.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="ContosoExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-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
- Accedi al portale di Azure.
- Selezionare l'icona Directory e sottoscrizione nella barra degli strumenti del portale e quindi la directory contenente il tenant di Azure AD B2C.
- Nel portale di Azure cercare e selezionare Azure AD B2C.
- In Criteri selezionare Identity Experience Framework.
- 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.xml
SignUpSignIn.xml
.
Testare i criteri personalizzati
- Selezionare i criteri della relying party, 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 Contoso per accedere con l'account Contoso.
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 AD-FS all'applicazione.