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,請使用員工的角色將新的宣告新增至輸入宣告。
如需宣告和語法的詳細資訊,請參閱宣告規則語言的角色。
宣告規則編輯器
一旦您完成了宣告並選取 [確定],宣告規則編輯器就會執行語法檢查。 因此,如果您有不正確的語法,則編輯器會讓您知道。
事件記錄檔
當想要嘗試使用記錄,針對宣告進行疑難排解時,最佳方法是尋找宣告輸出。 您可以在事件記錄檔中尋找 1000 和 1001 事件。
建立範例應用程式
您也可以建立範例應用程式,回應您的宣告。 例如,您可以使用範例應用程式,並建立信賴憑證者,其具有您嘗試疑難排解的相同宣告,然後查看應用程式是否具有該宣告的任何問題。
這裡有良好的範例 Web 應用程式可供使用。 此應用程式會回應其從信賴憑證者收到的宣告。 若要使用此宣告,您必須編輯 web.config 應用程式,方法如下:
- 將 https://app1.contoso.com/sampapp 變更為將用於裝載範例應用程式的 URL。
- 變更 sts.contoso.com 的所有執行個體,以指向您的 AD FS 同盟伺服器。
- 將指紋取代為您的指紋。
- 將
decryptionKey
和validationKey
取代為適合您案例的值。
下列部落格文章有絕佳的深入指示,用於設定此項目。