我已成功使用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#)中实现。
答案 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(甚至可以访问它们)。