Shibboleth - 如何阅读属性?

时间:2013-08-29 00:31:20

标签: attributes shibboleth

我已成功使用Shibboleth登录我的服务提供商测试页面。然后我转到/Shibboleth.sso/Session页面,我看到以下内容:

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

我的问题是......我如何阅读这些价值观?我在Fiddler的HTTP Request标头中看不到它们。

我的Web应用程序将在ASP.NET MVC 4(C#)中实现。

3 个答案:

答案 0 :(得分:9)

您可以使用 Request.ServerVariables 对象阅读IdP发送的Shibboleth SAML属性:

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

如果要列出并打印会话中的所有属性,请参阅this

请记住配置Shibboleth attribute-map.xml 以处理您的IdP可能发送的自定义属性:

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

答案 1 :(得分:8)

您还可以在showAttributeValues中的会话处理程序中将true设置为shibboleth2.xml。请注意,建议不要在生产环境中使用此功能。然后重启shibboleth服务; “会话”页面的“属性”部分将包含实际值。

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

答案 2 :(得分:1)

因为你提到了fiddler,我会继续添加(问题后几年)有一个非常好的firefox浏览器插件,名为“SAML tracer”。 (只需搜索“saml tracer”,你就会找到它的mozilla插件页面。)一旦安装在firefox中,你就可以打开它的窗口,它会显示所有的http请求和响应。如果其中有任何内容,则表示网址旁边有“SAML”标记;然后您可以单击该URL,选择“SAML”选项卡,并读取在idp或sp与您的浏览器之间发送的所有saml。它是一个非常棒的在线故障排除工具,所以你不必乱用sp和/或idp(甚至可以访问它们)。