我正在使用基于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中的声明规则格式,因此任何建议都会受到赞赏。
答案 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);