3

考虑以下示例场景:

  • 我有一个用于生产、测试​​和开发的单一 Active Directory 域(每个域在 OU 级别分开)。
  • 我想在测试 OU 级别安装 ADFS,并且我不希望在测试 OU ADFS 中经过身份验证的用户能够访问(读取和写入)其他 OU。

这可能吗?我们能否限制 ADFS 2.0 仅在特定 OU 下工作?

4

2 回答 2

4

虽然限制 ADFS 2.0 在特定 OU 下工作是不可行的(根据我阅读的资源和恕我直言),但我们可以限制特定 OU 内的用户访问。

这可以分两步完成:

  1. 添加声明规则以提取 AD 对象 DN。

    • 要提取此声明,请从 ADFS 管理控制台转到 ADFS 2.0 -> 信任关系 -> 声明提供者信任 -> 单击 Active Directory -> 编辑声明规则。

    • 在接受转换规则下,添加新规则

           Claim rule name – DN (can be anything)
           LDAP Attribute – distinguishedname 
           Outgoing claim type – http://temp.org/claims/DistinguishedName 
    

    • 这将提取 AD 中每个对象的 DN

  2. 添加新的授权规则(在所需应用程序的信赖方信任中)以允许来自特定 OU 的用户访问应用程序。

    • 转到 ADFS 管理控制台 -> 信任关系 -> 信赖方信任 -> 选择应用程序 -> 编辑声明规则

    • 在颁发授权规则(第二个选项卡)下,删除现有规则“允许所有用户”(如果有)并在 - 使用自定义规则发送声明下添加新规则:名称:XXX(任何值)

    Custome rule: 
    
    c:[Type == "http://temp.org/claims/DistinguishedName", Value =~"^.*    (OU=EMPLOYEES,OU=Org-Users,DC=ADCORP,DC=LAB)$"] => issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
    

    例如:OU=Users,OU=EMPLOYEES,OU=Org-users,DC=ADCORP,DC=LAB 中的用户将有权访问

    OU=Admins,OU=EMPLOYEES,OU=Org-Users,DC=ADCORP,DC=LAB 中的用户将有权访问

    OU=Users,OU=CONTRACTORS,OU=Org-Users,DC=ADCORP,DC=LAB 中的用户将无权访问

有关添加 DN 的更多详细信息,请参阅此链接,有关添加自定义规则的详细信息,请参阅msdn 帖子。

于 2013-03-12T21:57:59.100 回答
0

是否有可能扭转限制?因此,除了一次只允许 1 个 OU 之外,您可以允许所有人吗?

所以字符串可能是

C:[Type == " http://temp.org/claims/DistinguishedName ", Value =~"^.* (OU=EMPLOYEES,OU=Org-Users,DC=ADCORP,DC=LAB)$"] = >问题(类型=“ http://schemas.microsoft.com/authorization/claims/deny ”,值=“PermitUsersWithClaim”);

这样,除员工 OU 之外的每个人都可以访问。

于 2013-11-18T18:43:49.413 回答