管理規則
Microsoft Dynamics 365 Fraud Protection 可讓您彈性地建立規則,以使用詐騙保護最先進的人工智慧 (AI) 模型所產生的分數,以及來自要求承載的其他參數。 根據這些輸入,規則可以將評量轉換成決策,例如核准、拒絕、檢閱或挑戰。
如果您的詐騙保護實例有多個環境,您可以使用環境切換器來管理特定環境中的規則。 如果環境有父環境,則會先評估最上層父環境中的規則。 如果最上層父環境的規則設定設為 [執行所有比對規則],直到做出決策為止,則會在下一次評估第二層父環境中的規則。 除非環境的規則設定設為 [只執行第一個相符規則],或直到評估父環境的所有規則和目前環境為止,否則此程式會繼續執行。
定義規則:快速入門指南
規則是由 子句所組成,由 RETURN 和 WHEN 關鍵詞定義。 它們具有下列基本結構。
RETURN <decision>
WHEN <condition>
只有在 WHEN 語句評估為 True 時,才會執行 RETURN 語句。 RETURN 語句會終止規則執行,而且必須指定有效的決策函式: 核准、 拒絕、 挑戰或 檢閱。 每個決策函式也會接受選擇性參數,讓您表達 決策的原因 。 若要深入瞭解,請參閱 決策函式。
除了決策之外,RETURN 語句也可用來將數據寫入 API 回應或事件追蹤。 若要深入瞭解,請參閱 觀察函式。
WHEN 語句會指定布爾條件,以判斷 RETURN 語句是否執行。
WHEN 語句可以使用下列任何專案:
- 在 API 要求中傳送給評定的任何屬性,包括自定義數據。 您可以使用 @ 運算符來存取這些屬性。 例如: @"user.userId" 。
- 從詐騙保護人工智慧模型產生的分數。 例如: @"riskscore" 。
- 您已上傳至詐騙保護的清單。 如需如何上傳清單的詳細資訊,請參閱 管理清單。 如需在規則中參考這些清單的詳細資訊,請參閱 在規則中使用清單。
- 您在詐騙保護中定義的速度。 如需詳細資訊,請參閱 執行速度檢查。
- 您已在詐騙保護中建立的外部呼叫。 如需詳細資訊,請參閱 外部呼叫。
- 您在詐騙保護中建立的函式。 如需詳細資訊,請參閱函式。
您可以使用比較運算符來比較表達式(例如 ==、!=、>、 <、),而且可以使用 和 (&&) 和 或 (||) 等邏輯運算符來結合。
如需規則語法的詳細資訊,請參閱 語言參考指南。
可視化檢視
使用可視化模式快速且輕鬆地使用來自要求承載的屬性來撰寫規則。
- 若要建立視覺規則,請選取 [+ 新增子句]。
- 選取 子句名稱旁的 [可視化檢視 ]。
- 您可以將多個篩選新增至 子句,並從下拉功能表中選擇屬性。
- 切換回程式 代碼檢視 ,以檢視和編輯詐騙查詢語言中的規則。 在程式代碼檢視中編輯規則之後,您無法返回 [可視化檢視]。
下圖顯示 規則的 [可視化檢視 ] 和 [程序代碼 檢視] 按鈕,您可以選取以變更檢視。
下圖顯示 規則的程式代碼檢視 和 您可以選取的 [可視化 檢視] 按鈕來變更檢視。
規則範例
RETURN Reject("high score")
WHEN @"riskScore" > 900
RETURN Review("medium score")
WHEN @"riskScore" <= 900 and @"riskScore" > 400
RETURN Approve(), Other(ip=@"device.ipAddress")
WHEN @"user.countryRegion" == "US"
RETURN Reject("user on block list")
WHEN ContainsKey("Email Block List", "Emails", @"user.email")
RETURN Review()
WHEN @"user.email".EndsWith(“@contoso.com”)
[規則] 索引標籤
您可以在 [ 規則 ] 索引標籤上建立自訂規則及管理現有的規則。
- 若要建立和管理與購買相關的規則,請選取 [購買],然後選取 [ 規則] 索引卷標。
- 若要建立和管理與帳戶相關的規則,請選取 [帳戶建立] 或 [帳戶登入],然後選取 [規則] 索引標籤。
- 若要建立和管理與自定義評定相關的規則,請選取 [自定義評定]、選取自定義評定,然後選取 [ 規則 ] 索引卷標。
[規則] 索引標籤會顯示針對評量類型所設定的規則清單。 這些規則分為兩個區段: 已發佈的規則 和 草稿。 如需草稿的相關信息,請參閱 本文稍後的草稿 一節。
您可以檢視每個規則或草稿的下列資訊:
- 名稱
- 您所建立的條件
- 狀態:作用中或非使用中
您也可以選取每個規則的圖格來展開它,並顯示其他資訊。 以下列出一些範例:
- 描述
- 規則中的子句數目
- 神秘 上次更新規則
- 上次更新規則的時間
注意
在 [ 規則] 索引標籤上,已發佈的規則會依執行的順序列出。
規則設定
您可以在 [規則] 索引標籤上存取特定評量的規則設定。 您可以在該處變更規則評估行為和範例承載。 這些變更僅適用於您正在編輯的評量規則。
規則評估行為
您可以更新規則的評估方式。 如果您選取 [ 執行第一個比對規則],則每個交易只會評估一個規則。 如果該規則未傳回決策,則不會評估任何進一步的規則,並傳回核准的默認決策。 如果您選取 [ 執行所有比對規則],直到做出決策為止,就可以針對單一交易評估多個規則。 如果評估的第一個規則不會傳回決策,則會評估每個後續比對規則,直到傳回決策為止。
範例承載
在 [ 承載設定 ] 窗格中,您可以定義評量類型的範例承載。 範例承載的目的是要包含在要求 API 中傳送的評估字段範例,並可用於您的規則。
在 API 要求中,您可以選擇不要從評量架構傳送選擇性欄位。 或者,您可以選擇傳送其他自定義欄位。 在這兩種情況下,請務必更新 [承載設定] 窗格中顯示的承載範例,使其反映您要傳送的特定字段。
每次為評量建立新規則時,都會顯示此承載範例(請參閱本文稍後的 承載範例一 節)。 您所做的任何變更僅適用於您從該時間開始建立的規則。
若要復原您或其他人員對承載範例所做的所有變更,並將它傳回系統的預設承載範例,請選取 [ 還原]。
規則的元件
規則包含下列元件:
- 描述規則用途的名稱和描述
- 規則的目前 狀態 : 使用 中或 非使用中
- 欄位 範例 ,可協助您撰寫和評估規則
- 可協助您建置邏輯的元件,可自動核准、拒絕、挑戰或檢閱事件:
已發佈的規則也可以有 草稿版本。
名稱和描述
當您建立規則時,您可以新增名稱和描述,以協助您自己和小組輕鬆識別規則。 規則名稱必須是唯一的,而且不區分大小寫。
狀態
當您第一次建立規則時,狀態只會設定為 [草稿] 才會發佈。
當您發佈規則時,您可以將狀態設定為 [作用中] 或 [非作用中]。
- 如果規則為作用中,它會影響實時生產流量,而且會根據規則評估所有事件。
- 如果規則處於非使用中狀態,則不會影響生產流量。
當您編輯先前發佈的規則時,規則會根據已發行規則的狀態儲存為 [使用中] 或 [使用草稿] 或 [使用草稿] 的狀態。
範例
當您建立或編輯規則時,[ 範例 ] 窗格會出現在頁面右側。 此窗格有兩個區段:一個用於 承載範例 ,另一個用於 分數範例。
若要檢視規則中使用的範例變數,請選取 [ 顯示已使用的變數]。
承載範例
承載範例包含可在要求 API 中傳送評估的欄位範例,如 [承載設定] 窗格中所定義。 這些欄位可作為規則中的變數。
評分範例
分數範例包含詐騙保護 AI 模型所產生的分數。 您可以在執行相關聯的 AI 模型併產生分數之後,參考規則中的分數變數。 例如,您可以在執行 Bot 評估之後使用 @“botScore”,並在執行風險評估之後使用 @“riskScore”。 如需詳細資訊,請參閱 本文稍後的子句 一節。
編輯範例
若要確認規則適用於各種事件,您可以視需要編輯範例,然後 根據規則評估 範例數據。 可以編輯承載範例和分數範例中的所有值。 當您編輯範例時,變更不會影響您傳送的數據(或未傳送)至詐騙保護。
當您發佈規則時,對範例所做的任何變更都會儲存並保存為規則的一部分。
若要復原您對範例所做的所有變更,請選取 [ 還原]。 分數範例會還原為系統的預設分數範例,而承載範例會還原為 [承載設定] 窗格中的使用者定義承載範例。
條件
條件會以關鍵詞 WHEN 開頭,後面接著布爾表達式,將語句評估為 True 或 False。 您可以建立條件來判斷要評估的規則,以及將相關的商業規則分組。 例如,下列條件與數位產品交易相關。
WHEN @"productList.type" == "Digital"
然後,您可以建立子句,以設定與數位產品交易相關的詐騙策略。
將條件新增至規則是選擇性的。 如果您想要將規則套用至所有事件,請勿新增條件。 如需如何使用條件來排序規則的詳細資訊,請參閱 本文稍後的規則排序 一節。
子句
子句包含與條件中所定義流量區段相關的詐騙邏輯和商務原則。 子句會使用事件承載中的值,以及 Fraud Protection 的 AI 分數來接受、拒絕、檢閱或挑戰事件。 每個規則必須至少包含一個子句,而且每個唯一名稱都會指派給每個子句。 您可以選取名稱來自定義它。
子句具有下列基本結構。
RETURN <decision>
WHEN <condition is true>
您可以使用這個結構來建立子句,以傳回核准、拒絕、挑戰或檢閱的決定。 然後,您可以新增選擇性參數,以傳送有關決策的詳細資訊。
WHEN 關鍵詞之後的所有專案都必須能夠評估為 True 或 False。 這個布爾表達式可以包含事件承載、使用者定義清單和 AI 型 Bot 和風險分數的值。
如需 子句語法的相關信息,請參閱 語言參考指南。
觸發子句時(也就是 WHEN 語句傳回 True 時),會傳回 RETURN 語句中指定的決策,而且不會執行任何後續子句。
如果條件符合決策,但未觸發子句,則會執行規則。
RETURN Approve("NO_CLAUSE_HIT")
子句會依出現在 [ 規則 ] 索引卷標上的順序循序執行。您可以使用 子句右側的箭號按鈕來變更其在清單中的位置。
子句會組織成區段。 AI 模型會根據這些區段執行,並在評量中產生分數。 區段會根據評量而有所不同,並指出子句相對於 AI 模型執行時機。
- 針對購買保護,會執行 AI 風險模型來產生交易的風險分數。 因此,這些規則同時包含所有評分子句和風險後評分子句。
- 針對帳戶保護,除了風險模型之外,也會執行 Bot 模型。 這些模型分別會產生 Bot 分數和風險分數。 因此,這些規則包含所有評分子句、Bot 評分後子句和風險後評分子句。
- 針對自定義評定,不會執行任何 AI 模型,而且這些規則只包含所有評分子句。
- 使用 評定精靈 建立的評量沒有評分前和評分後子句的概念。 相反地,所有子句都會根據規則中所列的順序,循序執行(由上至下)。
所有評分前子句
在執行詐騙保護的 AI 模型之前,會先執行所有評分子句。 因此,它們會在產生任何 Bot 或風險評估分數之前執行。 這些子句可以使用作為事件承載一部分且包含在 清單中的任何字段組合。 它們可以設定為實作禁運、地理柵欄或其他商務原則。
下列範例可協助您檢閱使用者在地理位置以外市場購買產品時的購買。
RETURN Review("location inconsistency")
WHEN Geo.MarketCode(@"device.ipAddress") != "@productList.market"
在本節中,您也可以將 子句寫入跨參考清單。 例如,如果您有名為 Risky Email 的自定義清單,則下列子句會在使用者的電子郵件地址出現在清單中時拒絕事件。
RETURN Reject ("risky email")
WHEN ContainsKey ("Risky Emails", "Emails", @"user.email")
如需用來參考規則中列表的語法相關信息,請參閱 語言參考指南。
Bot 評分後子句
在詐騙保護的 AI 模型產生事件的 Bot 分數之後,就會執行 Bot 評分子句。 此分數代表 Bot 起始事件的機率。 這是介於 0 到 999 之間的數位。 較高的分數表示 Bot 機率較高。
在 Bot 評分後子句中,您可以將此分數與承載和清單的欄位搭配使用,以做出決策。 您可以使用 @botScore 變數來參考此分數。 例如,下列子句會拒絕來自 Bot 分數超過 700 的特定電子郵件網域的事件。
RETURN Reject()
WHEN @"user.email".EndsWith("@contoso.com") && @"botScore" > 700
風險後評分子句
在詐騙保護的 AI 模型產生事件的風險評估分數之後,就會執行風險評分子句。 此分數是介於 0 到 999 之間的數位。 較高的分數表示感知的風險較高。
在風險後評分子句中,您可以將此分數與承載和清單的欄位搭配使用,以做出決策。 您可以使用 @riskScore 變數來參考此分數。 例如,下列子句會拒絕風險分數超過 700 的昂貴交易。
RETURN Reject("high price and risk score")
WHEN @purchasePrice >= 199.99 && @riskScore > 700
草稿
規則可以同時 有已發佈 的版本和 草稿 版本。 這兩個版本都可以在 [ 規則 ] 索引標籤上以並存索引標籤的形式檢視。
已發佈的版本是只讀的,任何人都可以檢視。 草稿版本只能顯示給其作者。 可以編輯草稿,而且所有變更都會自動儲存。
- 若要捨棄草稿,請選取 [ 捨棄]。
- 若要發佈您的草稿,請選取 [ 發佈]。
當您發佈草稿時,Fraud Protection 會以草稿版本覆寫已發行的規則版本。
規則排序
[規則] 索引標籤會顯示針對評量設定的已發佈規則清單。 規則列出的順序會影響其評估的順序。 若要重新排序規則,只要將規則拖曳至其所需的位置,然後選取 [ 儲存]。
系統會根據每個規則條件評估事件,直到條件傳 回 True 為止。 然後會評估所選規則中的每個子句。 如果其中一個子句傳回決策,則不會評估任何進一步的規則。 如果這些子句都沒有傳回決策,則交易預設會核准,或評估具有相符條件的下一個已發佈規則。 行為取決於 規則設定中所選取的規則評估行為 。
建立新的規則
您可以建立與購買、帳戶建立和帳戶登入事件相關的決策規則。
重要
根據預設,當發佈新規則時,它會出現在 [規則] 索引卷標的 [已發佈規則] 區段清單底部。如需如何重新定位規則的詳細資訊,請參閱本文稍後的變更規則順序一節。
在 [ 規則] 索引標籤上,選取 [ 新增規則]。
系統會建立新的草稿規則。 您對草稿所做的所有變更都會自動儲存。
選取 [ 重新命名],然後輸入名稱和描述。
將 條件 新增至您的規則。
新增 子句 來表達您的商務原則和詐騙策略。
- 若要從頭開始建立新的子句,請選取 適當子句區段中的 [新增子句 ]。
- 您也可以從現有的子句範本開始,方法是選取 New 子句右邊的 箭號。 若要檢視範本及其內容的完整清單,請選取 [ 全部查看]。
若要評估您的規則,並確定它如預期般運作,請選取 [規則] 索引標籤右下角的 [展開],以開啟規則評估窗格。
若要發佈規則,請選取 [ 發佈]。 在確認對話框中,變更名稱、描述和狀態,然後選取 [ 發佈]。
將 狀態 設定為 [ 使用 中] 或 [非使用中]。
若要在 [規則] 索引標籤的清單中重新定位規則,請選取規則,將其拖曳至其新位置,然後選取 [儲存順序]。
系統定義的 (預設) 規則
詐騙保護可能會為每個環境建立規則。 例如,可能會建立下列默認規則。
- 默認支持規則
某些詐騙保護功能依賴默認規則。 將電子郵件、IP 位址或其他已知清單內容新增至支援清單(安全、監看或拒絕),此預設規則可確保在評估期間檢查清單。
您可以編輯、刪除和停用系統定義的規則。 最佳做法是,除非您想要變更預設行為,否則請考慮建立或編輯不同的規則。
評定 (預設) 規則
評定精靈的 [選取範本] 步驟中所述的每個評量範本都會預先定義下列其中一個或兩個默認規則:
- 範例範本規則 – 此規則包含一系列範例子句,這些子句可作為建置組塊,以根據風險分數、Bot 分數和裝置屬性等值,在適用的情況下定義自己的邏輯來進行決策。 這些子句預設不會做出決策,不過可以使用提供的範例來快速變更這些子句。
- 支援清單規則 – 此規則包含一系列子句,這些子句使用詐騙保護的支援清單(安全、封鎖、監看),以協助您根據這些清單中的實體做出明智的決策(接受、拒絕、檢閱)。
在適用的情況下,這些默認規則會在建立評定之後立即顯示為作用中。 下表摘要說明評估範本所支援的預設規則:
範本 | 範本規則 | 支援清單規則 |
---|---|---|
卡片付款 | 支援 | 支援 |
裝置指紋 | 支援 | N/A |
忠誠度計畫 | 支援 | 支援 |
轉帳 | 支援 | 支援 |
軟體盜版 | 支援 | 支援 |
自訂 | N/A | 支援 |
其他規則和子句可以手動新增至其根和子環境中的評量。
若要從規則內叫用詐騙保護的風險和 Bot 分數,以取得使用其中一個範本建立的評量,必須使用下列 模型函 式:
- 風險分數:Model.Risk()。得分
- Bot 分數:Model.Bot(@“deviceFingerprinting.id”)。得分
分支
分支可讓您安全地修改規則,而不會影響生產環境中發生的情況。 您可以在 [ 規則] 索引標籤上建立分支,其中每個分支代表規則集合。 默認分支是 Production 分支,這是每當流量傳送至評量時所執行之規則的分支。
建立分支
若要建立新的分支,請移至 [ 分支] 動作 > [建立新的分支]。 您可以命名分支、提供 API 名稱,然後選取要從來源分支複製哪些規則。 來源分支是您選取 [ 建立新分支]、[生產] 或其他專案時所開啟的任何分支。 在分支建立期間不會保留草稿。
修改分支內的規則
非生產分支的任何規則變更都不會影響生產規則堆疊。 您可以正常編輯規則,並將其發佈至分支,讓可存取規則頁面的每個人都可以看到這些規則。
測試和實驗
有兩種方式可以測試分支規則行為:將流量直接傳送至分支,並遮蔽生產流量。
將流量直接傳送至分支
您可以使用分支動作>分支資訊下找到的分支 API 端點,將測試流量直接傳送至評量中的特定分支。 此 API 端點會使用與評量相同的承載結構,並執行分支的規則堆疊。
注意
將流量直接傳送至分支不會影響生產環境,因此速度不會更新,而且在搜尋中看不到分支交易。
陰影生產流量
您也可以藉由遮蔽生產流量來測試分支規則行為。 若要遮蔽生產流量,請選取 [ 執行實驗] 來設定並啟動分支的實驗。 實驗進行后,您可以切換至實驗執行位置的分支,在 [監視] 索引卷標上檢視其效能。 一旦實驗進行中,就無法編輯其參數,但您一律可以停止實驗進行變更,然後再次啟動。 在付款服務提供者 (PSP) 瀏覽檢視上,[ 分支動作 ] 下拉功能表只會顯示在規則頁面上,而不是在監視頁面上。
注意
在分支規則堆疊上執行的陰影式流量不會影響生產環境,因此速度不會因為陰影而更新兩次,但只會因為生產執行而更新一次。
將分支升階至生產環境
如果您想要將分支設為生產分支,您可以藉由將分支升階至生產環境來執行此動作。 您可以在 「分支動作>升階至生產」底下找到升級動作。 此動作會讓您正在升級新生產分支的最新分支。 您可以在新的分支中複製現有的生產規則,以儲存它們以供參考。 如果選取要複製的選項,則會保留草稿。 升級完成後,生產分支會更新為包含升級分支的規則。
注意
第一次將分支升階至生產環境以進行指定的評定時,您就無法在新的分支中複製現有的生產規則。 如果您想要在第一次升級時儲存現有的生產規則,請使用這些規則從生產環境建立新的分支,以保留現有的生產規則。
管理現有的規則
在 [ 規則] 索引標籤上,您可以在現有規則上執行下列作業:
更新規則的名稱和描述
若要更新規則的名稱和描述,請選取規則、選取 [重新命名],然後輸入唯一的名稱和描述。
變更規則的狀態
若要變更規則的狀態,請選取規則,然後選取 [啟用] 或 [停用]。
刪除規則
若要刪除規則,請加以選取,然後選取 [ 刪除]。 此作業無法復原。
編輯現有的規則
當您編輯已發佈的規則時,詐騙保護會將您的變更儲存為草稿,直到發佈變更為止。 所選規則和草稿版本的發行版本都可以並存索引標籤來檢視。 在草稿發佈之前,只有建立草稿的人才能看到它。 如需詳細資訊,請參閱 本文稍早的草稿 一節。
選取規則,然後選取 [ 編輯]。
[草稿] 索引標籤和 [已發佈] 索引卷標隨即出現。
選取 [草稿] 索引卷標,然後對規則進行變更。
詐騙保護會自動儲存您對規則所做的所有變更。
若要捨棄變更,請選取 [ 捨棄]。 詐騙保護會刪除草稿,但會保留原始發佈的規則。
若要發佈變更,請選取 [ 發佈]。
當您發佈草稿時,Fraud Protection 會以您在草稿版本中所做的變更覆寫規則的原始已發佈版本。
如果小組成員在仍在編輯規則時更新併發佈規則,您的變更可能已過期。 在此情況下,您會收到警告訊息,詢問您是否仍要發佈變更。
- 如果您選取 [ 發佈],您的變更會覆寫先前所做的所有變更。
- 如果您選取 [ 取消],您可以檢閱其他人在發佈版本之前所做的變更。
搜尋規則
當您搜尋規則時,會搜尋所有規則名稱和描述,並據以篩選結果。
若要搜尋規則,請在 [搜尋] 欄位中輸入關鍵字。
若要移除篩選,請從 [搜尋 ] 字段刪除 關鍵詞,或選取 字段右側的 X 。
變更規則的順序
由於已發佈的規則會依執行順序出現在 [規則] 索引標籤上,所以已發行規則的位置會大幅影響事件評估的方式。
重新排列已發佈的規則
- 選取您要移動的已發佈規則,並將它拖曳至新位置。
- 針對您想要移動的每個規則重複步驟 1,然後選取 [ 儲存]。
- 若要取消變更,請選取 [ 取消]。
注意
無法重新排序草稿區段中的規則。
評估規則
發佈新規則之前,您可以使用 [規則評估] 窗格,確定它會傳回您預期的結果。
- 若要開啟規則評估窗格,請選取 [規則] 索引卷標右下方的 [展開]。
- 若要關閉窗格,請選取 [ 折迭]。
開啟評估窗格時,您可以監看您的規則會根據 目前的承載範例和評分範例進行評估。 當您變更範例或規則本身時,評估窗格中的內容會更新。
評估窗格會顯示詐騙保護針對範例事件傳回的決定。 它也會顯示與回應相關聯的任何值,例如原因或支援訊息。 觸發決策的 子句會在窗格外的綠色中概述。
如果承載範例不符合條件,則不會評估規則。 如果條件相符,但子句都沒有觸發傳回,則預設決策為 核准,且原因為 NO_CLAUSE_HIT。
評估範例
建立具有下列三個子句的規則。
`// Approves when email from contoso domain has been validated`
`RETURN Approve()`
`WHEN @"email.isEmailValidated" == true && @"email.emailValue".EndsWith("@contoso.com")`
`// Rejects when email has not been validated and high risk score`
`RETURN Reject()`
`WHEN @"email.isEmailValidated" == false && @"riskscore" > 700`
`// Reviews when email has not been validated and medium risk score`
`RETURN Review()`
`WHEN @"email.isEmailValidated" == false && @"riskscore" > 400`
承載範例包含下列物件。
"email": {
"email": "Primary",
"emailValue": "kayla@contoso.com",
"isEmailValidated": true,
"emailValidatedDate": "2020-02-25T15:12:26.9733817-08:00",
"isEmailUsername": true
},
分數範例包含下列值。
"riskScore": 500,
展開評估窗格時,會觸發子句 1,並傳回核准的決定。
在範例承載中,您會將承載中isEmailValidated欄位的值從 true 變更為 false。
"isEmailValidated": false,
在此情況下,會觸發子句 2,並傳回 Review 的決定。
在範例分數中,如果您將 「riskScore」 的值從 500 變更為 700,則會觸發子句 3,並將決策更新為 Reject。