Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shibboleth - How to read attributes?

I'm successfully logging into my Service Provider test page with Shibboleth. I then go to the /Shibboleth.sso/Session page and I see the following:

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

My question is... how do I go about reading these values? I don't see them in the HTTP Request header in Fiddler.

My web application will be implemented in ASP.NET MVC 4 (C#).

like image 293
Adam Levitt Avatar asked Aug 29 '13 00:08

Adam Levitt


2 Answers

You can also set showAttributeValues to true in the Session handler in shibboleth2.xml. Note, this is not recommended in a production environment. Then restart the shibboleth service; the Attributes section of the Session page will include the actual values.

<!-- Session diagnostic service. -->
<Handler type="Session" Location="/Session" showAttributeValues="true"/>
like image 147
schweerelos Avatar answered Oct 08 '22 00:10

schweerelos


You can read Shibboleth SAML attributes sent by the IdP using Request.ServerVariables object:

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

See this if you want to list and print all the attributes in session.

Remember to configure Shibboleth attribute-map.xml to handle the custom attributes your IdP may send:

<Attribute name="firstname" id="firstname" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
    <AttributeDecoder xsi:type="StringAttributeDecoder"/>
</Attribute>
like image 34
zerologiko Avatar answered Oct 08 '22 00:10

zerologiko