Требования к атрибутам поставщика услуг 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
, если необходимые данные предоставлены поставщиком удостоверений, таким образом, разрешить или запретить аутентификацию пользователя.
Это то, что я пробовал без успеха, но после прочтения онлайн еще нескольких статей я был убежден, что ADFS не заботится об этой части метаданных. Не 100% уверен, хотя ... – nuvio
Фактическое поведение связано с конкретной реализацией (некоторые системы федерации просто игнорируют некоторые спецификации). Как правило, релиз атрибута должен быть явно объявлен и согласован как политика для отношений доверия между Поставщиком удостоверений и поставщиком услуг. – vdenotaris