裝置指紋的 Web 設定
裝置指紋的設定會在兩個階段中完成。
- 設定功能變數名稱伺服器 (DNS) 安全套接字層 (SSL) 憑證,並將其上傳至詐騙保護入口網站。
- 實作裝置指紋。
本節提供這兩個階段的詳細指示。 第一個階段只需要完成一次。 不過,對於實作裝置指紋的每個網站或行動應用程式,都必須重複第二個階段一次。
設定 DNS 併產生 SSL 憑證
完成下列程式來設定 DNS 併產生 SSL 憑證。 強烈建議您選擇 DNS 和 SSL 設定,以確保最佳的指紋涵蓋範圍和效能。 DNS 和 SSL 設定可讓指紋腳本視為第一方整合,而不是第三方 Cookie。
設定 DNS
若要設定 DNS,請遵循下列步驟。
- 選取根域下的子域,例如
fpt.contoso.com
。 可以使用任何前置詞。 - 針對選取的子域,建立指向
fpt.dfp.microsoft.com
的正式名稱 (CNAME)。
產生並上傳 SSL 憑證
若要產生並上傳 SSL 憑證,請遵循下列步驟。
- 針對後端上線,產生所選子域的SSL憑證。 您可以建立一個 SSL 憑證,並在 [憑證的主體別名] 字段中新增所有子域。
- 移至 [詐騙保護] 入口網站,然後在左側瀏覽窗格中選取 [ 整合]。
- 在 [ 整合 ] 頁面上,選取 [編輯],然後在下一個頁面上,選取 [下一步 ] 以開啟 [上傳 SSL 憑證 ] 頁面。
- 選取 [ 選取憑證],然後上傳您產生的 SSL 憑證。 如果您的憑證有密碼,請在文字框中輸入密碼。 然後選取 [上傳]。
驗證 SSL 憑證
有兩種方式可以驗證 SSL 憑證已成功部署。
- 移至 [https:///health/ping],並 檢查憑證的有效性。
OR
- 移至 “https://www.sslshopper.com/ssl-checker.html"。 輸入伺服器主機名,選取 [ 檢查 SSL],然後檢閱頁面上顯示的 SSL 憑證資訊。
注意
僅支援 .pfx 檔案。 將憑證傳播到裝置指紋伺服器可能需要幾分鐘的時間。
實作裝置指紋
您的網站或應用程式必須在交易傳送至詐騙保護前幾秒鐘起始裝置指紋要求,以進行風險評估(例如新增付款方式、登入或結帳的交易)。 這項需求可確保詐騙保護會接收進行準確評估所需的所有數據。 本節提供在網站和行動裝置應用程式上實作裝置指紋的詳細指示。
若要實作裝置指紋,請遵循下列步驟。
修改下列 JavaScript 腳本程式代碼,並在您要收集裝置指紋資訊的網頁上或應用程式中插入它。
<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、_、-)。 會話標識碼應該至少包含16個字節的隨機產生數據。 使用十六進位編碼時,這會轉譯為32個十六進位字元。 雖然Microsoft建議您將全域唯一標識碼 (GUID) 用於會話標識碼,但並非必要。
- instance_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))};
載入頁面元素之後載入裝置指紋。
window.dfp.doFpt(this.document);
當您在 Fraud Protection API 中提交交易時,請在 deviceContextId 字段中設定會話識別碼。 針對 [評定],請在 [deviceFingerprinting.id] 字段中設定會話標識符。
將 device.ipAddress 字段設定為客戶使用您的網站時網站收到的客戶 IP 位址。 針對 [評定],請在 [deviceFingerprinting.ipAddress] 字段中設定客戶 IP 位址。 此欄位是選擇性的,如果您沒有字段,則不需要設定。
啟用裝置指紋的用戶端整合
針對特定的 Web 指紋案例,Fraud Protection 支援稱為用戶端整合的特殊整合類別。 用戶端整合與標準整合做法不同,因為指紋回應會以加密承載的形式直接傳回給用戶端,而略過伺服器對伺服器評量呼叫。
用戶端整合對於略過伺服器對伺服器呼叫的低延遲案例很有用。 若要判斷用戶端整合是否適合您的案例,請流覽下列問題指南。
我的案例裝置指紋是否僅限?
如果您的案例不是裝置指紋,則用戶端整合不適合您的案例。
我是否希望我的指紋數據位於瀏覽器中,而不是我的伺服器擷取?
在傳統的伺服器對伺服器整合中,一旦網站屬性集合完成,數據就會推送至 Fraud Protection 的伺服器,您可以在其中透過進行標準評定 API 呼叫,在您的伺服器上取得評定回應。 不過,在用戶端整合中,當屬性集合數據推送至 Fraud Protection 的伺服器時,評估回應會傳回,並直接在瀏覽器中傳回。 如此一來,您的伺服器就可以從瀏覽器本身擷取評量回應,而不是進行伺服器對伺服器呼叫,省下一些時間。 請記住,指紋本身需要幾秒鐘的時間,因此,如果用戶在頁面上幾秒鐘,評估回應才會出現在瀏覽器中。 如果您的案例受益於瀏覽器中已有的數據,則用戶端整合可能適合您。
一般而言,大部分的指紋案例都是由標準伺服器對伺服器整合所解決,而用戶端整合對於一些特定案例而言,延遲降低非常重要。 由於用戶端整合是簡化且安全的特製化整合類別,因此必須符合下列必要條件才能啟用。
- 您必須位於詐騙保護租使用者的根環境中。
- 您必須設定外部呼叫,以 JSON Web 金鑰集 (JWKS) 格式傳回加密金鑰回應。 此外部呼叫會傳回 Fraud Protection 用來加密承載的密鑰。 您之後可以使用此金鑰來解密您最初收到用戶端的 Fraud Protection 回應伺服器端。 您必須負責提供加密和解密的金鑰。 如需設定外部呼叫的相關信息,請參閱 外部呼叫。
下列程式代碼顯示 JWKS 格式的範例。
{
"keys":
[
{
"kty":null,
"use":null,
"kid":null,
"k":null
}
]
}
- 您只能使用裝置指紋評估範本的元數據和裝置指紋區段。 如果有其他架構區段,或您未使用裝置指紋評估範本,用戶端整合選項將無法使用。
當您到達 裝置指紋範本評定精靈的 [設定 ] 頁面時,您可以使用用戶端整合選項。 選擇啟用用戶端整合之後,您將選取具有您所設定 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、_、-)。 會話標識碼必須至少包含16個字節的隨機產生數據。 使用十六進位編碼時,這會轉譯為32個十六進位字元。 雖然Microsoft建議您將全域唯一標識碼 (GUID) 用於會話標識碼,但並非必要。
- customer_id – 整合您的網站與裝置指紋所需的值。 使用 [詐騙保護] 入口網站中對應環境的 [整合] 頁面的 [目前環境] 圖格上所列的環境標識符值。 您必須在根環境中,用戶端整合才能運作。
- assessment – 啟用用戶端整合所設定之裝置指紋評定的 API 名稱。 API 名稱會區分大小寫,並從評定組態頁面提取。
- request_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
});
您仍然需要將承載傳遞至伺服器來解密,並使用回應。 我們不希望您呼叫外部呼叫,以取得您裝載用來解密承載的加密密鑰。 您應該以與取得和管理伺服器上所使用的其他秘密相同的安全方式來儲存和存取密鑰。
其他資源
- 裝置指紋概觀
- 裝置指紋中的屬性
- 設定及實作裝置指紋
- 訓練: 在Dynamics 365詐騙保護中實作裝置指紋。