2013-09-12 3 views
1

Я выступаю в качестве поставщика услуг в взаимодействии SSO Shibboleth. Я успешно возвращаю ответ SAML с ожидаемыми атрибутами внутри. Однако эти атрибуты не отображаются в списке /Shibboleth.sso/Session Attributes.shibboleth SAML выдал атрибуты не в заголовке HTTP

У меня есть тег <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 

EDIT - Я также добавил к -атрибута map.xml:

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

Атрибуты не имеют полные имена в метаданных IdP .xml. Имена - это просто «xxxx» и «yyyy». Это имеет значение?

Наконец, в 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"/> 

ответ

0

Я считаю, что решил. В атрибуте-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

+0

, так что вы должны, вероятно, отметить свое, как ответили :), но этот пользовательский NameIDAttributeDecoder, вероятно, не очень подходит для стандартов SAML2, OID должен быть способом пойти –

+0

Олег, на самом деле это кажется немного неуклюжим. Как иногда это работает, а иногда - нет. Любая идея почему? –

1

От Shibboleth documentation:

SAML V2.0 LDAP/X.500 Атрибут профиля определяет, что X .500/LDAP , используя имя пространства имен urn: oid. Эти имена просто строятся с использованием строки urn: oid, за которой следует OID , определенный для атрибута.

Так что определенно вам нужно использовать OID для имен атрибутов, у атрибута-map.xml есть много примеров.

Для пользовательских атрибутов, специфичных для некоторых IdP, они должны будут предоставить вам OID для использования.

+0

Так что мой провайдер идентификации должен обеспечить их таким образом в своем ответе SAML тогда? Мне интересно, не хватает ли у меня чего-то другого по конфигурации на моем конце. У меня есть несколько MetadataProviders, хотя у Shibboleth нет проблем с поиском этого. –