0

在我们的系统中,我们有从不同域注册的用户(假设他们的邮件地址是@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 链接中提到的那样初始化授权规则集中的输入(在将执行输出发送到声明管道部分下)

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

但授权似乎不起作用。

4

1 回答 1

1

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

因此,我们需要在第二个选项卡(映射电子邮件地址 -> 电子邮件地址)中再次重复该过程,如下所示。

颁发授权规则配置

现在自定义规则完美运行。

如果您需要向接受标准添加更多电子邮件域,只需使用“|” 象征:

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"); 
于 2013-08-07T02:15:14.360 回答