ADFS声明规则迭代AD属性



如何在ADFS中将AD属性迭代为声明规则?

更具体地说,我想检查用户的proxyAddresses是否包含一个预定的域,如果是,则将该电子邮件作为Name ID返回,否则为用户的主电子邮件。

您将在声明规则上使用regex来检查域,如果存在,则发出NameID声明。

然后使用";不存在";规则

所以类似于:

NOT EXISTS([Type == "http://contoso.com/NAMID"])
=> add(Type = "http://contoso.com/hasNAMEID", Value = "No");
Sample Rule 2:
c1:[Type == "http://contoso.com/hasNameID"] &&
c2:[Type == "http://contoso.com/email"]
=> issue(Type="http://contoso.com/email", Value=c2.value);

使用正常的电子邮件索赔类型等

写下这篇文章大约10分钟后,我发现这个例子更详细地展示了解决方案。

我昨天玩了一会儿,最后得到了以下结果,这似乎有效,但可能不是最干净的方法?

规则#1:

代理地址和用户主体名称的常规属性声明

规则#2:

c:[Type == "fake/proxyAddresses", Value =~ "subdomain.example.com$"]
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = RegExReplace(c.Value, "smtp:", ""));

规则#3:

NOT EXISTS([Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"])
=> add(Type = "fake/UseUPN", Value = "Yes");

规则#4:

c1:[Type == "fake/UseUPN"]
&& c2:[Type == "fake/UPN"]
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = c2.Value);

相关内容

  • 没有找到相关文章

最新更新