次の方法で共有


デバイスフィンガープリントの Web セットアップ

デバイスフィンガープリントの設定は、2 つのフェーズで行われます。

  1. ドメイン ネーム サーバー (DNS) Secure Sockets Layer (SSL) 証明書を構成し、不正アクセス防止ポータルにアップロードします。
  2. デバイスのフィンガープリントを実装します。

このセクションでは、これらの両方のフェーズの詳細な手順について説明します。 最初のフェーズは 1 回だけ完了する必要があります。 ただし、デバイスのフィンガープリントが実装されている Web サイトまたはモバイル アプリごとに、2 番目のフェーズを 1 回繰り返す必要があります。

DNS を設定して SSL 証明書を生成する

DNS を設定し、SSL 証明書を生成するには、次の手順を実行します。 DNS と SSL のセットアップは省略可能ですが、最適なフィンガープリントカバレッジとパフォーマンスを確保するために強くお勧めします。 DNS と SSL のセットアップでは、フィンガープリント スクリプトをサード パーティの Cookie ではなく、ファースト パーティ統合と見なすことができます。

DNS を設定する

DNS を設定するには、次の手順に従います。

  1. ルート ドメインの下にあるサブドメイン ( fpt.contoso.comなど) を選択します。 任意のプレフィックスを使用できます。
  2. 選択したサブドメインに対して、 fpt.dfp.microsoft.comを指す正規名 (CNAME) を作成します。

SSL 証明書を生成してアップロードする

SSL 証明書を生成してアップロードするには、次の手順に従います。

  1. バックエンドオンボードの場合は、選択したサブドメインの SSL 証明書を生成します。 1 つの SSL 証明書を作成し、 Certificate のサブジェクトの別名 フィールドにすべてのサブドメインを追加できます。
  2. Fraud Protection ポータルに移動し左側のナビゲーション ウィンドウで Integration を選択します。
  3. [ Integration ページで Edit を選択し、次のページで Next を選択して、ssl 証明書の アップロード ページを開きます。
  4. 証明書の選択を選択し、生成した SSL 証明書をアップロードします。 証明書にパスワードがある場合は、テキスト ボックスに入力します。 [アップロード]を選択します。

SSL 証明書を検証する

SSL 証明書が正常にデプロイされたことを確認するには、2 つの方法があります。

  • [https:///health/ping] に移動し、証明書の有効性 確認します

OR

  • [https://www.sslshopper.com/ssl-checker.html" に移動します。 サーバーのホスト名を入力 SSL の確認を選択し、ページに表示される SSL 証明書の情報を確認します。

Note

.pfx ファイルのみがサポートされています。 デバイスフィンガープリント サーバーへの証明書の伝達には数分かかる場合があります。

デバイス フィンガープリンティングを実装する

Web サイトまたはアプリケーションは、リスク評価のためにトランザクションが Fraud Protection に送信される数秒前にデバイスフィンガープリント要求を開始する必要があります (支払い方法の追加、サインイン、チェックアウトのトランザクションなど)。 この要件により、不正アクセス防止は、正確な評価を行うために必要なすべてのデータを確実に受け取ります。 このセクションでは、Web サイトとモバイル アプリにデバイスフィンガープリントを実装する方法について詳しく説明します。

デバイスのフィンガープリントを実装するには、次の手順に従います。

  1. 次の JavaScript スクリプト コードを変更し、Web ページまたはデバイスフィンガープリント情報を収集するアプリケーションに挿入します。

    <script src="https://<Your_Sub_Domain>/mdt.js?session_id=<session_id>&instanceId=<instance_id>" type="text/javascript"></script>
    
    • Your_Sub_Domain – ルート ドメインのサブドメイン。
    • session_id – クライアントによって作成されたデバイスの一意のセッション識別子。 最大 128 文字まで指定でき、大文字と小文字のローマ文字、数字、アンダースコア文字、ハイフン (a ~ z、A ~ Z、0 ~ 9、_、-) のみを含めることができます。 セッション ID には、少なくとも 16 バイトのランダムに生成されたデータが含まれている必要があります。 16 進エンコードを使用すると、32 桁の 16 進文字に変換されます。 Microsoft では、セッション ID にグローバル一意識別子 (GUID) を使用することをお勧めしますが、必須ではありません。
    • instance_id – Web サイトをデバイスフィンガープリントと統合するために必要な値です。 Fraud Protection ポータルの対応する環境の Integration ページの Current environment タイルに一覧表示されている Device フィンガープリント ID 値を使用します。

    <script src="https://fpt.contoso.com/mdt.js?session_id=211d403b-2e65-480c-a231-fd1626c2560e&instanceId=b472dbc3-0928-4577-a589-b80090117691" type="text/javascript"></script>
    

    mdt.jsの応答の例を次に示します。

    window.dfp={url:"https://fpt.contoso.com/?session_id=211d403b-2e65-480c-a231-fd1626c2560e&CustomerId=b472dbc3-0928-4577-a589-b80090117691",sessionId:"211d403b-2e65-480c-a231-fd1626c2560e",customerId:"b472dbc3-0928-4577-a589-b80090117691",dc:"uswest"};window.dfp.doFpt=function(doc){var frm,src;true&&(frm=doc.createElement("IFRAME"),frm.id="fpt_frame",frm.style.width="1px",frm.style.height="1px",frm.style.position="absolute",frm.style.visibility="hidden",frm.style.left="10px",frm.style.bottom="0px",frm.setAttribute("style","color:#000000;float:left;visibility:hidden;position:absolute;top:-100;left:-200;border:0px"),src="https://Your_Sub_Domain/?session_id=211d403b-2e65-480c-a231-fd1626c2560e&CustomerId=b472dbc3-0928-4577-a589-b80090117691",frm.setAttribute("src",src),doc.body.appendChild(frm))};
    
  2. ページの要素が読み込まれた後、デバイスのフィンガープリントを読み込みます。

    window.dfp.doFpt(this.document);
    
  3. Fraud Protection API でトランザクションを送信する場合は、 deviceContextId フィールドにセッション ID を設定します。 評価の場合は、 deviceFingerprinting.id フィールドにセッション ID を設定します。

  4. device.ipAddress フィールドを、顧客がサイトを使用するときに Web サイトが受け取る顧客 IP アドレスに設定します。 評価の場合は、 deviceFingerprinting.ipAddress フィールドに顧客の IP アドレスを設定します。 このフィールドは省略可能であり、持っていない場合は設定する必要はありません。

デバイスフィンガープリントのクライアント側統合を有効にする

特定の Web フィンガープリント シナリオでは、Fraud Protection は、 client 側統合と呼ばれる特殊な統合クラスをサポートします。 フィンガープリント応答は暗号化されたペイロードとしてクライアントに直接返され、サーバー間の評価呼び出しがスキップされるため、クライアント側の統合は標準の統合プラクティスとは異なります。

クライアント側の統合は、サーバー間の呼び出しをスキップすると便利な待機時間の短いシナリオに役立ちます。 クライアント側の統合がシナリオに適しているかどうかを判断するには、次の質問ガイドを参照してください。

  1. 自分のシナリオのデバイスのフィンガープリントのみですか?

    シナリオがデバイスフィンガープリントのみの場合、クライアント側の統合はシナリオに適していません。

  2. サーバーがデータをフェッチするのではなく、指紋データをブラウザに表示しますか?

    従来のサーバー間統合では、Web サイトで属性の収集が完了すると、データが Fraud Protection のサーバーにプッシュされ、標準の評価 API 呼び出しを行ってサーバーで評価応答を取得できます。 ただし、クライアント側の統合では、属性収集データが Fraud Protection のサーバーにプッシュされると、評価応答が返され、ブラウザーで直接返されます。 これにより、サーバーはサーバー間の呼び出しを行う代わりに、ブラウザー自体から評価応答を抽出できるため、時間を節約できます。 フィンガープリント自体には数秒かかるため、評価応答は、ユーザーが数秒間ページに表示されている場合にのみブラウザーに表示されることに注意してください。 ブラウザーに既に存在するデータからシナリオのメリットがある場合は、クライアント側の統合が適している可能性があります。

一般に、ほとんどのフィンガープリント シナリオは標準のサーバー間統合によって解決され、クライアント側の統合は、待機時間の減少が重要ないくつかの特定のシナリオに役立ちます。 クライアント側の統合は簡略化され、セキュリティで保護された特殊な統合クラスであるため、これを有効にするには次の前提条件を満たす必要があります。

次のコードは、JWKS 形式の例を示しています。

{
  "keys":
  [
    {
      "kty":null,
      "use":null,
      "kid":null,
      "k":null
    }
  ]
}
  • デバイスフィンガープリント評価テンプレートのメタデータとデバイスフィンガープリントセクションのみを使用する必要があります。 追加のスキーマ セクションがある場合、またはデバイスフィンガープリント評価テンプレートを使用していない場合は、クライアント側統合オプションを使用できません。

デバイスフィンガープリント テンプレートの評価ウィザードの Settings ページに到達すると、クライアント側統合オプションを使用できます。 クライアント側の統合を有効にすることを選択した後、設定した JWKS 応答形式で外部呼び出しを選択します。

クライアント側統合のセットアップを完了するには、ブラウザーで暗号化された応答を返すには、次の JavaScript の例の変更されたバージョンを使用する必要があります。

<script src="https://<Your_Sub_Domain>/mdt.js?session_id=<session_id>&customerId=<customer_id>&assessment=<assessment>&requestId=<request_id>" type="text/javascript"></script>
  • Your_Sub_Domain – ルート ドメインのサブドメイン。
  • session_id – クライアントによって作成されたデバイスの一意のセッション識別子。 最大 128 文字の長さにすることができ、大文字と小文字のローマ文字、数字、アンダースコア文字、ハイフン (a ~ z、A ~ Z、0 ~ 9、_、-) のみを含めることができます。 セッション ID には、少なくとも 16 バイトのランダムに生成されたデータが含まれている必要があります。 16 進エンコードを使用すると、32 桁の 16 進文字に変換されます。 Microsoft では、セッション ID にグローバル一意識別子 (GUID) を使用することをお勧めしますが、必須ではありません。
  • customer_id – Web サイトをデバイスフィンガープリントと統合するために必要な値です。 Fraud Protection ポータルの対応する環境の Integration ページの Current environment タイルに一覧表示されている Environment ID 値を使用します。 クライアント側の統合を機能させるには、ルート環境に存在する必要があります。
  • assessment – クライアント側統合を有効にして設定されたデバイスフィンガープリント評価の API 名。 API 名では大文字と小文字が区別され、評価構成ページから取得されます。
  • request_id – セッション ID とは別に、要求自体の一意の識別子。 この識別子は、長さが 32 文字以上の GUID である必要があります。

次の例は、JavaScript コードと値の例を示しています。

<script src="https://fpt.contoso.com/mdt.js?session_id=2b2a1f5e-afa7-4c6d-a905-ebf66eaedc83&customerId=b3f6d54b-961c-4193-95ee-b6b204c7fd23&assessment=CSI&requestId=b12e86a0-37b1-43a2-958b-3f04fe7cef6c" type="text/javascript"></script>

このスクリプトが設定され、クライアント側の統合が有効になると、フィンガープリント応答はクライアントのブラウザーで暗号化されたペイロードとして返されます。 コールバック関数を使用して、暗号化された応答ペイロードを取得できます。 次の例は、使用中のコールバック関数を示しています。

window.dfp.doFpt(document, function (response) {
    if(response == null || response.startsWith('ServerError'))
        console.log("Error Scenario");
    else
        console.log("Success Scenario"); // pass to server so it can decrypt and use response
});

ペイロードをサーバーに渡して復号化し、応答を使用する必要があります。 ペイロードの暗号化を解除するためにホストする暗号化キーを取得するために、外部呼び出しを呼び出す必要はありません。 サーバーで使用されている他のシークレットを取得して管理するのと同じ安全な方法でキーを格納し、アクセスする必要があります。

その他のリソース