Spring security 选择OpenID连接提供程序

Spring security 选择OpenID连接提供程序,spring-security,oauth-2.0,single-sign-on,wso2is,openid-connect,Spring Security,Oauth 2.0,Single Sign On,Wso2is,Openid Connect,我需要用OpenID Connect在我的JAVA Web应用程序中实现SSO。我已经有过使用SAML2.0和WSO2作为身份提供者的SSO方面的经验 我对客户机部分很清楚,并计划在Spring Security中实现同样的功能 我的问题是,为OpenID Connect构建自己的身份提供商有意义吗?出于某些原因,我不想使用任何第三方IDP(如WSO2) 如果有,是否有图书馆可以提供帮助?如果没有,我可以为OpenIDConnect使用的最佳IDP是什么?当然,WSO2是我的首选,因为我已经用W

我需要用OpenID Connect在我的JAVA Web应用程序中实现SSO。我已经有过使用SAML2.0和WSO2作为身份提供者的SSO方面的经验

我对客户机部分很清楚,并计划在Spring Security中实现同样的功能

我的问题是,为OpenID Connect构建自己的身份提供商有意义吗?出于某些原因,我不想使用任何第三方IDP(如WSO2)

如果有,是否有图书馆可以提供帮助?如果没有,我可以为OpenIDConnect使用的最佳IDP是什么?当然,WSO2是我的首选,因为我已经用WSO2实现了SAML SSO,而且它还支持OpenID connect


任何经验或建议都是非常受欢迎的。

这个问题的答案并不那么简单。不过,我会尝试总结一些有助于作出决定的要点

实施内部身份提供商
  • 成本和努力
你必须自己开发和维护一切。这意味着实现规范()时要遵守。除此之外,您还需要注册客户端、颁发令牌、验证令牌和维护令牌状态(ex-issued refresh token)。事实上,一些类似的图书馆会派上用场

如果您与第三方打交道,您必须严格遵守规范。而且,这可能会导致更高的开发成本和工作量,具体取决于人才库

  • 维护和支持
任何内部开发都将附带支持和维护。随着时间的推移,Bug修复、问题和新功能需求的成本将越来越高,并且可能涉及宝贵的开发时间

  • 性能和可靠性
正如您所提到的,实现您自己的身份提供商并使其像任何现有产品一样运行是一项挑战。此外,身份提供者应该是可靠的。它必须足够安全以承受安全攻击(特别是当您将其暴露于internet时)。在执行时,应从根本上考虑安全性(例如:令牌签名、访问令牌和刷新令牌熵的安全证书)

使用第三方产品
  • 成本和努力
根据提供商的不同,它可以是免费的、开源的或付费的工具。如果它是一个已建立的产品,那么实施工作就会更少

  • 维护和支持
现在这取决于服务协议。您可能需要支付支持费用。但是你不用维护。产品可能缺少您期望它具有的某些特性(例如,令牌内省端点)。例如,MS Azure AD缺少自省端点

  • 性能和可靠性
考虑到这是一个你购买或公开提供的产品,并且被许多人使用,商业产品往往具有最佳性能。事实上,它们是由领域专家开发的(例如:一个经过所有规范的专门团队),可以包括更高的可靠性

p.S-


不管所有这些考虑因素如何,都可能需要开发和维护内部身份提供者。如果是这种情况,您必须根据相关规范实现它,并使其安全。希望这对你的决定有所帮助。

这个问题的答案并不那么简单。不过,我会尝试总结一些有助于作出决定的要点

实施内部身份提供商
  • 成本和努力
你必须自己开发和维护一切。这意味着实现规范()时要遵守。除此之外,您还需要注册客户端、颁发令牌、验证令牌和维护令牌状态(ex-issued refresh token)。事实上,一些类似的图书馆会派上用场

如果您与第三方打交道,您必须严格遵守规范。而且,这可能会导致更高的开发成本和工作量,具体取决于人才库

  • 维护和支持
任何内部开发都将附带支持和维护。随着时间的推移,Bug修复、问题和新功能需求的成本将越来越高,并且可能涉及宝贵的开发时间

  • 性能和可靠性
正如您所提到的,实现您自己的身份提供商并使其像任何现有产品一样运行是一项挑战。此外,身份提供者应该是可靠的。它必须足够安全以承受安全攻击(特别是当您将其暴露于internet时)。在执行时,应从根本上考虑安全性(例如:令牌签名、访问令牌和刷新令牌熵的安全证书)

使用第三方产品
  • 成本和努力
根据提供商的不同,它可以是免费的、开源的或付费的工具。如果它是一个已建立的产品,那么实施工作就会更少

  • 维护和支持
现在这取决于服务协议。您可能需要支付支持费用。但是你不用维护。产品可能缺少您期望它具有的某些特性(例如,令牌内省端点)。例如,MS Azure AD缺少自省端点

  • 性能和可靠性
考虑到这是一个你购买或公开提供的产品,并且被许多人使用,商业产品往往具有最佳性能。事实上,它们是由领域专家开发的(例如:一个经过所有规范的专门团队),可以包括更高的可靠性

p.S-

不管所有这些考虑因素如何,都可能需要开发和维护内部身份提供者。如果是这种情况,您必须根据相关规范实现它,并使其安全。希望