2013-08-07 65 views
0

在我们的系统中,我们有从不同域注册的用户(可以说他们的邮件地址是@ gmail.com,@ outlook.com,@ yahoo.com)。我有一个要求,根据他来自的域来限制用户对RP的访问。对于此设置,我试图配置颁发授权规则ADFS(允许用户只能从特定域)与下面的规则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),新发出的传出声明(输出声明集的内容)将为u sed作为声明管道中下一个规则集的输入。这允许声明从一个规则集的输出流向另一个规则集的输入,如下图所示。

但是授权似乎不起作用。

回答

1

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

因此,我们需要在第二个选项卡(地图emailaddresses - > 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");