10

我正在使用 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 请求标头中看不到它们。

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

4

3 回答 3

11

您也可以在 Session 处理程序中设置showAttributeValues为. 请注意,不建议在生产环境中这样做。然后重启shibboleth服务;会话页面的属性部分将包含实际值。trueshibboleth2.xml

<!-- Session diagnostic service. -->
<Handler type="Session" Location="/Session" showAttributeValues="true"/>
于 2015-07-01T23:04:35.823 回答
10

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

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

如果您想列出并打印会话中的所有属性, 请参阅此内容。

请记住配置 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>
于 2013-08-29T09:29:54.357 回答
1

既然你提到了提琴手,我会继续添加(问题发生多年后),有一个非常棒的 Firefox 浏览器插件,名为“SAML 跟踪器”。(只需搜索“saml tracer”,您就会找到它的 mozilla 插件页面。)一旦安装在 firefox 中,您可以打开它的窗口,它会显示所有 http 请求和响应。如果其中包含 saml,它将在 url 旁边带有“SAML”标签;然后您可以单击该 url,选择“SAML”选项卡,然后读取在 idp 或 sp 与您的浏览器之间发送的所有 saml。它是一个非常棒的在线故障排除工具,因此您不必弄乱 sp 和/或 idp 上的任何东西(甚至可以访问它们)。

于 2015-07-24T17:58:36.227 回答