2016-09-01 10 views
3

Gibt es eine Möglichkeit, explizit zu der IDP zu sagen, welche Attribute erwarte ich? Ich denke, die Antwort ist ja, aber ich konnte keine Beispiele finden. Müsste ich "etwas" in den SP Metadaten spezifizieren?Explizite SAML-Attribute in Spring Saml

Kann jemand die Spring SAML MetadataGeneratorFilter erweitern, um die Liste der Attribute für die SP xml zu erstellen?

Zum Beispiel würde Ich mag in der Antwort haben, die folgenden: bitte

  • Namen
  • Firmenname
  • Abteilung
  • Rolle

Irgendwelche Vorschläge?

Antwort

1

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.

+0

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

+1

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

Verwandte Themen