【问题标题】:What changes is required from Web Application to act as a service provider in SAML 2.0?要在 SAML 2.0 中充当服务提供者,Web 应用程序需要进行哪些更改?
【发布时间】:2015-05-14 02:22:10
【问题描述】:

我一直在阅读有关 SAML 2.0 及其实现的信息,但到目前为止,我还没有找到任何关于该领域与 Web 应用程序集成的资料。

我想知道 Web 应用程序(即 www.my-app.com)需要进行哪些更改,以便当用户输入此 URL 时,它将被重新路由到服务提供商以生成 SAMLRequest等等,并与 IdP 进行通信。

其次,当 IdP 将 SAMLResponse 发送回 SP(Assertion Consumer Service)时,SP 如何将响应的结果返回给 Web 应用程序?

提前致谢!

【问题讨论】:

  • 这个问题令人困惑。您要求“充当服务提供商”,然后您要求“SP 将响应结果提供回 Web 应用程序”。那么您希望 Web 应用程序充当 SP 还是单独的 SP?还有,为什么会有SP?为什么你的应用程序不能。直接与 IDP 沟通?
  • 澄清一下,Web 应用程序是受保护的资源。在这种情况下,SP 内可能有多个受保护的资源。那么这是否意味着我需要在每个受保护的资源前面配置多个 SP?

标签: service integration saml-2.0 provider


【解决方案1】:

“Web 应用程序是受保护的资源”并且您想使用 SAML 作为协议。

为此,您的应用程序必须有一个 SAML 客户端堆栈。参考:SAML : SAML connectivity / toolkit

应用程序是 .NET、Java ... 吗?

另一种选择是使用中间 SP 作为桥梁。大多数 IDP 也可以作为 SP 运行,它们同时支持 WS-Fed 和 SAML。因此,您可以以 WS-Fed 的形式进入,以 SAML 的形式退出。

不,您可以拥有一个 SP 并将多个应用程序连接到它。

【讨论】:

  • 好的.. 这个应用程序将使用 Java。你有没有关于“你可以有一个SP并连接多个应用程序”的参考资料?谢谢!
【解决方案2】:

在查看作为服务提供商 (SP) 以请求安全令牌的架构时,上述答案非常有用。协议的选择很重要。如果您想成为云供应商,SAML 是当前领先且受支持最多的协议。如果这是用于本地集成并且您的技术堆栈是 .NET,那么 WS-Federation(包含 SAML)是协议的另一种选择。

您还询问过,SP 如何将响应结果返回给 Web 应用程序?在联邦的世界中,每个 Web 应用程序通常通过一些 HTTP 会话 cookie 的实现来管理自己的会话。 SSO IdP 服务器有一个会话 cookie,您的 SP Web 应用程序也有自己的会话 cookie。收到 SAMLResponse 后,您的应用程序将验证 SAML(例如数字证书、颁发者、受众等)。如果有效,它将读取“主题”和任何属性,然后为您的应用程序创建 HTTP 会话 cookie。如果您使用某种类型的基于容器的安全模型,则可以将“主题”声明给容器,或者您的应用程序可以读取 HTTP 会话 cookie,或者您可以实现自己的安全模型。

【讨论】:

  • 它可能在 IdP 和 Web 应用程序之间有一个 SP 应用程序来处理 SAMLRequest/SAMLResponse,然后从那里将结果返回给 Web 应用程序以创建自己的安全上下文。在这种情况下,必须修改 Web 应用程序以适应处理(“主题”)的结果和来自 SP 应用程序的任何其他属性。
  • 有许多商业供应商实现让 SP 服务器角色处理 SAMLRequest/SAMLResponse 协议。我经常与 PingFederate 合作,它确实具有 SP 服务器角色。为了在 PingFederate 处理 SAMLResponse 后获得所谓的最后一英里集成到 Web 应用程序,有几个选项,一个被称为无代理参考 ID,它是一组 REST 调用,用于将身份接收到您的 Java 应用程序中。另一个是 Java 代理,它使用 PingFederate OpenToken 将主题移动到您的 Java 应用程序中。
  • 要继续之前的评论......在您的应用程序中,您阅读“主题”,然后断言会话。无代理参考 ID 和 Java 代理都可以移动主题以及来自 SAML 令牌的任何属性。
  • 谢谢埃里克!很高兴听到有这样一个角色,我正在寻找的 SP 服务器角色。无代理参考 ID 概念是否在线可用?
  • 所有 ping 信息都可以在他们的网站上找到。特别是他们的技术的无代理工具包在他们的download page上。
猜你喜欢
  • 2014-11-13
  • 2014-10-27
  • 2015-03-12
  • 2015-12-05
  • 1970-01-01
  • 2010-09-19
相关资源
最近更新 更多