Condividi tramite


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.

Diagramma dell'architettura BindID e Azure AD B2C.

  1. L'utente apre la pagina di accesso di Azure AD B2C e accede o accede.
  2. Azure AD B2C reindirizza l'utente a BindID usando una richiesta OIDC (OpenID Connect).
  3. BindID autentica l'utente usando biometria FIDO2 senza appless, ad esempio l'impronta digitale.
  4. Viene restituita una risposta di autenticazione decentralizzata a BindID.
  5. La risposta OIDC passa ad Azure AD B2C.
  6. L'utente viene concesso o negato l'accesso all'applicazione, in base ai risultati della verifica.

Prerequisiti

Per iniziare, è necessario:

Registrare un'app in BindID

Attività iniziali

  1. Passare a developer.bindid.io per configurare l'applicazione.
  2. 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.
  1. Al termine della registrazione, viene visualizzato un ID client e un segreto client .
  2. 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.

  1. Accedere al portale di Azure come amministratore globale.
  2. Nella barra degli strumenti del portale selezionare Directory e sottoscrizioni.
  3. Nelle impostazioni del portale | Directory + sottoscrizioni , nell'elenco Nome directory trovare la directory B2C di Azure AD.
  4. Selezionare Commutatore.
  5. Nell'angolo superiore sinistro della portale di Azure selezionare Tutti i servizi.
  6. Cercare e selezionare Azure Active Directory B2C.
  7. Selezionare Provider di identità.
  8. Selezionare Nuovo provider OpenID Connect.
  9. Immettere un Nome.
  10. Per URL metadati immettere https://signin.bindid-sandbox.io/.well-known/openid-configuration.
  11. Per ID client immettere l'ID client registrato.
  12. Per Segreto client immettere il segreto client registrato.
  13. In Ambito, immettere il openid email.
  14. Per Tipo di risposta selezionare codice.
  15. In Modalità risposta selezionare form_post.
  16. In Mapping delle attestazioni del provider di identità, per ID utente selezionare sub.
  17. Per Email selezionare email.
  18. Selezionare Salva.

Creare un flusso utente

  1. Nel tenant di Azure AD B2C, in Criteri selezionare Flussi utente.
  2. Selezionare Nuovo flusso utente.
  3. Selezionare Iscrizione e tipo di flusso utente di accesso.
  4. Selezionare Crea.
  5. Immettere un Nome.
  6. In Provider di identitàselezionare Nessuna per account locali. Questa azione disabilita l'autenticazione basata su posta elettronica e password.
  7. Per Provider di identità personalizzati selezionare il provider di identità BindID creato, ad esempio Account di accesso con BindID.
  8. Selezionare Crea.

Testare il flusso utente

  1. Nel tenant di Azure AD B2C selezionare Flussi utente.
  2. Selezionare il flusso utente creato, ad esempio B2C_1_signupsignin.
  3. Per Applicazione selezionare l'applicazione Web registrata. L'URL di risposta è https://jwt.ms.
  4. Selezionare Esegui il flusso utente.
  5. Il browser viene reindirizzato alla pagina di accesso BindID.
  6. Immettere il messaggio di posta elettronica dell'account registrato.
  7. Esegue l'autenticazione usando biometria FIDO2 senza appless, ad esempio l'impronta digitale.
  8. 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.

  1. Accedere al portale di Azure.
  2. Nella barra degli strumenti del portale selezionare Directory e sottoscrizioni.
  3. Nelle impostazioni del portale | Directory + sottoscrizioni , nell'elenco Nomi directory individuare la directory di Azure AD B2C.
  4. Selezionare Commutatore.
  5. Nella pagina Panoramica, in Criteri selezionare Identity Experience Framework.
  6. Selezionare Chiavi dei criteri.
  7. Selezionare Aggiungi.
  8. Selezionare Manuale in Opzioni.
  9. Immettere un Nome. Il prefisso B2C_1A_ aggiunge al nome della chiave.
  10. In Segreto immettere il segreto client registrato.
  11. Per Uso chiave selezionare Firma.
  12. 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:

  1. 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
    
  2. Nei file nella directory LocalAccounts sostituire la stringa yourtenant con il nome del tenant di Azure AD B2C.

  3. Aprire il file LocalAccounts/ TrustFrameworkExtensions.xml.

  4. Trovare l'elemento ClaimsProviders. Se non viene visualizzato, aggiungerlo sotto l'elemento radice.

  5. 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>    
    
  6. Impostare client_id con l'ID applicazione BindID registrato.

  7. 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:

  1. Dal pacchetto iniziale aprire il LocalAccounts/ TrustFrameworkBase.xml file.
  2. Trovare e copiare il contenuto dell'elemento UserJourney che include Id=SignUpOrSignIn.
  3. Aprire il file LocalAccounts/ TrustFrameworkExtensions.xml.
  4. Trovare l'elemento UserJourneys . Se non è presente alcun elemento, aggiungerne uno.
  5. Incollare l'elemento UserJourney come elemento figlio dell'elemento UserJourneys.
  6. Rinominare l'ID percorso utente.

Aggiungere il provider di identità a un percorso utente

Aggiungere il nuovo provider di identità al percorso utente.

  1. Trovare l'elemento del passaggio di orchestrazione che include Type=CombinedSignInAndSignUpo Type=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.
  2. Aggiungere un elemento XML ClaimsProviderSelection .
  3. Impostare il valore di TargetClaimsExchangeId su un nome descrittivo.
  4. Aggiungere un elemento ClaimsExchange .
  5. Impostare l'ID sul valore dell'ID dello scambio di attestazioni di destinazione. Questa azione collega il pulsante BindID a BindID-SignIn.
  6. 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

  1. Accedere al portale di Azure.
  2. Nella barra degli strumenti del portale selezionare Directory e sottoscrizioni.
  3. Nelle impostazioni del portale | Pagina Directory e sottoscrizioni , nell'elenco Nome directory individuare la directory di Azure AD B2C.
  4. Selezionare Cambia.
  5. Nel portale di Azure cercare e selezionare Azure AD B2C.
  6. In Criteri selezionare Identity Experience Framework.
  7. Selezionare Carica criteri personalizzati.
  8. 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.

  1. Nel tenant di Azure AD B2C e in Criteri selezionare Identity Experience Framework.
  2. In Criteri personalizzati selezionare B2C_1A_signup_signin.
  3. In Applicazione selezionare l'applicazione Web registrata. L'URL di risposta è https://jwt.ms.
  4. Selezionare Esegui adesso.
  5. Il browser viene reindirizzato alla pagina di accesso bindID.
  6. Immettere il messaggio di posta elettronica dell'account registrato.
  7. Eseguire l'autenticazione usando la biometria FIDO2 senza appless, ad esempio l'impronta digitale.
  8. 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: