本頁是否能提供幫助?
您對此內容的意見反應十分重要。 請告訴我們您的想法。
其他意見反應?
剩餘 1500 個字元
匯出 (0) 列印
全部展開

規則群組和規則

發佈時間: 2011年4月

更新日期: 2015年6月

適用於: Azure

在 Microsoft Azure Active Directory 存取控制服務 (也稱為「存取控制服務」或 ACS) 中,[規則群組] 是宣告規則的命名集,可用來定義會從身分識別提供者傳遞哪些識別宣告至信賴憑證者應用程式。在 ACS 中,規則群組會與信賴憑證者應用程式產生關聯。一個規則群組可用於多個信賴憑證者應用程式,而一個信賴憑證者應用程式可以參照多個規則群組。

當 ACS 收到來自身分識別提供者的權杖要求或權杖時,它會執行所有與信賴憑證者應用程式相關聯的規則群組,以便處理權杖中的宣告。所有的規則群組以及每個規則群組中的所有規則會同時執行 (順序並不重要)。如果規則導致此執行完成之後發出任何新的宣告,則與信賴憑證者應用程式相關聯的規則群組便會重新執行。當完成執行程序或 ACS 完成十次執行作業 (無先後之分) 之後並沒有發出新的宣告時,規則和規則群組執行程序就會停止。

您可以使用 ACS 管理入口網站,以手動方式建立和編輯規則群組與規則,或使用 ACS 管理服務,以程式設計方式建立和編輯規則群組與規則。

當您在 ACS 管理入口網站中,新增及設定新信賴憑證者應用程式的屬性時,您也可以建立與這個信賴憑證者應用程式相關聯的規則群組,因為在 ACS 管理入口網站的 [新增信賴憑證者應用程式] 頁面中,依預設已勾選 [建立新的規則群組] 選項。我們強烈建議您保留選取此選項,進而建立新信賴憑證者應用程式的預設規則群組。(如需詳細資訊,請參閱信賴憑證者應用程式中的「規則群組」。)您也可以使用 ACS 管理入口網站的 [規則群組] 區段來新增規則群組。然後,當您使用 [新增信賴憑證者應用程式] 頁面新增信賴憑證者應用程式時,您可以將它們與一或多個現有規則群組建立關聯。

規則群組建立之後,您可以使用 ACS 管理入口網站的 [編輯規則群組]頁面來自動產生規則。如果您決定自動產生規則,系統會提示您選取要為其產生規則的身分識別提供者。當規則群組連結至一或多個信賴憑證者應用程式時,依預設會選取這些信賴憑證者應用程式所使用的身分識別提供者。

note附註
若是 WS-同盟身分識別提供者,系統會為該身分識別提供者的 WS-同盟中繼資料所提供的每個宣告類型建立一個規則,此規則便會傳遞宣告類型和值。若是其他身分識別提供者,系統會根據預先決定的宣告類型清單來產生傳遞規則。

ACS 管理入口網站的 [編輯規則群組] 頁面會顯示資料表中的所有規則,其中資料行包括規則的 [輸出宣告]、[宣告簽發者] (可以是身分識別提供者或 ACS),以及 [描述]。

如果您按一下資料表中的指定規則,您會被重新導向至 [編輯宣告規則] 頁面,您可以在此編輯規則。若要手動新增規則,您可以按一下 [新增]。

宣告規則說明 ACS 如何將輸出宣告轉換為輸入宣告的邏輯。規則會包含在與信賴憑證者應用程式相關聯的規則群組中,每當 ACS 為應用程式簽發權杖時,系統便會執行這些規則。如果規則群組不包含任何規則,則系統不會簽發權杖給信賴憑證者應用程式。一般來說,您要簽發給信賴憑證者應用程式的每個宣告類型都必須要有一個規則。您可以只建立並使用一個規則來傳遞所有宣告類型和值。不過,每個宣告類型會使用一個規則可以提高安全性,並可以讓您更容易掌控傳遞至應用程式的資料。

在 ACS 中,您可以設定將取自身分識別提供者或用戶端的宣告傳遞至信賴憑證者應用程式的規則,而無需變更宣告的類型、簽發者或值。這些規則的名稱是 [傳遞] 規則。例如,由 Windows Live ID (Microsoft 帳戶) 所簽發的權杖會包含 nameidentifier 宣告類型。若要將此宣告原封不動地傳遞給信賴憑證者應用程式,您必須設定傳遞規則,來處理宣告簽發者 (Windows Live ID) 的輸入 nameidentifier 宣告類型,並建立完全相同的輸出宣告。

下表說明宣告如何從名為 Contoso.com 的虛構 AD FS 2.0 身分識別提供者傳遞出去。

 

輸入宣告 輸出宣告

Issuer

類型

Issuer

類型

Contoso.com

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

存取控制服務

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

Contoso.com

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

john@contoso.com

存取控制服務

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

john@contoso.com

Contoso.com

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

John Doe

存取控制服務

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

John Doe

ACS 規則引擎還可讓您根據宣告簽發者、輸入宣告類型和值,將輸入宣告轉換成完全不同的輸出宣告。換句話說,ACS 規則引擎可讓您透過新增、移除或變更權杖所包含的宣告,將輸入權杖轉換成不同的輸出權杖。透過這種形式的宣告轉換,ACS 便能夠根據宣告輸入值實作基本授權。下列範例說明如果 “nameidentifier” 輸入宣告符合特定值,則系統便會輸出值為「系統管理員」的「角色」宣告類型。

 

輸入宣告 輸出宣告

Issuer

類型

Issuer

類型

Contoso.com

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

存取控制服務

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

系統管理員

ACS 規則引擎還可讓您根據兩個輸入宣告的組合建立輸出宣告。在下列範例中,如果來自 Contoso.com 的 “nameidentifier” 和 “role” 輸入宣告符合特定值,則輸出宣告的類型會是「動作」且值是「寫入」。當在規則中指定兩個輸入宣告時,這兩個值都必須符合才能產生輸出宣告。

 

輸入宣告 輸出宣告

Issuer

類型

Issuer

類型

Contoso.com

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

123456789

存取控制服務

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/action

寫入

Contoso.com

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role

系統管理員

如需如何使用規則實作權杖轉換的詳細資訊和步驟,請參閱作法:使用規則實作權杖轉換邏輯

當您在 ACS 管理入口網站中新增或編輯現有宣告規則時,您必須進行下列設定:

本節包含必須為 True 的條件,規則才能簽發輸出宣告。這些條件包括下列選項:

  • 宣告簽發者 - 是指簽發輸入宣告的實體。這可以是設定的身分識別提供者 (例如 ) 或 ACS。如果輸入宣告來自服務識別,或是來自另一個規則,則 ACS 會是簽發者。如需詳細資訊,請參閱服務身分識別

  • 輸入宣告類型 - 是指從宣告簽發者收到的輸入宣告類型。例如,"nameidentifier" 的完整宣告類型是 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier。此欄位的選項包括:

    • 任何 - 如果收到來自簽發者的任何宣告類型,則傳回 True。

    • 選取類型 - 如果輸入宣告類型符合下拉式功能表中所選取的類型,則傳回 True。這個功能表會在選取的宣告簽發者中,填入可用的宣告類型。

    • 輸入類型 - 如果輸入宣告類型符合欄位中所輸入的確切值,則傳回 True。

      Important重要事項
      此欄位會區分大小寫。

  • 輸入宣告值 - 是指所收到的輸入宣告值。例如,"nameidentifier" 宣告類型會使用電子郵件地址作為它的值,而此欄位可用來檢查特定的電子郵件地址。此欄位的選項包括:

    • 任何 - 如果收到來自簽發者的任何宣告值,則傳回 True。

    • 輸入值 - 如果輸入宣告類型符合欄位中所輸入的確切值,則傳回 True。此選項需要您在 [輸入宣告類型] 欄位中選取或輸入特定的輸入宣告類型。

      Important重要事項
      此欄位會區分大小寫。

若要在規則中新增第二個宣告,請按一下 [新增第二個輸入宣告]。這可讓您指定額外的條件,如下所示。請注意,在具有兩個輸入宣告的規則中,所有條件都必須為 True,才能產生輸出宣告。

  • 宣告簽發者 - 是指簽發第二個輸入宣告的實體。它可以與為第一個宣告所選取的身分識別提供者相同,或它可以是 ACS。選取 ACS 以指定其他宣告規則在處理規則過程中所產生的宣告。

    Important重要事項
    在第一個和第二個宣告中,您無法選取兩個不同的身分識別提供者,因為系統一次只會為從一個身分識別提供者簽發的一個權杖執行規則處理。

  • 輸入宣告類型 - 是指從宣告簽發者收到的輸入宣告類型。例如,"nameidentifier" 的完整宣告類型是 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier。此欄位的選項包括:

    • 選取類型 - 如果輸入宣告類型符合下拉式功能表中所選取的類型,則傳回 True。這個功能表會在選取的宣告簽發者中,填入可用的宣告類型。

    • 輸入類型 - 如果輸入宣告類型符合欄位中所輸入的確切值,則傳回 True。

      Important重要事項
      此欄位會區分大小寫。

  • 輸入宣告值 - 是指所收到的輸入宣告值。例如,"nameidentifier" 宣告類型會使用電子郵件地址作為它的值,而此欄位可用來檢查特定的電子郵件地址。如果輸入宣告類型符合欄位中所輸入的精確值,則它會傳回 True。

    Important重要事項
    此欄位會區分大小寫。

如果規則的 If 區段中的條件成立,本節會指定由 ACS 所簽發的輸出宣告。輸出宣告包括下列選項:

  • 輸出宣告類型 - 由 ACS 所簽發的宣告類型。此欄位包括下列選項:

    • 傳遞輸入宣告類型 - 簽發與輸入宣告相同類型的輸出宣告。

    • 選取類型 - 簽發指定類型的輸出宣告。下拉式功能表包含常見的宣告類型清單。

    • 輸入類型 - 簽發輸入類型的宣告。如果 SAML 權杖中有輸出宣告存在,則此值必須是 URI (例如,http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier)。

      Important重要事項
      此欄位會區分大小寫。

  • 輸出宣告值 - 是指由 ACS 所簽發的輸出宣告值。此欄位包括下列選項:

    • 傳遞輸入宣告值 - 簽發其值與輸入宣告值完全相同的輸出宣告。

    • 輸入值 - 簽發在此欄位中輸入值的宣告。此選項需要您在 [輸出宣告類型] 欄位中選取或輸入特定的輸入宣告類型。

      Important重要事項
      此欄位會區分大小寫。

您可以使用本區段來建立規則的描述。

note附註
在 ACS 中,產生的規則不會自動建立規則描述。

您可以使用 ACS 管理服務,以程式設計方式設定 存取控制命名空間 中的規則。如需如何使用 ASP.NET 設定規則的範例,請參閱程式碼範例:管理服務。下面是使用 ACS 管理服務來設定規則時要考慮的重要事項:

  • 在規則群組中編輯和刪除規則時,建議您首先查詢 ACS 以找到該規則群組內的所有規則,然後使用此查詢所傳回的規則識別碼來執行編輯或刪除作業。不建議您儲存管理服務所所傳回的識別碼以供日後作業使用,因為這些識別碼不保證會永久保存。

  • 如果您正在撰寫建立規則的自動重試邏輯 (例如逾時事件),建議您首先查詢目前規則群組中是否有相同規則存在,然後再次嘗試將其新增。

另請參閱

社群新增項目

新增
顯示:
© 2015 Microsoft