ADFS - 颁发授权规则集错误

时间:2013-08-07 00:29:31

标签: claims-based-identity adfs2.0 claims

在我们的系统中,我们有来自不同域的用户(假设他们的邮件地址是 @ gmail.com,@ outlook.com,@ yahoo.com )。我要求根据用户来自的域限制用户访问RP。对于此设置,我尝试使用以下规则在ADFS中配置颁发授权规则(仅允许来自特定域的用户)

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", Value =~ "gmail.com$"]
 => issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");

我通过发布授权规则标签传递了电子邮件地址声明,因此我没有在technet link中提到的授权规则集中初始化输入(在下将执行输出发送到声明管道部分< /强>)

  

在为给定规则集运行整个流程(步骤1,2和3)之后,新发布的传出声明(输出声明集的内容)将用作声明中下一个规则集的输入管道。这允许声明从一个规则集的输出流向另一个规则集的输入,如下图所示。

但授权似乎不起作用。

1 个答案:

答案 0 :(得分:1)

第一个选项卡中配置的声明(颁发转换规则)不会传递到第二个选项卡(颁发授权规则)。

所以我们需要在第二个标签中再次重复该过程(映射emailaddresses - &gt; emailaddress),如下所示。

Issuance Authorization Rule configuration

现在自定义规则完美无缺。

如果您需要在接受标准中添加更多电子邮件域,请使用“|”符号:

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", Value =~ "yahoo.com$|gmail.com$"]
=> issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");