【问题标题】:How to read the saml response that comes to the "../adfs/ls/"?如何读取来自“../adfs/ls/”的 saml 响应?
【发布时间】:2015-05-25 14:23:13
【问题描述】:

我是 SSO 和 SAML 的新手。我们必须使用 ADFS 2.0 在我们的客户站点上设置单点登录,我们成功地做到了,当我们尝试访问 ../adfs/ls/idpinitiatedsignon.aspx 时,它会重定向到客户站点,如果我们输入用户名和密码,它会返回idpinitiatedsignon.aspx 页面带有您已登录标签。当我使用 SAML Tracer firefox 插件检查 http 事务时,我可以看到 <samlp:Response> 即将到达 our_site_name/adfs/ls/,当我尝试在 idpinitiatedsignon.aspxpage 中访问 Request["SAMLResponse"] 时,它显示为空。

  1. 我如何阅读我的服务器上的samlp:response而不是 到特定页面?
    1. 我可以在 SAML Tracer 中看到我收到了<EncryptedAssertion>。如何读取断言值?

【问题讨论】:

  • 有什么问题? ADFS 事件日志中有任何内容吗?
  • @nzpcmad :我在问如何在 asp.net 中读取 saml 响应?
  • 你见过stackoverflow.com/questions/32359232/…>吗?

标签: asp.net single-sign-on saml saml-2.0 adfs2.0


【解决方案1】:

我是从 SAML 而不是 ADFS 回答的。关于问题 2,我希望您会收到一个名为 SAML 元数据的 XML 块,它描述了您客户的 IDP。在该元数据中,我希望您会收到客户的公钥 (2.4.1.1 Element KeyDescriptor)。我认为不可能在 SAML Tracer 中解密,除非有办法在工具中安装加密证书。我的团队使用了来自https://wiki.shibboleth.net/confluence/display/SHIB2/XmlSecTool 的 XmlSecTool 来验证从 SAML 跟踪器中提取的 XML 签名,但我不知道是否有人可以在浏览器上解密。如果您在 ASDF 级别上更具体地询问,请原谅我。

【讨论】:

  • @judielaine:谢谢你的想法,如果你对我的第一个问题有任何想法/解决方案?如何读取到我的服务器的 saml 响应?
  • 1.在 ADFS 本​​身中很难获得 SAML 令牌。解码在 HttpHandler 中完成。只有使用 Http 模块才能拦截它。值得付出努力吗?你想要什么? 2. 您必须从 CAPI 存储中获取解密证书的私钥(如果它不在 HSM 中:-)。默认自签名的重要(不可导出),但可以通过将一个导入 ADFS 来实现。
  • @Dhanda 很遗憾,我从未使用过 ADFS,因此无法在这方面提供帮助。
  • @paullem:我们正在尝试与我们的客户站点实施 SSO。我们是 SP,Idp 是客户方。所以一旦我运行我的 adfs idpinitiatedsignon.aspx 页面,它会成功重定向到客户站点并一旦我们输入用户名和密码,它就会成功返回 idpinitiatedsignon.aspx 并说您已登录。接下来是捕获 samlp:response 以便我可以读取断言但我不知道如何读取?有什么方法可以在 c# 中获取 saml 响应?
  • 你没有回答我的问题你为什么要这个。正常流程是您的应用程序重定向到 ADFS(使用 ws-fed)。然后 ADFS 重定向到 IdP(使用 saml2 协议)。 IdP 通过 Post 返回 SAML 令牌。然后 ADFS 辞职并发布到您的应用程序。不需要(最好不要) IdP Initiated。我的建议是坚持标准流程。我已经回答了如果您不遵守标准流程该怎么办。
猜你喜欢
  • 2018-06-17
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
相关资源
最近更新 更多