关于本指南
本演练说明如何使用 Windows Server 2012 R2 中 Active Directory Federation Services (AD FS) 内的条件访问控制机制提供的因素(用户数据)之一来管理风险。 有关 Windows Server 2012 R2 中 AD FS 中的条件访问控制和授权机制的详细信息,请参阅 使用条件访问控制管理风险。
本指南包含以下部分:
步骤 1:设置实验室环境
若要完成本演练,需要一个包含以下组件的环境:
具有测试用户和组帐户的 Active Directory 域,在 Windows Server 2008、Windows Server 2008 R2 或 Windows Server 2012 上运行,其架构升级到 Windows Server 2012 R2 或 Windows Server 2012 R2 上运行的 Active Directory 域
在 Windows Server 2012 R2 上运行的联合服务器
托管示例应用程序的 Web 服务器
可从中访问示例应用程序的客户端计算机
警告
强烈建议(无论是在生产环境还是测试环境中),都不要使用同一台计算机来成为联合服务器和 Web 服务器。
在此环境中,联合服务器发出所需的声明,以便用户可以访问示例应用程序。 Web 服务器托管示例应用程序,该应用程序将信任提供联合服务器发出的声明的用户。
有关如何设置此环境的说明,请参阅在 Windows Server 2012 R2 中为 AD FS 设置实验室环境。
步骤 2:验证默认 AD FS 访问控制机制
在此步骤中,你将验证默认的 AD FS 访问控制机制,其中用户重定向到 AD FS 登录页,提供有效的凭据,并被授予对应用程序的访问权限。 可以使用 Robert Hatley AD 帐户和在 Windows Server 2012 R2 中为 AD FS 设置实验室环境中配置的 claimapp 示例应用程序。
验证默认 AD FS 访问控制机制
在客户端计算机上,打开浏览器窗口并导航到示例应用程序: https://webserv1.contoso.com/claimapp
此作会自动将请求重定向到联合服务器,系统会提示你使用用户名和密码登录。
请键入您在 Windows Server 2012 R2 中为 AD FS 配置实验室环境时创建的 Robert Hatley AD 帐户的凭据。
你将获得对应用程序的访问权限。
步骤 3:基于用户数据配置条件访问控制策略
在此步骤中,将基于用户组成员身份数据设置访问控制策略。 换句话说,你将在联合服务器上为信赖方信任配置颁发授权规则,该信赖方信任代表你的示例应用程序——claimapp。 根据此规则的逻辑, Robert Hatley AD 用户将收到访问此应用程序所需的声明,因为他属于 财务 组。 您已将Robert Hatley帐户添加到财务组,在Windows Server 2012 R2 中为 AD FS 设置实验室环境。
可以使用 AD FS 管理控制台或通过 Windows PowerShell 完成此任务。
通过 AD FS 管理控制台配置基于用户数据的条件访问控制策略
在 AD FS 管理控制台中,导航到 信任关系,然后导航到 信赖方信任。
选择代表样例应用程序(claimapp)的信赖方信任,然后在 “操作” 窗格中或者通过右键单击该信赖方信任,选择 “编辑声明规则”。
在 声明应用的“编辑声明规则 ”窗口中,选择“ 颁发授权规则 ”选项卡,然后单击“ 添加规则”。
在 “添加颁发授权声明规则向导”的 “选择规则模板”页上,选择 “根据传入声明允许或拒绝用户”声明规则模板,然后单击“下一步”。
在 “配置规则 ”页上,执行以下所有作,然后单击“ 完成” :
输入声明规则的名称,例如 TestRule。
选择“组 SID”作为“传入声明类型”。
单击 “浏览”,键入 Finance 作为您的 AD 测试组名称,并解析它以用于 “传入声明值” 字段。
选择“拒绝访问具有此传入声明的用户”选项。
在“claimapp 编辑声明规则”窗口中,请确保删除创建此信赖方信任时默认创建的允许所有用户访问规则。
通过 Windows PowerShell 基于用户数据配置条件访问控制策略
- 在联合服务器上,打开 Windows PowerShell 命令窗口并运行以下命令:
$rp = Get-AdfsRelyingPartyTrust -Name claimapp
- 在同一 Windows PowerShell 命令窗口中,运行以下命令:
$GroupAuthzRule = '@RuleTemplate = "Authorization" @RuleName = "Foo" c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value =~ "^(?i)<group_SID>$"] =>issue(Type = "https://schemas.microsoft.com/authorization/claims/deny", Value = "DenyUsersWithClaim");'
Set-AdfsRelyingPartyTrust -TargetRelyingParty $rp -IssuanceAuthorizationRules $GroupAuthzRule
注释
确保将 <group_SID> 替换为 AD Finance 组的 SID 值。
步骤 4:验证条件访问控制机制
在此步骤中,你将验证在上一步中设置的条件访问控制策略。 可以使用以下过程来验证 Robert Hatley AD 用户是否可以访问示例应用程序,因为他属于 财务 组和不属于 Finance 组的 AD 用户无法访问示例应用程序。
在客户端计算机上,打开浏览器窗口并导航到示例应用程序: https://webserv1.contoso.com/claimapp
此作会自动将请求重定向到联合服务器,系统会提示你使用用户名和密码登录。
键入在为 Windows Server 2012 R2 中的 AD FS 设置实验室环境中创建的 Robert Hatley AD 帐户的凭据。
你将获得对应用程序的访问权限。
键入不属于 Finance 组的另一个 AD 用户的凭据。 (有关如何在 AD 中创建用户帐户的详细信息,请参阅 https://technet.microsoft.com/library/cc7833232.aspx。
此时,由于您在上一步中设置的访问控制策略,对于不属于Finance组的该 AD 用户,将显示“拒绝访问”消息。 默认消息文本是 你无权访问此网站。单击此处可再次注销并登录,或联系管理员获取权限。 但是,此文本是完全可自定义的。 有关如何自定义登录体验的详细信息,请参阅 自定义 AD FS 登录页面。