OIDC IdP 提供者之上的代理接受来自服务提供者的 SSO SAML 请求

Proxy on top of OIDC IdP provider to accept SAML requests from service provider for SSO

上下文: 我们有一个我们无法控制的 OIDC IdP,但我们需要支持来自服务提供商 (SP) 的 SSO SAML 请求。

想法: 构建一个位于 SP 和 OIDC 身份提供商之间的代理(应用程序)。来自 SP 的请求被发送到代理应用程序(充当 SP 的 SAML IdP),代理应用程序将请求转换为 OIDC 请求并将它们转发给 OIDC 提供商。来自 OIDC 提供商的结果返回到代理应用程序,代理应用程序将它们转换为 SAML 响应并将它们转发给 SP。

问题:

我对 SAML IdP 的了解非常有限(实施方面)。这种方法对我来说似乎很老套 :) 感觉有很多事情我没有考虑。因此,对于我做错的地方需要一些帮助和指导。我想问的几件事是:

我们将不胜感激任何形式的帮助。

谢谢!

随着越来越多的服务迁移到 OpenIdConnect,这已成为一个非常普遍的问题,例如SAML 工作流 运行 与 Office365 OIDC 身份验证并行。您的方法非常有道理。

正如您所说,IdP 应该将 OIDC JWT 声明转换为 SAML 属性以供 SP 使用,并且有多种选项可以桥接 SAML 和 OIDC。

如果你想走付费路线,Overt有一个Shibboleth/ADFS bridge with a cloud based IdP

或者您可以安装 'standard' IdP 并开发您自己的桥梁。基本上它会将身份验证委托给 OIDC 提供者并将声明转换为 SAML,可能会增加 LDAP 查找以获取更多属性。

或者您可以使用 'standard' IdP 并在其前面安装 apache 和 mod_auth_openidc 来管理 OIDC 身份验证和声明处理。

至于安全性,只要您相信 OIDC 的声明就没问题。 IdP/SP 的 SAML 元数据已经处理了 SAML 信任。身份验证将由 OIDC 处理,JWT 声明将发送到您的 SAML IdP,因此只要您保护 IdP 和 OIDC 之间的路由,它就应该与 SAML 路由一样安全。

如果 Office365 作为 OIDC 提供商,IdP 将需要注册为租户应用程序,并将索赔发送到其 replyUrl。