我有两项服务,并且希望允许用户从一项服务登录另一项服务。然而,作为 IdP 最有意义的服务仅允许 OIDC,而我的其他服务(此处充当 SP)仅接受 SAML。我不拥有这两项服务,因此无法向这些服务添加对 SAML/OIDC 的支持。我们也没有通过 SAML 或类似方式进行任何自动配置,因此这不是问题。
我目前的想法是使用某种中介。 Ping 或 OneLogin 等某种 IdP 解决方案是否可以做到这一点还有待观察,但自定义 Web 服务器可以。
我已经说服自己这会起作用,但是应该吗?有更好的选择吗?除了告诉我的用户这样做可能没有意义,还有其他方法吗?
是什么让这客观上可以或不可以?
您可以使用 FoxIDs - SAML 2.0 / OpenID Connect 桥从 SAML 2.0 SP 桥接到 OpenID Connect (OIDC) OP,或者反过来从 OpenID Connect RP 桥接到 SAML 2.0 IdP。
据我所知,没有任何解决方案可以让您“即时”更改协议。
您必须自己动手,很快就会陷入困境,例如令牌签名、将 OIDC 属性映射到 SAML 属性(不存在一对一关系)、注销等。
最简单的方法是使用允许 OIDC 和 SAML 的外部 IDP,这将为您提供跨应用程序的 SSO。
如果您必须使用当前的 IDP,请将其与可以提供两种协议的 IDP 联合起来。
周围有很多,例如Azure AD、Auth0、Okta 等