使用 Azure Active Directory B2C 設定 TypingDNA 的教學課程
在本逐步解說中,瞭解如何在 Azure Active Directory B2C 中整合範例在線付款應用程式與 TypingDNA APP。 藉由使用 TypingDNA 應用程式,Azure AD B2C 客戶可以透過擊鍵動態和強式客戶驗證,符合 付款服務指示詞 2 (PSD2) 交易需求。 在這裡尋找有關 TypingDNA 的詳細資訊。
Azure AD B2C 會使用 TypingDNA 的技術來擷取使用者輸入特性,並讓用戶記錄和分析每個驗證的熟悉度。 這會新增與驗證風險相關的保護層,並評估風險層級。 Azure AD B2C 可以叫用其他機制,以進一步信賴用戶聲稱自己是誰,方法是叫用 Microsoft Entra 多重要素驗證、強制電子郵件驗證,或任何其他您案例的自定義邏輯。
注意
此原則範例是以 SocialAndLocalAccountsWithMfa 入門套件為基礎。
案例描述
註冊
Azure AD B2C 頁面會使用 TypingDNA 的 JavaScript 連結庫來記錄使用者的輸入模式。 例如,在註冊初始註冊時會記錄使用者名稱和密碼,然後在每次登入時進行驗證。
當使用者提交頁面時,TypingDNA 連結庫會計算使用者的輸入特性。 之後,請將資訊插入 Azure AD B2C 轉譯的隱藏文字欄位中。 此欄位是使用 CSS 隱藏的。
此範例包含具有 JavaScript 和 CSS 修改的 HTML 檔案,並由和
api.selfasserted.tdnasignup
內容定義參考api.selfasserted.tdnasignin
。 請參閱 裝載頁面內容 來裝載您的 HTML 檔案。當使用者提交其認證時,Azure AD B2C 現在在宣告包內具有輸入模式。 它必須呼叫 API(您的),才能將此數據傳遞至 TypingDNA REST API 端點。 此 API 包含在範例中(輸入DNA-API-Interface)。
仲介層 API 接著會將輸入模式數據傳遞至 TypingDNA REST API。 在註冊時 ,會呼叫檢查用戶端端點 以確認使用者不存在,然後 呼叫儲存模式 端點來儲存使用者的第一個輸入模式。
注意
所有對 TypingDNA REST API 端點的呼叫都會傳送 UserId。 這必須是哈希值。 Azure AD B2C 會 HashObjectIdWithEmail
使用宣告轉換,以隨機鹽和秘密哈希電子郵件。
REST API 呼叫會在 內LocalAccountSignUpWithLogonEmail-TDNA
使用 validationTechnicalProfiles
模型化:
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail-TDNA" />
<ValidationTechnicalProfile ReferenceId="REST-TDNA-CheckUser" ContinueOnError="true"/>
<ValidationTechnicalProfile ReferenceId="REST-TDNA-SaveUser"/>
</ValidationTechnicalProfiles>
登入
在後續登入時,用戶的輸入模式會以與使用 自定義 HTML 註冊時相同的方式計算。 輸入配置檔位於 Azure AD B2C 宣告包內之後,Azure AD B2C 會呼叫您的 API 來呼叫 TypingDNA REST API 端點。 呼叫 檢查用戶端 端點以確認使用者是否存在。 接下來, 確認呼叫模式 端點以傳回 net_score
。 這 net_score
表示在註冊時,輸入模式與原始模式有多接近。
此輸入模式是以 在 內SelfAsserted-LocalAccountSignin-Email-TDNA
建立模型validationTechnicalProfiles
化:
<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>
如果使用者取得具有高 net_score
的輸入模式,您可以使用 TypingDNA 儲存類型模式 端點來儲存此類型。
如果您想要 Azure AD B2C (透過 API)呼叫輸入模式端點,您的 API 必須傳回宣告 saveTypingPattern
。
存放庫中的範例包含使用下列屬性設定的 API(TypingDNA-API-Interface)。
定型模式 - 如果使用者儲存的模式少於兩個,請一律提示 MFA。
如果使用者已儲存 2-5 模式,且
net_score
低於 50,則提示輸入 MFA。如果使用者已儲存 5 個以上的模式,且
net_score
低於 65,則提示輸入 MFA。
您的使用案例應該調整這些閾值。
在 API 評估
net_score
之後,它應該會傳回布爾宣告給 B2C -promptMFA
。宣告
promptMFA
會在條件前條件內用來有條件地執行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>
使用 TypingDNA 上線
整合 TypingDNA 與 Azure AD B2C
以來自您的 TypingDNA 儀錶板的
apiKey
認證取代 TypingDNA-API-Interface 解決方案中 和apiSecret
的所有實例遵循這裡的 CORS 需求 ,在您選擇的提供者裝載 HTML 檔案
將檔案中
TrustFrameworkExtensions.xml
和api.selfasserted.tdnasignin
內容定義的 LoadURI 元素api.selfasserted.tdnasignup
分別取代為您託管 HTML 檔案的 URI。在 Azure 入口網站 的 [Microsoft Entra] 刀鋒視窗中,於身分識別體驗架構下建立 B2C 原則密鑰。
Generate
使用 選項,並將這個機碼tdnaHashedId
命名為 。取代原則檔案中的TenantId
將所有 TypingDNA REST API 技術配置檔中的 ServiceURLs(REST-TDNA-VerifyUser、REST-TDNA-SaveUser、REST-TDNA-CheckUser)取代為您的 TypingDNA-API-Interface API 端點。
將原則檔案上傳至您的租使用者。
測試使用者流程
開啟 B2C 租使用者,然後選擇身分識別體驗架構。
選取您先前建立 的使用者流程。
選取 [ 執行 使用者流程]
a. 應用程式 - 選取已註冊的應用程式(範例為 JWT)
b. 回復 URL - 選取重新導向 URL
c. 選取執行使用者流程。
完成註冊流程並建立帳戶
登出
流覽登入流程
產生的 JWT 結果會顯示 TypingDNA 結果
Live 版本
• 此測試版本中已停用 MFA,但您可以在驗證之後看到宣告 promptMFA
是否提示 MFA 的結果。
• 在這裡註冊並在這裡登入
下一步
如需其他資訊,請檢閱下列文章: