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
Iscriversi
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.
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 eapi.selfasserted.tdnasignup
. Fare riferimento all'hosting del contenuto della pagina per ospitare i file HTML.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).
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-TDNA
di :
<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-TDNA
di :
<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_score
ha 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
- Iscriversi a TypingDNA qui
- 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
Ospitare l'interfaccia TypingDNA-API-Interface nel provider di hosting preferito
Sostituire tutte le istanze di
apiKey
eapiSecret
nella soluzione TypingDNA-API-Interface con le credenziali del dashboard TypingDNAOspitare i file HTML nel provider scelto seguendo i requisiti CORS qui
Sostituire gli elementi LoadURI per le
api.selfasserted.tdnasignup
definizioni di contenuto eapi.selfasserted.tdnasignin
nelTrustFrameworkExtensions.xml
file rispettivamente con l'URI dei file HTML ospitati.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 chiavetdnaHashedId
.Sostituire il TenantId nei file dei criteri
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.
Caricare i file dei criteri nel tenant.
Testare il flusso utente
Aprire il tenant B2C e scegliere Framework dell'esperienza di gestione delle identità.
Selezionare il flusso utente creato in precedenza.
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.
Passare attraverso il flusso di iscrizione e creare un account
Disconnettersi
Passare attraverso il flusso di accesso
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: