SSO - 如何从 Intranet (SAML 2.0) 自动登录到外部网站?

Posted

技术标签:

【中文标题】SSO - 如何从 Intranet (SAML 2.0) 自动登录到外部网站?【英文标题】:SSO - how to automatically log into an external website from an intranet (SAML 2.0)? 【发布时间】:2011-09-05 13:22:59 【问题描述】:

一位客户多年来一直使用我们的 php Web 应用程序,但现在想要一个单点登录解决方案 (SSO)。

他们有一个公司内部网,他们可以在其中登录,并且他们希望使用相同的登录作为我们的网络应用程序(在外部域上)的自动身份验证。

他们谈论的是 SAML 2.0,我之前从未听说过。

我搜索了互联网,但很难理解所有不同的概念(身份提供商等)。所有关于该主题的网站似乎都需要一些我没有的基本知识。我不明白必须如何以及在何处存储身份验证数据......(似乎是在来自 cookie 的 post-data 中,但是第一次开始执行此操作时如何在任何地方获取身份验证 xml?!)

有人可以针对这种特定情况指出一些方向吗?

【问题讨论】:

【参考方案1】:

这是一个关于 SAML 的高级概述视频,它将为您提供全局:http://youtu.be/gUmMcecHN9s

如果你想要更多的技术介绍,我建议官方执行摘要:http://www.oasis-open.org/committees/download.php/13525/sstc-saml-exec-overview-2.0-cd-01-2col.pdf

它的基本原理是,通常将经过数字签名的 XML 数据块从 IdP(身份提供者)传递到 SP(服务提供者),以告知其用户已通过身份验证并且他们应该被信任。 IdP 和 SP 之间需要进行带外初始设置以相互信任并就将共享哪些信息(用户 ID、属性等)达成一致。

要使 SAML 2.0 正常工作,有许多选项 - 包括商业选项(例如来自 Ping Identity -http://www.pingidentity.com/),它们非常棒,可以为您节省大量精力并提供商业支持。还有其他选择,例如构建您自己的库或使用开源库 - 只要您有更多时间在手上,而且这是一次性的问题。

【讨论】:

以上是关于SSO - 如何从 Intranet (SAML 2.0) 自动登录到外部网站?的主要内容,如果未能解决你的问题,请参考以下文章

SSO 和 IdentityServer 以及需要 SAML 和 JWT 的服务

SSO:SAML与LDAP?

如何在多租户环境中自动选择配置的 SAML 身份提供程序以使用 Spring SAML 进行 SSO

无法从使用 Azure SAML SSO 配置的本地应用程序中的 C# 中的 Request.Params 获取 SAML 响应

如何在身份提供者 (IdP) 发起的 SAML sso 中维护状态参数?

在 asp.net 中使用 SAML 2.0 的 SSO