2016-09-01 5 views
3

Есть ли способ явно указать IDP, который атрибутов Я ожидаю? Я думаю, что ответ «да», но я не мог найти примеров. Мне нужно указать «что-то» в метаданных SP ?Явные атрибуты SAML в Spring Saml

Кто-нибудь смог расширить Spring SAML MetadataGeneratorFilter, чтобы фактически создать список атрибутов для SP xml?

Например, я хотел бы иметь в ответ следующее:

  • Название
  • Company Name
  • Отдел
  • Роль

Любые предложения, пожалуйста?

ответ

1

Требования к атрибутам поставщика услуг SAML 2.0 могут быть вызваны в метаданных с помощью элемента <md:RequestedAttribute>.

Этот элемент имеет логический атрибут, isRequired, который может быть установлен следующим образом:

<md:EntityDescriptor entityID="https://sp.example.org/saml" 
    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" 
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> 
    <md:SPSSODescriptor 
     protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> 
    ... 
    <!-- one or more indexed AssertionConsumerService elements --> 
    <md:AssertionConsumerService index="1" Binding="..." Location="..."/> 
    ... 
    <!-- zero or more indexed AttributeConsumingService elements --> 
    <md:AttributeConsumingService index="1"> 
     <md:ServiceName>The Virtual School of Computational Science and Engineering</md:ServiceName> 
     <md:ServiceDescription>The Virtual School of Computational Science and Engineering (VSCSE) helps graduate students, post-docs and young professionals from all disciplines and institutions across the country gain the skills they need to use advanced computational resources to advance their research.</md:ServiceDescription> 
     <md:RequestedAttribute isRequired="false" 
      NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" 
      Name="urn:oid:2.5.4.42" 
      FriendlyName="givenName"/> 
     <md:RequestedAttribute isRequired="true" 
      NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" 
      Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" 
      FriendlyName="eduPersonEntitlement"> 
     <saml:AttributeValue 
      xsi:type="xs:anyURI">https://example.org/is-a-grad-student</saml:AttributeValue> 
     </md:RequestedAttribute> 
    </md:AttributeConsumingService> 
    ... 
    </md:SPSSODescriptor> 
    ... 
</md:EntityDescriptor> 

Более подробную информацию можно получить по адресу: https://spaces.internet2.edu/.../SP+Attribute+Requirements

Помните, что вы всегда можете вручную настроить/продлить ваш метаданные и публиковать их (в конце концов, мы говорим о веб-приложении), отключая автоматическое поколение, созданное Spring SAML MetadataGeneratorFilter.

Учтите, что такого подхода может быть недостаточно, чтобы гарантировать надежный выпуск атрибутов. Вы всегда должны вручную проверять внутри своей пользовательской реализации SAMLUserDetailsService, если необходимые данные предоставлены поставщиком удостоверений, таким образом, разрешить или запретить аутентификацию пользователя.

+0

Это то, что я пробовал без успеха, но после прочтения онлайн еще нескольких статей я был убежден, что ADFS не заботится об этой части метаданных. Не 100% уверен, хотя ... – nuvio

+1

Фактическое поведение связано с конкретной реализацией (некоторые системы федерации просто игнорируют некоторые спецификации). Как правило, релиз атрибута должен быть явно объявлен и согласован как политика для отношений доверия между Поставщиком удостоверений и поставщиком услуг. – vdenotaris

Смежные вопросы