チュートリアル:Azure Active Directory B2C を使用した Microsoft Dynamics 365 Fraud Protection の構成
組織で Microsoft Dynamics 365 Fraud Protection (DFP) を使用して、不正なアカウントとサインインの作成が試みられたときのリスクを評価できます。お客様は、Microsoft DFP の評価を使用して、新しい偽のアカウントを作成したり、アカウントを侵害したりする疑わしい試みをブロックまたはチャレンジ処理します。
このチュートリアルでは、Microsoft DFP と Azure Active Directory B2C (Azure AD B2C) を統合する方法について説明します。 Microsoft DFP デバイスのフィンガープリントとアカウントの作成およびサインイン評価 API エンドポイントを Azure AD B2C のカスタム ポリシーに組み込む方法に関するガイダンスが記載されています。
詳細については、「Microsoft Dynamics 365 Fraud Protection の概要」を参照してください。
前提条件
作業を開始するには、以下が必要です。
- Azure サブスクリプション
- お持ちでない場合は、Azure 無料アカウントを取得できます
- お使いの Azure サブスクリプションにリンクされている Azure AD B2C テナント
- Microsoft DFP サブスクリプション
- Dynamics 365 の価格を参照してください
- 評価版クライアント バージョンを設定できます
シナリオの説明
Microsoft DFP 統合には次のコンポーネントが含まれます。
- Azure AD B2C テナント: ユーザーを認証し、Microsoft DFP のクライアントとして機能します。 ターゲット ポリシーを実行するユーザーの識別データと診断データを収集する、フィンガープリント スクリプトをホストします。 Microsoft DFP によって返されるルール評価結果に基づいて、サインインまたはサインアップの試行をブロックまたはチャレンジします。
- カスタム UI テンプレート: Azure AD B2C によってレンダリングされるページの HTML コンテンツをカスタマイズします。 これらのページには、Microsoft DFP フィンガープリントに必要な JavaScript スニペットが含まれています。
- Microsoft DFP フィンガープリント サービス: 動的に埋め込まれたスクリプトです。デバイスのテレメトリとセルフアサート ユーザーの詳細をログに記録して、一意に識別できるフィンガープリントをユーザー用に作成します。
- Microsoft DFP API エンドポイント: 決定結果を提供し、クライアント アプリケーションによって実行される操作を反映した、最終的な状態を受け入れます。 Azure AD B2C は、REST API コネクタを使用して Microsoft DFP エンドポイントと通信します。 Microsoft DFP がライセンス付与され、インストールされている Microsoft Entra テナントへの client_credentials 許可を使用して API 認証が発生し、ベアラー トークンが取得されます。
次のアーキテクチャの図に、この実装を示します。
- ユーザーがサインイン ページに到達し、新しいアカウントを作成するためのオプションを選択して、情報を入力します。 Azure AD B2C でユーザー属性が収集されます。
- Azure AD B2C で Microsoft DFP API が呼び出され、ユーザー属性が渡されます。
- Microsoft DFP API でその情報が使用され、処理された後に、Azure AD B2C に結果が返されます。
- Azure AD B2C が、Microsoft DFP API から情報を受信します。 失敗すると、エラー メッセージが表示されます。 成功すると、ユーザーは認証され、ディレクトリに書き込まれます。
ソリューションのセットアップ
- Azure AD B2C へのフェデレーションを可能にするように構成された、Facebook アプリケーションを作成します。
- 作成した Facebook シークレットを Identity Experience Framework ポリシー キーとして追加します。
Microsoft DFP でのアプリケーションの構成
Microsoft DFP を使用するように Microsoft Entra テナントを設定します。
自分のカスタム ドメインを設定する
運用環境では、カスタム ドメインを Azure AD B2C と Microsoft DFP フィンガープリント サービスに使用します。 ブラウザーのプライバシー設定がドメイン間の Cookie をブロックしないようにするために、両方のサービスのドメインは同じルート DNS ゾーンに存在します。 この構成は、非運用環境では必要ありません。
環境、サービス、ドメインの例については、次の表を参照してください。
環境 | サービス | Domain |
---|---|---|
開発 | Azure AD B2C | contoso-dev.b2clogin.com |
開発 | Microsoft DFP フィンガープリント | fpt.dfp.microsoft-int.com |
UAT | Azure AD B2C | contoso-uat.b2clogin.com |
UAT | Microsoft DFP フィンガープリント | fpt.dfp.microsoft.com |
Production | Azure AD B2C | login.contoso.com |
Production | Microsoft DFP フィンガープリント | fpt.login.contoso.com |
UI テンプレートをデプロイする
- 提供された Azure AD B2C UI テンプレートを、Azure Blob Storage のように公開されたインターネット ホスティング サービスにデプロイします。
-
https://<YOUR-UI-BASE-URL>/
の値をデプロイ場所のルート URL に置き換えます。
注意
後で Azure AD B2C ポリシーを構成するためにベース URL が必要になります。
-
ui-templates/js/dfp.js
ファイルで、<YOUR-DFP-INSTANCE-ID>
を Microsoft DFP インスタンス ID に置き換えます。 - CORS が Azure AD B2C ドメイン名
https://{your_tenant_name}.b2clogin.com
またはyour custom domain
で有効になっていることを確認します。
詳細については、UI のカスタマイズに関するドキュメントを参照してください。
Azure AD B2C の構成
Microsoft DFP クライアント アプリ ID とシークレットのポリシー キーを追加する
- Microsoft DFP がセットアップされている Microsoft Entra テナントで、Microsoft Entra アプリケーションを作成して管理者の同意を付与します。
- このアプリケーション登録のシークレット値を作成します。 アプリケーション クライアント ID とクライアント シークレットの値をメモします。
- クライアント ID とクライアント シークレットの値を Azure AD B2C テナント 内のポリシー キーとして保存 します。
注意
ポリシー キーは、後で Azure AD B2C ポリシーを構成するために必要になります。
構成値を置き換える
提供されたカスタム ポリシー内にある次のプレースホルダーを見つけて、ご自分のインスタンスの対応する値に置き換えます。
プレースホルダー | 置換後の文字列 | ノート |
---|---|---|
{Settings:Production} | ポリシーを実稼働モードでデプロイするかどうか |
true または false |
{Settings:Tenant} | テナントの短い名前 |
your-tenant - your-tenant.onmicrosoft.com より |
{Settings:DeploymentMode} | 使用する Application Insights デプロイ モード |
Production または Development |
{Settings:DeveloperMode} | ポリシーを Application Insights 開発者モードでデプロイするかどうか |
true または false |
{Settings:AppInsightsInstrumentationKey} | Application Insights インスタンスのインストルメンテーション キー* | 01234567-89ab-cdef-0123-456789abcdef |
{Settings:IdentityExperienceFrameworkAppId}Azure AD B2C テナントに構成されている IdentityExperienceFramework アプリのアプリ ID | 01234567-89ab-cdef-0123-456789abcdef |
|
{Settings:ProxyIdentityExperienceFrameworkAppId} | Azure AD B2C テナントに構成されている ProxyIdentityExperienceFramework アプリのアプリ ID | 01234567-89ab-cdef-0123-456789abcdef |
{Settings:FacebookClientId} | B2C とのフェデレーション用に構成した Facebook アプリのアプリ ID | 000000000000000 |
{Settings:FacebookClientSecretKeyContainer} | Facebook のアプリ シークレットを保存したポリシー キーの名前 | B2C_1A_FacebookAppSecret |
{Settings:ContentDefinitionBaseUri} | UI ファイルをデプロイしたエンドポイント | https://<my-storage-account>.blob.core.windows.net/<my-storage-container> |
{Settings:DfpApiBaseUrl} | DFP ポータルにある、DFP API インスタンスのベース パス | https://tenantname-01234567-89ab-cdef-0123-456789abcdef.api.dfp.dynamics.com/v1.0/ |
{Settings:DfpApiAuthScope} | DFP API サービスの client_credentials スコープ | https://api.dfp.dynamics-int.com/.default or https://api.dfp.dynamics.com/.default |
{Settings:DfpTenantId} | DFP のライセンス付与とインストールがされている Microsoft Entra テナント (B2C でない) の ID |
01234567-89ab-cdef-0123-456789abcdef または consoto.onmicrosoft.com |
{Settings:DfpAppClientIdKeyContainer} | DFP クライアント ID を保存するポリシー キーの名前 | B2C_1A_DFPClientId |
{Settings:DfpAppClientSecretKeyContainer} | DFP クライアント シークレットを保存するポリシー キーの名前 | B2C_1A_DFPClientSecret |
{Settings:DfpEnvironment} | DFP 環境の ID。 | 環境 ID は、データの送信先である DFP 環境のグローバル一意識別子です。 カスタム ポリシーでは、クエリ文字列パラメーター x-ms-dfpenvid=your-env-id> を含めて API エンドポイントを呼び出す必要があります。 |
*Microsoft Entra テナントまたはサブスクリプションでアプリケーションの分析情報を設定できます。 この値は省略可能ですが、デバッグに役立つためお勧めします。
注意
属性コレクション ページに同意通知を追加します。 アカウント保護のためにユーザー テレメトリと ID 情報が記録されるという通知を含めてください。
Azure AD B2C ポリシーを構成する
- ポリシー フォルダーの Azure AD B2C ポリシーに移動します。
- カスタム ポリシー スターター パックの手順に従って、LocalAccounts スターター パックをダウンロードします。
- Azure AD B2C テナントのポリシーを構成します。
注意
提供されているポリシーを更新して、お使いのテナントに関連付けてください。
ユーザー フローをテストする
- Azure AD B2C テナントを開き、[ポリシー] の下にある [Identity Experience Framework] を選択します。
- 以前に作成した SignUpSignIn を選択します。
- [ユーザー フローを実行します] を選択します。
- アプリケーション: 登録済みのアプリ (例: JWT)。
- 応答 URL: リダイレクト URL。
- [ユーザー フローを実行します] を選択します。
- サインアップ フローを完了して、アカウントを作成します。
ヒント
Microsoft DFP はフロー中に呼び出されます。 フローが不完全な場合は、ユーザーがディレクトリに保存されていないことを確認してください。
注意
Microsoft DFP ルール エンジンを使用する場合は、Microsoft DFP ポータルでルールを更新してください。