1

我在 Shibboleth SSO 交互中充当服务提供者。我成功地取回了带有预期属性的 SAML 响应。但是,这些属性未显示在 /Shibboleth.sso/Session Attributes 列表中。

<MetadataProvider>在 shibboleth.xml 文件中有标签。我想知道我还能做错什么?

在 shibd.log 我看到以下内容:

skipping unmapped SAML 2.0 Attribute with Name: xxxx, Format:urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
skipping unmapped SAML 2.0 Attribute with Name: yyyy

编辑 - 我还添加到attribute-map.xml

<Attribute Name="xxxx" id="xxxx" />
<Attribute Name="yyyy" id="yyyy" />

这些属性在 IdP 的 metadata.xml 中没有完全限定的名称。名称只是“xxxx”和“yyyy”。这有关系吗?

最后,在 IdP 的metadata.xml 中,他们有这个:

<saml:Attribute Name="xxxx" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute Name="yyyy" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
4

2 回答 2

1

来自Shibboleth 文档

SAML V2.0 LDAP/X.500 属性配置文件指定 X.500/LDAP 属性通过使用 urn:oid 命名空间来命名。这些名称简单地使用字符串 urn:oid 后跟为属性定义的 OID 构造。

所以你肯定需要使用 OID 作为属性名,attribute-map.xml 有很多例子。

对于特定于某些 IdP 的自定义属性,他们必须为您提供要使用的 OID。

于 2013-09-14T04:21:15.247 回答
0

我相信我已经解决了。在 attribute-map.xml 我必须添加:

<Attribute name="xxxx" id="xxxx">
  <AttributeDecoder xsi:type="NameIDAttributeDecoder" formatter="$Name" defaultQualifiers="true"/>
</Attribute>
<Attribute name="yyyy" id="yyyy">
  <AttributeDecoder xsi:type="NameIDAttributeDecoder" formatter="$Name" defaultQualifiers="true"/>
</Attribute>

见这里:NativeSPAttributeDecoder

于 2013-09-18T14:38:57.843 回答