自定义ADFS声明规则

时间:2015-08-11 02:10:57

标签: saml saml-2.0 adfs

我正在使用基于Web的应用程序和ADFS实现SAML。事物的身份验证方面正在运行,但我们现在需要传递额外信息。该应用程序需要采用以下格式的SAML响应:

<saml:AttributeStatement>
 <saml:Attribute Name="mailNickname">
 <saml:AttributeValue xsi:type="xs:string">joe.smith182</saml:AttributeValue>
 </saml:Attribute>
 <saml:Attribute Name="memberOf">
 <saml:AttributeValue>CN=SCHOOL.STUDENT.YR9,OU=Groups,OU=Portal,OU=Services,DC=ABC,DC=WIN</saml:AttributeValue>
 </saml:Attribute>
 <saml:Attribute Name="sn">
 <saml:AttributeValue xsi:type="xs:string">Smith</saml:AttributeValue>
 </saml:Attribute>
 <saml:Attribute Name="givenName">
 <saml:AttributeValue xsi:type="xs:string">Joe</saml:AttributeValue>
 </saml:Attribute>
 <saml:Attribute Name="mail">
 <saml:AttributeValue xsi:type="xs:string">joe.smith@mysite.com.au</saml:AttributeValue>
 </saml:Attribute>
 <saml:Attribute Name="borrowerType">
 <saml:AttributeValue xsi:type="xs:string">Student</saml:AttributeValue>
 </saml:Attribute>
<saml:AttributeStatement>

我们需要在ADFS中设置哪些声明规则才能以此格式传递此信息?特别是我们如何获得memberOf属性?我并不熟悉ADFS中的声明规则格式,因此任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

如果您使用声明指南添加规则非常简单。我不记得界面的外观,但是当您添加声明时,请选择声明规则模板:将LDAP属性作为声明发送。

然后在LDAP属性下拉列表中键入名称并选择成员资格(或类似名称),并在外发声明类型中键入memeberOf。

然后保存规则,你就可以了。

如果您想要自定义属性名称,请添加这两个规则

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
 => add(store = "Active Directory", types = ("memberOf"), query = ";memberOf;{0}", param = c.Value);


c:[Type == "memberOf"]
 => issue(Type = "YOUR_CUSTOM_NAME", Value = c.Value);