AD FS 疑難排解 - 宣告規則語法

宣告是某主體對於本身或其他主體所建立的陳述式。 宣告是由信賴憑證者所簽發,而且會被授予一或多個值,然後封裝在 AD FS 伺服器所簽發的安全性權杖中。 本文會處理宣告語法和建立。 如需宣告發行的相關資訊,請參閱 AD FS 疑難排解 - 宣告發行

注意

您可以在 AD FS 說明網站上使用 ClaimsXRay 來協助針對宣告問題進行疑難排解。

宣告規則的處理方式

宣告規則是使用宣告引擎透過宣告管線進行處理。 宣告引擎是同盟服務的邏輯元件,其會檢查使用者所提供的連入宣告集,而且將接著根據每個規則中的邏輯產生宣告的輸出集。

如何建立宣告規則

宣告規則是針對同盟服務內的每一個同盟的信任關聯性分別建立,不會跨多個信任共用。 您可以從宣告規則範本建立規則、使用宣告規則語言從頭開始撰寫規則,或使用 Windows PowerShell 自訂規則。

了解宣告規則語言的元件

宣告規則語言包含下列元件,以 “ =>” 運算子區隔:

  • 條件:用來檢查輸入宣告,並判斷是否應該執行規則的發行陳述式。 其代表邏輯運算式,必須評估為 true 才能執行規則主體部分。

  • 發行陳述式。

範例:

c:[type == "Name", value == "domain user"] => issue(type = "Role", value = "employee");

此宣告具有下列項目:

  • 條件 - c:[type == "Name", value == "domain user"] - 評估 Windows 帳戶名稱是否為網域使用者的輸入宣告。
  • 發行 - issue(type = "Role", value = "employee") - 如果條件為 true,請使用員工的角色將新的宣告新增至輸入宣告。

如需宣告和語法的詳細資訊,請參閱宣告規則語言的角色

宣告規則編輯器

一旦您完成了宣告並按一下 [確定],宣告規則編輯器就會執行語法檢查。 因此,如果您有不正確的語法,則編輯器會讓您知道。

Screenshot of the A D F S Management dialog box showing a message stating that the custom claim rule syntax is not valid.

事件記錄檔

當想要嘗試使用記錄,針對宣告進行疑難排解時,最佳方法是尋找宣告輸出。 您可以在事件記錄檔中尋找 1000 和 1001 事件。

Screenshot of the Event Properties dialog box showing the results of a 1000 event I D.

建立範例應用程式

您也可以建立範例應用程式,回應您的宣告。 例如,您可以使用範例應用程式,並建立信賴憑證者,其具有您嘗試疑難排解的相同宣告,然後查看應用程式是否具有該宣告的任何問題。

Screenshot of the sample application displayed in a browser.

這裡有良好的範例 Web 應用程式可供使用。 此應用程式會回應其從信賴憑證者收到的宣告。 若要使用此宣告,您必須編輯 web.config 應用程式,方法如下:

  • https://app1.contoso.com/sampapp 變更為將用於裝載範例應用程式的 URL。
  • 變更 sts.contoso.com 的所有執行個體,以指向您的 AD FS 同盟伺服器。
  • 將指紋取代為您的指紋。

Screenshot of Visual Studio showing the web config file.

下列部落格文章有絕佳的深入指示,用於設定此項目。

後續步驟