在我们的系统中,我们有来自不同域的用户(假设他们的邮件地址是 @ 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)之后,新发布的传出声明(输出声明集的内容)将用作声明中下一个规则集的输入管道。这允许声明从一个规则集的输出流向另一个规则集的输入,如下图所示。
但授权似乎不起作用。
答案 0 :(得分:1)
第一个选项卡中配置的声明(颁发转换规则)不会传递到第二个选项卡(颁发授权规则)。
所以我们需要在第二个标签中再次重复该过程(映射emailaddresses - &gt; emailaddress),如下所示。
现在自定义规则完美无缺。
如果您需要在接受标准中添加更多电子邮件域,请使用“|”符号:
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");