SAML 2.0-Dienstanbieter-Attributanforderungen können in den Metadaten mithilfe des Elements <md:RequestedAttribute>
aufgerufen werden.
Dieses Element hat eine boolean-Attribut, isRequired
, die eingestellt werden können wie folgt:
<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>
Weitere Informationen sind verfügbar unter: https://spaces.internet2.edu/.../SP+Attribute+Requirements
Denken Sie daran, dass Sie immer manuell anpassen/erweitern Metadaten und veröffentlichen Sie sie (schließlich sprechen wir über Web-basierte Anwendung), deaktivieren Sie die automatische Generierung von der Spring SAML MetadataGeneratorFilter
gemacht.
Berücksichtigen Sie, dass dieser Ansatz nicht ausreichen kann, um eine zuverlässige Attributfreigabe zu gewährleisten. Sie sollten die benutzerdefinierte Implementierung von SAMLUserDetailsService
immer manuell überprüfen, wenn die erforderlichen Daten vom Identity Provider bereitgestellt wurden, und somit die Benutzerauthentifizierung zulassen oder verweigern.
Das habe ich ohne Erfolg versucht, aber nachdem ich online ein paar weitere Artikel gelesen hatte, wurde ich dazu gebracht zu glauben, ADFS kümmert sich nicht um diese wenigen Metadaten. Nicht 100% sicher, obwohl ... – nuvio
Das tatsächliche Verhalten hängt mit der spezifischen Implementierung zusammen (einige Verbundsysteme ignorieren nur einige Spezifikationen). Im Allgemeinen muss das Attribut release explizit als Richtlinie für die Vertrauensbeziehung zwischen Identity Provider und Service Provider deklariert und vereinbart werden. – vdenotaris