Condividi tramite


Esercitazione per la configurazione di TypingDNA con Azure Active Directory B2C

Questa procedura dettagliata descrive come integrare un'app di pagamento online di esempio in Azure Active Directory B2C con l'APP TypingDNA. Usando l'app TypingDNA, i clienti di Azure AD B2C possono rispettare i requisiti delle transazioni di Payment Services Directive 2 (PSD2) tramite la dinamica delle sequenze di tasti e l'autenticazione avanzata dei clienti. Altre informazioni su TypingDNA sono disponibili qui.

Azure AD B2C usa le tecnologie TypingDNA per acquisire le caratteristiche di digitazione degli utenti e registrarle e analizzarle per acquisire familiarità in ogni autenticazione. In questo modo viene aggiunto un livello di protezione correlato alla rischiosità di un'autenticazione e vengono valutati i livelli di rischio. Azure AD B2C può richiamare altri meccanismi per garantire maggiore attendibilità all'utente che dichiara di essere richiamando l'autenticazione a più fattori Di Microsoft Entra, forzando la verifica della posta elettronica o qualsiasi altra logica personalizzata per lo scenario.

Nota

Questo criterio di esempio è basato sul pacchetto iniziale SocialAndLocalAccountsWithMfa .

Descrizione dello scenario

Screenshot del diagramma dell'architettura TypingDNA

Iscriversi

  1. Le pagine di Azure AD B2C usano la libreria JavaScript di TypingDNA per registrare il modello di digitazione dell'utente. Ad esempio, il nome utente e la password vengono registrati all'iscrizione per la registrazione iniziale e quindi a ogni accesso per la verifica.

  2. Quando l'utente invia la pagina, la libreria TypingDNA calcola la caratteristica di digitazione dell'utente. Successivamente, inserire le informazioni in un campo di testo nascosto di cui è stato eseguito il rendering di Azure AD B2C. Questo campo è nascosto con CSS.

    L'esempio contiene file HTML con le modifiche JavaScript e CSS e fa riferimento alle definizioni di api.selfasserted.tdnasignin contenuto e api.selfasserted.tdnasignup . Fare riferimento all'hosting del contenuto della pagina per ospitare i file HTML.

  3. Azure AD B2C ha ora il modello di digitazione all'interno del contenitore di attestazioni quando l'utente invia le proprie credenziali. Deve chiamare un'API (yours) per passare questi dati all'endpoint dell'API REST TypingDNA. Questa API è inclusa nell'esempio (digitandoDNA-API-Interface).This API is included in the sample (typingDNA-API-Interface).

  4. L'API di livello intermedio passa quindi i dati del modello di digitazione all'API REST TypingDNA. Al momento dell'iscrizione, viene chiamato l'endpoint utente di controllo per confermare che l'utente non esiste e quindi viene chiamato l'endpoint del modello di salvataggio per salvare il primo modello di digitazione dell'utente.

Nota

Tutte le chiamate all'endpoint dell'API REST TypingDNA inviano un UserId. Deve essere un valore con hash. Azure AD B2C usa la HashObjectIdWithEmail trasformazione delle attestazioni per eseguire l'hash del messaggio di posta elettronica con un salt e un segreto casuali.

Le chiamate API REST vengono modellate con validationTechnicalProfiles all'interno LocalAccountSignUpWithLogonEmail-TDNAdi :


<ValidationTechnicalProfiles>

    <ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail-TDNA" />
    <ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="true"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser"/>

</ValidationTechnicalProfiles>

Accedi

Al successivo accesso, il modello di digitazione dell'utente viene calcolato nello stesso modo in cui viene eseguito l'iscrizione usando il codice HTML personalizzato. Quando il profilo di digitazione si trova all'interno del contenitore di attestazioni di Azure AD B2C, Azure AD B2C chiamerà l'API per chiamare l'endpoint dell'API REST TypingDNA. Viene chiamato l'endpoint utente di controllo per verificare che l'utente esista. Successivamente, verificare che l'endpoint del modello venga chiamato per restituire .net_score Si tratta net_score di un'indicazione della chiusura del modello di digitazione all'originale al momento dell'iscrizione.

Questo modello di digitazione viene modellato con validationTechnicalProfiles all'interno SelfAsserted-LocalAccountSignin-Email-TDNAdi :


<ValidationTechnicalProfiles>

    <ValidationTechnicalProfile ReferenceId="login-NonInteractive"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="false"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-VerifyUser"/>

    <ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser">

        <Preconditions>

            <Precondition Type="ClaimEquals" ExecuteActionsIf="true">

            <Value>saveTypingPattern</Value>

            <Value>False</Value>

            <Action>SkipThisValidationTechnicalProfile</Action>

            </Precondition>

        </Preconditions>

    </ValidationTechnicalProfile>

</ValidationTechnicalProfiles>

Se l'utente ottiene un criterio di digitazione con un valore elevatonet_score, è possibile salvarlo usando l'endpoint del modello di digitazione TypingDNA.

L'API deve restituire un'attestazione saveTypingPattern se si vuole che l'endpoint del modello di digitazione TypingDNA venga chiamato da Azure AD B2C (tramite l'API).

L'esempio nel repository contiene un'API (TypingDNA-API-Interface) configurata con le proprietà seguenti.

  • Modalità di training: se l'utente ha meno di due modelli salvati, richiedere sempre l'autenticazione a più fattori.

  • Se l'utente ha 2-5 modelli salvati e è inferiore a 50, richiedere l'autenticazione net_score a più fattori.

  • Se l'utente ha 5+ modelli salvati e il valore è inferiore a 65, richiedere l'autenticazione net_score a più fattori.

Queste soglie devono essere modificate in base al caso d'uso.

  • Dopo che l'API net_scoreha valutato , deve restituire un'attestazione booleana a B2C - promptMFA.

  • L'attestazione promptMFA viene usata all'interno di una pre-condizione per eseguire in modo condizionale l'autenticazione a più fattori di Microsoft Entra.


<OrchestrationStep Order="3" Type="ClaimsExchange">

    <Preconditions>

        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">

            <Value>isActiveMFASession</Value>

            <Action>SkipThisOrchestrationStep</Action>

        </Precondition>

        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">

            <Value>promptMFA</Value>

            <Value>False</Value>

            <Action>SkipThisOrchestrationStep</Action>

        </Precondition>

    </Preconditions>

    <ClaimsExchanges>

        <ClaimsExchange Id="PhoneFactor-Verify" TechnicalProfileReferenceId="PhoneFactor-InputOrVerify" />

    </ClaimsExchanges>

</OrchestrationStep>

Eseguire l'onboarding con TypingDNA

  1. Iscriversi a TypingDNA qui
  2. Accedere al dashboard TypingDNA e ottenere la chiave API e il segreto API. Questa operazione sarà necessaria nell'installazione dell'interfaccia API in un secondo momento

Integrare TypingDNA con Azure AD B2C

  1. Ospitare l'interfaccia TypingDNA-API-Interface nel provider di hosting preferito

  2. Sostituire tutte le istanze di apiKey e apiSecret nella soluzione TypingDNA-API-Interface con le credenziali del dashboard TypingDNA

  3. Ospitare i file HTML nel provider scelto seguendo i requisiti CORS qui

  4. Sostituire gli elementi LoadURI per le api.selfasserted.tdnasignup definizioni di contenuto e api.selfasserted.tdnasignin nel TrustFrameworkExtensions.xml file rispettivamente con l'URI dei file HTML ospitati.

  5. Creare una chiave dei criteri B2C nel framework dell'esperienza di gestione delle identità nel pannello Microsoft Entra nel portale di Azure. Usare l'opzione Generate e denominare questa chiave tdnaHashedId.

  6. Sostituire il TenantId nei file dei criteri

  7. Sostituire serviceURLs in tutti i profili tecnici dell'API REST TypingDNA (REST-TDNA-VerifyUser, REST-TDNA-SaveUser, REST-TDNA-CheckUser) con l'endpoint per l'API TypingDNA-API-Interface.

  8. Caricare i file dei criteri nel tenant.

Testare il flusso utente

  1. Aprire il tenant B2C e scegliere Framework dell'esperienza di gestione delle identità.

  2. Selezionare il flusso utente creato in precedenza.

  3. Selezionare Esegui flusso utente

    a. Applicazione : selezionare l'app registrata (l'esempio è JWT)

    b. URL di risposta: selezionare l'URL di reindirizzamento

    c. Seleziona Esegui il flusso utente.

  4. Passare attraverso il flusso di iscrizione e creare un account

  5. Disconnettersi

  6. Passare attraverso il flusso di accesso

  7. Il risultato JWT risultante mostrerà i risultati di TypingDNA

Versione live

• L'autenticazione a più fattori è stata disabilitata in questa versione di test, ma è possibile visualizzare il risultato sul fatto che l'autenticazione a più fattori sia stata richiesta dall'attestazione promptMFA dopo l'autenticazione.

• Iscriversi qui e accedere qui

Passaggi successivi

Per altre informazioni, vedere gli articoli seguenti: