使用條件式存取控制管理風險
重要概念 - AD FS 中的條件式存取控制
AD FS 的主要功能是發行包含一組宣告的存取權杖。 AD FS 要接受並發行哪些宣告的決定是由宣告規則負責控管。
AD FS 中的存取控制透過發行授權宣告規則加以實作,該規則可用來發行允許或拒絕宣告,以決定使用者或使用者群組是否可存取受 AD FS 保護的資源。 只可以在信賴憑證者信任上設定授權規則。
規則選項 | 規則邏輯 |
---|---|
允許所有使用者 | 如果傳入宣告類型等於「任何宣告類型」且值等於「任何值」,則會發行值等於「允許」的宣告 |
允許具有這個傳入宣告的使用者存取 | 如果傳入宣告類型等於「指定的宣告類型」且值等於「指定的宣告值」,則會發行值等於「允許」的宣告 |
拒絕具有這個傳入宣告的使用者的存取 | 如果傳入宣告類型等於「指定的宣告類型」且值等於「指定的宣告值」,則會發行值等於「拒絕」的宣告 |
如需有關這些規則選項和邏輯的詳細資訊,請參閱 When to Use an Authorization Claim Rule。
在 Windows Server 2012 R2 中的 AD FS 中,存取控制具有多種因素,包括使用者、裝置、位置和驗證資料。 這種方法之所以可行是因為授權宣告規則有多種不同的宣告類型。 換句話說,在 Windows Server 2012 R2 的 AD FS 中,您可以根據使用者身分識別或群組成員資格、網路位置、裝置 (無論是否加入工作地點,如需詳細資訊,請參閱從任何裝置加入工作地點,並在公司的各個應用程式提供 SSO 和無縫式的次要因素驗證),以及驗證狀態 (無論是否已執行多因素驗證 (MFA)) 來強制執行多因素存取控制。
Windows Server 2012 R2 中 AD FS 的條件式存取控制提供下列優點:
根據每個應用程式提供彈性且易懂的授權原則,據此您可以依使用者、裝置、網路位置和驗證狀態來允許或拒絕存取
建立信賴憑證者應用程式的發行授權規則
為一般條件式存取控制案例提供豐富的 UI 使用經驗
為進階條件式存取控制案例提供豐富的宣告語言和 Windows PowerShell 支援
自訂的 (每個信賴憑證者應用程式)「拒絕存取」訊息。 如需詳細資訊,請參閱 Customizing the AD FS Sign-in Pages。 透過自訂這些訊息,您可以解釋拒絕使用者存取的原因,同時視需要提供自助補救,例如,提示使用者將裝置加入工作地點。 如需詳細資訊,請參閱 Join to Workplace from Any Device for SSO and Seamless Second Factor Authentication Across Company Applications。
下表包含 Windows Server 2012 R2 中 AD FS 可用來實作條件式存取控制的所有宣告類型。
宣告類型 | 描述 |
---|---|
電子郵件地址 | 使用者的電子郵件地址。 |
名字 | 使用者的名字。 |
名稱 | 使用者的唯一名稱。 |
UPN | 使用者的使用者主要名稱 (UPN)。 |
一般名稱 | 使用者的一般名稱。 |
AD FS 1 x 電子郵件地址 | 與 AD FS 1.1 或 AD FS 1.0 交互作業時的使用者電子郵件地址。 |
群組 | 使用者所屬的群組。 |
AD FS 1 x UPN | 與 AD FS 1.1 或 AD FS 1.0 交互作業時的使用者 UPN。 |
角色 | 使用者擁有的角色。 |
Surname | 使用者的姓氏。 |
PPID | 使用者的私人識別碼。 |
名稱 ID | 使用者的 SAML 名稱識別碼。 |
驗證時間戳記 | 用來顯示使用者通過驗證的時間和日期。 |
驗證方法 | 用來驗證使用者的方法。 |
僅拒絕群組 SID | 使用者的僅拒絕群組 SID。 |
僅拒絕主要 SID | 使用者的僅拒絕主要 SID。 |
僅拒絕主要群組 SID | 使用者的僅拒絕主要群組 SID。 |
群組 SID | 使用者的群組 SID。 |
主要群組 SID | 使用者的主要群組 SID。 |
主要 SID | 使用者的主要 SID。 |
Windows 帳戶名稱 | 使用者的網域帳戶名稱,形式為網域\使用者。 |
是註冊的使用者 | 使用者已註冊使用此裝置。 |
裝置識別碼 | 裝置的識別碼。 |
裝置註冊識別碼 | 裝置註冊的識別碼。 |
裝置註冊顯示名稱 | 裝置註冊的顯示名稱。 |
裝置 OS 類型 | 裝置的作業系統類別。 |
裝置 OS 版本 | 裝置的作業系統版本。 |
是受管理的裝置 | 裝置是由管理服務負責管理。 |
轉寄的用戶端 IP | 使用者的 IP 位址。 |
用戶端應用程式 | 用戶端應用程式的類型。 |
用戶端使用者代理程式 | 用戶端用來存取應用程式的裝置類型。 |
用戶端 IP | 用戶端的 IP 位址。 |
端點路徑 | 用來判斷主動或被動用戶端的絕對端點路徑。 |
Proxy | 傳送要求的同盟伺服器 Proxy DNS 名稱。 |
應用程式識別碼 | 信賴憑證者的識別碼。 |
應用程式原則 | 憑證的應用程式原則。 |
授權單位金鑰識別元 | 簽署已發行憑證的憑證授權單位金鑰識別元延伸。 |
基本限制 | 憑證的其中一個基本限制。 |
增強金鑰使用方法 | 說明憑證的其中一個增強金鑰使用方法。 |
Issuer | 發行 X.509 憑證的憑證授權單位名稱。 |
簽發者名稱 | 憑證簽發者的辨別名稱。 |
金鑰使用方法 | 說明憑證的其中一個增強金鑰使用方法。 |
不能晚於 | 憑證不再有效的當地時間日期。 |
不能早於 | 憑證生效的當地時間日期。 |
憑證原則 | 發行憑證所遵循的原則。 |
公開金鑰 | 憑證的公開金鑰。 |
憑證原始資料 | 憑證的原始資料。 |
主體別名 | 憑證的其中一個替代名稱。 |
序號 | 憑證的序號。 |
簽章演算法 | 建立憑證簽章所用的演算法。 |
主旨 | 來自憑證的主體。 |
主體金鑰識別碼 | 憑證的主體金鑰識別碼。 |
主體名稱 | 來自憑證的主體辨別名稱。 |
V2 範本名稱 | 發行或續約憑證時所用的版本 2 憑證範本名稱。 這是 Microsoft 特定的值。 |
V1 範本名稱 | 發行或續約憑證時所用的版本 1 憑證範本名稱。 這是 Microsoft 特定的值。 |
指紋 | 憑證的指紋。 |
X 509 版本 | 憑證的 X.509 格式版本。 |
公司網路內部 | 用來指出要求是否從公司網路內部產生。 |
密碼到期時間 | 用來顯示密碼到期的時間。 |
密碼到期天數 | 用來顯示密碼到期的天數。 |
更新密碼 URL | 用來顯示更新密碼服務的網址。 |
驗證方法參考 | 用來指出驗證使用者所用的所有驗證方法。 |
使用條件式存取控制管理風險
使用可用的設定,實作條件式存取控制來管理風險的方法有很多種。
常見案例
例如,想像一個簡單的案例,根據特定應用程式 (信賴憑證者信任) 的使用者群組成員資格資料來實作條件式存取控制。 換句話說,您可以在同盟伺服器上設定發行授權規則,讓屬於您 AD 網域中某個群組的使用者存取受 AD FS 保護的特定應用程式。 如需實作此案例的詳細逐步指示 (使用 UI 和 Windows PowerShell),請參閱 Walkthrough Guide: Manage Risk with Conditional Access Control。 若要完成本逐步解說中的步驟,您必須設定實驗室環境,並遵循在 Windows Server 2012 R2 中設定 AD FS 的實驗室環境中的步驟。
進階案例
在 Windows Server 2012 R2 的 AD FS 中實作條件式存取控制的其他範例包括:
只有在此使用者的身分識別通過 MFA 驗證後,才能允許存取受 AD FS 保護的應用程式
您可以使用下列程式碼:
@RuleTemplate = "Authorization" @RuleName = "PermitAccessWithMFA" c:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)https://schemas\.microsoft\.com/claims/multipleauthn$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
如果存取要求來自使用者註冊的裝置,且該裝置已經加入工作地點,則允許存取受 AD FS 保護的應用程式
您可以使用下列程式碼:
@RuleTemplate = "Authorization" @RuleName = "PermitAccessFromRegisteredWorkplaceJoinedDevice" c:[Type == "https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser", Value =~ "^(?i)true$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
如果存取要求來自身分識別已通過 MFA 驗證的使用者註冊的裝置,且該裝置已經加入工作地點,則允許存取受 AD FS 保護的應用程式
您可以使用下列程式碼
@RuleTemplate = "Authorization" @RuleName = "RequireMFAOnRegisteredWorkplaceJoinedDevice" c1:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$"] && c2:[Type == "https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser", Value =~ "^(?i)true$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
只在存取要求是來自身分識別已通過 MFA 驗證的使用者,才允許外部網路存取受 AD FS 保護的應用程式。
您可以使用下列程式碼:
@RuleTemplate = "Authorization" @RuleName = "RequireMFAForExtranetAccess" c1:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$"] && c2:[Type == "https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value =~ "^(?i)false$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
另請參閱
逐步解說指南:使用條件式存取控制管理風險在 Windows Server 2012 R2 中設定 AD FS 的實驗室環境