Configurare la sicurezza di trasmissione con Azure Active Directory B2C per l'autenticazione senza password
Questa esercitazione descrive come integrare l'autenticazione B2C di Azure Active Directory (Azure AD B2C) con Transmit Security BindID, una soluzione di autenticazione senza password. BindID usa l'autenticazione biometrica FIDO2 (Fast Identity Online) avanzata per l'autenticazione multicanale affidabile. La soluzione garantisce un'esperienza di accesso uniforme per i clienti tra dispositivi e canali, riducendo la frode, il phishing e il riutilizzo delle credenziali.
Descrizione dello scenario
Il diagramma dell'architettura seguente illustra l'implementazione.
- L'utente apre la pagina di accesso di Azure AD B2C e accede o accede.
- Azure AD B2C reindirizza l'utente a BindID usando una richiesta OIDC (OpenID Connect).
- BindID autentica l'utente usando biometria FIDO2 senza appless, ad esempio l'impronta digitale.
- Viene restituita una risposta di autenticazione decentralizzata a BindID.
- La risposta OIDC passa ad Azure AD B2C.
- L'utente viene concesso o negato l'accesso all'applicazione, in base ai risultati della verifica.
Prerequisiti
Per iniziare, è necessario:
- Sottoscrizione di Microsoft Entra
- Se non ne hai uno, ottieni un account gratuito di Azure
- Un tenant di Azure AD B2C collegato alla sottoscrizione di Azure
- Un tenant BindID
- Passare a transmitsecurity.com per iniziare
- Registrare un'applicazione Web nel portale di Azure
- Criteri personalizzati di Azure AD B2C
- Se non è possibile usare i criteri, vedere Esercitazione: Creare flussi utente e criteri personalizzati in Azure AD B2C
Registrare un'app in BindID
Attività iniziali
- Passare a developer.bindid.io per configurare l'applicazione.
- Aggiungere un'applicazione in BindID Amministrazione Portal. L'accesso è obbligatorio.
Proprietà | Descrizione |
---|---|
Nome | Nome applicazione |
Dominio | Immettere your-B2C-tenant-name.onmicrosoft.com . Sostituire your-B2C-tenant con il tenant di Azure AD B2C. |
URI di reindirizzamento | https://jwt.ms/ |
URL di reindirizzamento | Immettere https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp . Sostituire your-B2C-tenant con il tenant di Azure AD B2C. Per un dominio personalizzato, sostituire your-B2C-tenant-name.b2clogin.com con il dominio personalizzato. |
- Al termine della registrazione, viene visualizzato un ID client e un segreto client .
- Registrare i valori da usare in un secondo momento.
Configurare BindID come provider di identità in Azure AD B2C
Per le istruzioni seguenti, usare la directory con il tenant di Azure AD B2C.
- Accedere al portale di Azure come amministratore globale.
- Nella barra degli strumenti del portale selezionare Directory e sottoscrizioni.
- Nelle impostazioni del portale | Directory + sottoscrizioni , nell'elenco Nome directory trovare la directory B2C di Azure AD.
- Selezionare Commutatore.
- Nell'angolo superiore sinistro della portale di Azure selezionare Tutti i servizi.
- Cercare e selezionare Azure Active Directory B2C.
- Selezionare Provider di identità.
- Selezionare Nuovo provider OpenID Connect.
- Immettere un Nome.
- Per URL metadati immettere
https://signin.bindid-sandbox.io/.well-known/openid-configuration
. - Per ID client immettere l'ID client registrato.
- Per Segreto client immettere il segreto client registrato.
- In Ambito, immettere il
openid email
. - Per Tipo di risposta selezionare codice.
- In Modalità risposta selezionare form_post.
- In Mapping delle attestazioni del provider di identità, per ID utente selezionare
sub
. - Per Email selezionare
email
. - Selezionare Salva.
Creare un flusso utente
- Nel tenant di Azure AD B2C, in Criteri selezionare Flussi utente.
- Selezionare Nuovo flusso utente.
- Selezionare Iscrizione e tipo di flusso utente di accesso.
- Selezionare Crea.
- Immettere un Nome.
- In Provider di identitàselezionare Nessuna per account locali. Questa azione disabilita l'autenticazione basata su posta elettronica e password.
- Per Provider di identità personalizzati selezionare il provider di identità BindID creato, ad esempio Account di accesso con BindID.
- Selezionare Crea.
Testare il flusso utente
- Nel tenant di Azure AD B2C selezionare Flussi utente.
- Selezionare il flusso utente creato, ad esempio B2C_1_signupsignin.
- Per Applicazione selezionare l'applicazione Web registrata.
L'URL di risposta è
https://jwt.ms
. - Selezionare Esegui il flusso utente.
- Il browser viene reindirizzato alla pagina di accesso BindID.
- Immettere il messaggio di posta elettronica dell'account registrato.
- Esegue l'autenticazione usando biometria FIDO2 senza appless, ad esempio l'impronta digitale.
- Il browser viene reindirizzato a
https://jwt.ms
. Il contenuto viene visualizzato per il token restituito da Azure AD B2C.
Creare una chiave dei criteri BindID
Aggiungere il segreto client dell'applicazione BindID come chiave di criterio. Per le istruzioni seguenti, usare la directory con il tenant di Azure AD B2C.
- Accedere al portale di Azure.
- Nella barra degli strumenti del portale selezionare Directory e sottoscrizioni.
- Nelle impostazioni del portale | Directory + sottoscrizioni , nell'elenco Nomi directory individuare la directory di Azure AD B2C.
- Selezionare Commutatore.
- Nella pagina Panoramica, in Criteri selezionare Identity Experience Framework.
- Selezionare Chiavi dei criteri.
- Selezionare Aggiungi.
- Selezionare Manuale in Opzioni.
- Immettere un Nome. Il prefisso
B2C_1A_
aggiunge al nome della chiave. - In Segreto immettere il segreto client registrato.
- Per Uso chiave selezionare Firma.
- Selezionare Create (Crea).
Configurare BindID come provider di identità
Per abilitare l'accesso con BindID, definire BindID come provider di attestazioni con cui Azure AD B2C comunica tramite un endpoint. L'endpoint fornisce attestazioni usate da Azure AD B2C per verificare l'autenticazione di un utente con identità digitale in un dispositivo.
Aggiungere BindID come provider di attestazioni. Per iniziare, ottenere i pacchetti di avvio dei criteri personalizzati da GitHub, quindi aggiornare i file XML nel pacchetto di avvio SocialAndLocalAccounts con il nome del tenant di Azure AD B2C:
Aprire la cartella ZIP active-directory-b2c-custom-policy-starterpack-main.zip o clonare il repository:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
Nei file nella directory LocalAccounts sostituire la stringa
yourtenant
con il nome del tenant di Azure AD B2C.Aprire il file
LocalAccounts/ TrustFrameworkExtensions.xml
.Trovare l'elemento ClaimsProviders. Se non viene visualizzato, aggiungerlo sotto l'elemento radice.
Aggiungere un nuovo ClaimsProvider simile all'esempio seguente:
<ClaimsProvider> <Domain>signin.bindid-sandbox.io</Domain> <DisplayName>BindID</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="BindID-OpenIdConnect"> <DisplayName>BindID</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item> <!-- Update the Client ID below to the BindID Application ID --> <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid email</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> <Item Key="AccessTokenResponseFormat">json</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_BindIDClientSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <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>
Impostare client_id con l'ID applicazione BindID registrato.
Selezionare Salva.
Aggiungere un percorso utente
Il provider di identità non si trova nelle pagine di accesso. Se si dispone di un percorso utente personalizzato, continuare a Aggiungere il provider di identità a un percorso utente; in caso contrario, creare un percorso utente modello duplicato:
- Dal pacchetto iniziale aprire il
LocalAccounts/ TrustFrameworkBase.xml
file. - Trovare e copiare il contenuto dell'elemento UserJourney che include
Id=SignUpOrSignIn
. - Aprire il file
LocalAccounts/ TrustFrameworkExtensions.xml
. - Trovare l'elemento UserJourneys . Se non è presente alcun elemento, aggiungerne uno.
- Incollare l'elemento UserJourney come elemento figlio dell'elemento UserJourneys.
- Rinominare l'ID percorso utente.
Aggiungere il provider di identità a un percorso utente
Aggiungere il nuovo provider di identità al percorso utente.
- 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 include un elenco di provider di identità con cui gli utenti accedono. L'ordine degli elementi controlla l'ordine dei pulsanti di accesso. - Aggiungere un elemento XML ClaimsProviderSelection .
- Impostare il valore di TargetClaimsExchangeId su un nome descrittivo.
- Aggiungere un elemento ClaimsExchange .
- Impostare l'ID sul valore dell'ID dello scambio di attestazioni di destinazione. Questa azione collega il pulsante BindID a
BindID-SignIn
. - Aggiornare il valore TechnicalProfileReferenceId all'ID profilo tecnico creato.
Il codice XML seguente illustra il percorso utente di orchestrazione con il provider di identità.
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
Configurare i criteri della relying party
I criteri della relying party, ad esempio SignUpOrSignIn.xml, specificano il percorso utente eseguito da Azure AD B2C. È possibile controllare le attestazioni passate all'applicazione modificando l'elemento OutputClaims dell'elemento PolicyProfile TechnicalProfile. In questa esercitazione l'applicazione riceve gli attributi utente, ad esempio nome visualizzato, nome, cognome, posta elettronica, objectId, provider di identità e tenantId.
Vedere Azure-Samples/active-directory-b2c-custom-policy-starterpack
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
<TechnicalProfile Id="BindID-OpenIdConnect">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Caricare il criterio personalizzati
- Accedere al portale di Azure.
- Nella barra degli strumenti del portale selezionare Directory e sottoscrizioni.
- Nelle impostazioni del portale | Pagina Directory e sottoscrizioni , nell'elenco Nome directory individuare la directory di Azure AD B2C.
- Selezionare Cambia.
- Nel portale di Azure cercare e selezionare Azure AD B2C.
- In Criteri selezionare Identity Experience Framework.
- Selezionare Carica criteri personalizzati.
- Caricare i file nello starter pack LocalAccounts nell'ordine seguente:
- Criteri di base, ad esempio
TrustFrameworkBase.xml
- Criteri di localizzazione, ad esempio
TrustFrameworkLocalization.xml
- Criteri di estensione, ad esempio
TrustFrameworkExtensions.xml
- Criteri relying party, ad esempio
SignUpOrSignIn.xml
Testare i criteri personalizzati
Per le istruzioni seguenti, usare la directory con il tenant di Azure AD B2C.
- Nel tenant di Azure AD B2C e in Criteri selezionare Identity Experience Framework.
- In Criteri personalizzati selezionare B2C_1A_signup_signin.
- In Applicazione selezionare l'applicazione Web registrata.
L'URL di risposta è
https://jwt.ms
. - Selezionare Esegui adesso.
- Il browser viene reindirizzato alla pagina di accesso bindID.
- Immettere il messaggio di posta elettronica dell'account registrato.
- Eseguire l'autenticazione usando la biometria FIDO2 senza appless, ad esempio l'impronta digitale.
- Il browser viene reindirizzato a
https://jwt.ms
. Vengono visualizzati i contenuti del token restituiti da Azure AD B2C.
Passaggi successivi
Per altre informazioni, vedere gli articoli seguenti: