重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
このチュートリアルでは、Azure Active Directory B2C のサンプル オンライン決済アプリを TypingDNA アプリと統合する方法について説明します。 Azure AD B2C をお使いのお客様は、TypingDNA アプリを使用すると、キーストローク ダイナミクスと強力な顧客認証を介して、決済サービス指令 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.tdnasigninおよびapi.selfasserted.tdnasignupのコンテンツ定義から参照されます。 HTML ファイルをホストするには、「ページ コンテンツのホスト」を参照してください。Azure AD B2C では、ユーザーが資格情報を送信したときに、要求バッグ内に入力パターンが含まれるようになりました。 このデータを TypingDNA REST API エンドポイントに渡すには、(ご自分の) API を呼び出す必要があります。 この API はサンプル (typingDNA-API-Interface) に含まれています。
次に、中間層 API から入力パターン データが TypingDNA REST API に渡されます。 サインアップ時に、check user endpoint が呼び出されてユーザーが存在しないことが確認され、次に save pattern エンドポイントが呼び出されてユーザーの最初の入力パターンが保存されます。
注
TypingDNA REST API エンドポイントへのすべての呼び出しでは、UserId が送信されます。 これは常にハッシュ値です。 Azure AD B2C では、HashObjectIdWithEmail 要求変換が使用され、ランダムなソルトとシークレットを使ってメールがハッシュされます。
REST API の呼び出しは validationTechnicalProfiles 内の LocalAccountSignUpWithLogonEmail-TDNA でモデル化されています。
<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 から、TypingDNA の REST API エンドポイントを呼び出す API が呼び出されます。
check user エンドポイントが呼び出され、ユーザーが存在することが確認されます。 次に、verify pattern エンドポイントが呼び出され、net_score が返されます。 この net_score は、サインアップ時に入力パターンが元とどれだけ近いかを示しています。
この入力パターンは、validationTechnicalProfiles 内の SelfAsserted-LocalAccountSignin-Email-TDNA でモデル化されています。
<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 の save typing pattern エンドポイントを使用してこれを保存できます。
TypingDNA の save typing pattern エンドポイントを Azure AD B2C から (API 経由で) 呼び出す場合は、お客様の API から要求 saveTypingPattern を返す必要があります。
リポジトリの例には、次のプロパティで構成された API (TypingDNA-API-Interface) が含まれています。
トレーニング モード - ユーザーが保存したパターンが 2 つ未満の場合は、常に 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 にサインアップします
- TypingDNA ダッシュボードにログインし、API キーと API シークレットを取得します。 これは、後で API インターフェイスの設定で必要になります
TypingDNA を Azure AD B2C と統合する
選択したホスティング プロバイダーで TypingDNA-API-Interface をホストする
apiKeyソリューションのapiSecretおよび のすべてのインスタンスを TypingDNA ダッシュボードの資格情報に置き換えますここの CORS の要件に従って、選択したプロバイダーで HTML ファイルをホストします
api.selfasserted.tdnasignupファイルのapi.selfasserted.tdnasigninおよびTrustFrameworkExtensions.xmlコンテンツ定義の LoadURI 要素を、ホストされている HTML ファイルの URI にそれぞれ置き換えます。Azure portal の Microsoft Entra ブレードの ID エクスペリエンス フレームワークの下に B2C ポリシー キーを作成します。
Generateオプションを使用して、このキーにtdnaHashedIdという名前を付けます。ポリシー ファイルの TenantId を置き換えます
すべての TypingDNA REST API 技術プロファイル (REST-TDNA-VerifyUser、REST-TDNA-SaveUser、REST-TDNA-CheckUser) の ServiceURL を TypingDNA-API-Interface API のエンドポイントに置き換えます。
ポリシー ファイルをテナントにアップロードします。
ユーザー フローをテストする
B2C テナントを開き、ID エクスペリエンス フレームワークを選択します。
以前に作成したユーザー フローを選択します。
[ユーザー フローを実行します] を選択します。
ある。 [アプリケーション] : 登録済みのアプリを選択します (サンプルは JWT)
b。 [応答 URL] : リダイレクト URL を選択します
c. [ユーザー フローを実行します] を選択します。
サインアップ フローを実行し、アカウントを作成します
サインアウトする
サインイン フローを実行します
結果の JWT 結果には、TypingDNA の結果が表示されます
ライブ バージョン
• このテスト バージョンでは MFA が無効になっていますが、認証後に要求 promptMFA によって MFA のプロンプトが表示されたかどうかの結果を確認できます。
• サインアップはこちら、サインインはこちらを使用してください
次のステップ
追加情報については、次の記事を参照してください。