AD FS – 发送AD属性到Shibboleth SP

我有一个AD FS索赔提供商和一个Shibboleth SP成功进行身份validation。 当我login到受Shibboleth保护的网站时,索引显示了所有的标题。 我按照预期收到了UPN,但是我无法获得像surname或sAMAccountName这样的其他属性。

我目前有3个索赔规则: 索赔规则

规则1:

规则2:

规则3:

从Shibboleth SP计算机上的日志看来,sn不会作为OID属性发送。

如果我编辑attribute-map.xml并删除对eppn的引用,那么我在shibd日志中得到以下内容:

2015-06-23 11:29:08 INFO Shibboleth.AttributeExtractor.XML [1]: skipping unmapped SAML 2.0 Attribute with Name: urn:oid:1.3.6.1.4.1.5923.1.1.1.6 

在shibd日志里没有提到类似于上面关于姓氏或sn的输出,这使我相信“​​变换SN”规则写得不正确。


更新信息:

我可以通过改变规则1从手动inputsn到select下拉选项surname从而得到姓氏的工作。 我需要做些什么来获得其他广告领域没有下拉select工作?

我正在添加诸如streetAddress字段。 对于规则1,我手动input了LDAP属性和传出声明types的streetaddress。

然后我添加了一个额外的规则:

 c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress"] => issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri"); 

我不知道http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress是否正确,但值不是映射。
如何获取无法从下拉列表中select的LDAP属性?


编辑2:

我忘了添加select查看规则语言的结果(按照Matthieu的要求):

 c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", "streetaddress"), query = ";userPrincipalName,sn,givenName,sAMAccountName,streetaddress;{0}", param = c.Value); 

似乎它只是获得streetaddress ,而所有其他值都有一个架构给他们。 由于没有模式,它将不会匹配streetaddress的转换规则,因为if语句正在查找http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress 。 我应该怎么做,不从下拉select中select的值?


我想到了:

我将变换规则更改为以下内容:

  c:[Type == "streetaddress"] => issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri"); 

而不是寻找Type == A模式,我只是把街道地址。 然后在Shibboleth SP中,我改变了Attribute-map.xml来添加这个:

 <Attribute name="urn:oid:2.5.4.232" id="streetaddress"/> 

上面的OID是任意的。

要检查您的“转换SN”规则是否按预期工作,请安装Fiddler 。 然后安装这个检查器,以便读取SAML消息。

使用这些工具,您将能够看到从ADFS服务器发送到Shibboleth SP的内容。 然后你就会知道configuration错误在哪一边。

编辑:在屏幕#1的窗口底部,当你点击“查看规则语言”button时,你看到了什么? 您是否在右侧的“传出声明types”框中手动input“sn”?

编辑2:您在框中键入的内容正是用作声明types的内容。 如果您input“foo”,那么您的声明types是“foo”。 如果你想要“ http:// foo ”,那么你必须input“ http:// foo ”。 如果您需要较长的声明types,而不是在框中input所有内容,请创build一个新的声明说明(导航左侧的树“AD FS” – >“服务” – >“声明说明”)。 这在下拉菜单中创build了一个新选项,使用起来更简单。