authentication - OpenID Connect 和 IDP 发起的 SSO

标签 authentication single-sign-on saml openid-connect

我有一个应用程序,它是一个服务提供商。
是否可以使用 OpenID Connect 实现 Idp 发起的 SSO?
看起来对于 Idp 发起的 SSO 只能使用 SAML,对吗?或者有没有办法让 OpenID Connect 也能工作?
我正在考虑使用一些开源工具,如 Keycloak 或 OneLogin 工具包等。

非常感谢。

最佳答案

当前形式的 OpenID Connect 无法使用安全的 IDP 发起的 SSO。然而,有一个称为 3rd-party-initiated-SSO 的功能,它允许通过 3rd-party 启动身份验证过程,但仍然首先访问 RP。
以下是有关第三方发起的 SSO 的详细信息:
https://openid.net/specs/openid-connect-core-1_0.html#ThirdPartyInitiatedLogin
至于所描述的 IDP-init 建议:一个行为良好的 RP 应该防止这种情况发生 - 因为在技术上它启用 CSRF - 通过使用 state参数或(作为不太受欢迎和不太安全的解决方案)通过将请求状态保存在 cookie 中,这使得 RP 仅在请求/响应往返期间容易受到 CSRF 的攻击。
有一项正在进行的工作描述了 - 除其他外 - 如何使用签名消息以安全的方式扩展 OpenID Connect 来实现真正的 IDP-init-SSO:https://tools.ietf.org/html/draft-bradley-oauth-jwt-encoded-state#section-4.3

关于authentication - OpenID Connect 和 IDP 发起的 SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51050353/

相关文章:

javascript - 停止刷新 token 的竞争条件?

ldap - liferay 7 使​​用 ldap 与 cas 集成

java - CAS 和 SAML2 SSO 示例

mongodb - 无法使用脚本中创建的用户对dockerized mongodb实例进行身份验证

ruby-on-rails - 如何在没有数据库的情况下使用 Rails/Devise?

web-services - 使用 C# 中的 WCF 客户端通过 Internet 代理服务器使用 Web 服务;提供代理服务器身份验证

java - 适合初学者的 SAML 简单示例

基于 Active Directory 的 SAML 身份提供程序

c# - ASP NET API - 使用 Azure AD SAML 协议(protocol)对用户进行身份验证,无需打开 Microsoft 登录页面

digital-signature - 如何验证 SAML 签名值