2013-08-29 11 views
7

Ich melde mich erfolgreich mit Shibboleth bei meiner Service Provider-Testseite an. Ich gehe dann auf die /Shibboleth.sso/Session Seite, und ich sehe die folgenden:Shibboleth - Wie Attribute gelesen werden?

Attributes 
affiliation: 1 value(s) 
entitlement: 1 value(s) 
eppn: 1 value(s) 
persistent-id: 1 value(s) 
unscoped-affiliation: 1 value(s) 

Meine Frage ist ... wie ich mich über diese Werte zu lesen? Ich sehe sie nicht im HTTP-Request-Header in Fiddler.

Meine Webanwendung wird in ASP.NET MVC 4 (C#) implementiert.

Antwort

7

Sie können Shibboleth SAML Attribute lesen von der IdP mit Request.ServerVariables Objekt gesendet:

string server = Request.ServerVariables["HTTP_FIRSTNAME"]; 

Siehe this wenn Sie alle Attribute in Sitzung aufzulisten und zu drucken.

Denken Sie daran, Shibboleth Attribut-map.xml zu handhaben die benutzerdefinierten Attribute Ihr IdP senden kann zu konfigurieren:

<Attribute name="firstname" id="firstname" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> 
    <AttributeDecoder xsi:type="StringAttributeDecoder"/> 
</Attribute> 
5

Sie auch showAttributeValues zu true in den Session-Handler in shibboleth2.xml festlegen. Beachten Sie, dass dies in einer Produktionsumgebung nicht empfohlen wird. Starten Sie den Shibboleth-Dienst neu. Der Abschnitt "Attribute" der Seite "Sitzung" enthält die tatsächlichen Werte.

<!-- Session diagnostic service. --> 
<Handler type="Session" Location="/Session" showAttributeValues="true"/> 
1

da Sie Fiedler erwähnt, werde ich gehen voran und fügen Sie (Jahre nach der Frage), dass es eine wirklich nette Firefox Browser-Add-on „SAML-Tracer“ genannt wird. (Suchen Sie einfach nach "saml tracer" und Sie finden die Mozilla-Addons-Seite dafür.) Sobald sie in Firefox installiert ist, können Sie ihr Fenster öffnen und es werden alle HTTP-Anfragen und Antworten angezeigt. Wenn etwas darin enthalten ist, wird dies mit einem "SAML" -Tag neben der URL angezeigt; Dann können Sie auf diese URL klicken, die Registerkarte "SAML" auswählen und alle Sampls lesen, die zwischen dem idp oder sp und Ihrem Browser gesendet wurden. es ist ein wirklich großartiges Inline-Fehlersuch-Tool, damit Sie sich nicht mit irgendetwas auf dem SP und/oder IDP herumschlagen müssen (oder sogar Zugriff darauf haben).