代码之家  ›  专栏  ›  技术社区  ›  Agam

选择OpenID连接提供程序

  •  0
  • Agam  · 技术社区  · 7 年前

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

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

    我的问题是, 出于某些原因,我不想使用任何第三方IDP(如WSO2)。

    如果有的话,有什么图书馆可以提供帮助吗?如果没有, 我可以为OpenIDConnect使用的最佳IDP是什么?

    欢迎有任何经验或建议。

    1 回复  |  直到 2 年前
        1
  •  3
  •   Community Mofi    3 年前

    实施内部身份提供者

    你必须自己开发和维护一切。这意味着实现规范( OpenID Connect )坚持 RFC6749 此外,您需要注册客户端、发行令牌、验证令牌和维护令牌状态(已发行的刷新令牌)。确实,有些图书馆喜欢 Nimbus 会派上用场的。

    如果您与第三方打交道,您必须严格遵守规范。根据人才库的不同,开发成本和工作量可能会更高

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

    • 性能和可靠性

    正如您所提到的,实现您自己的身份提供者并使其与任何现有产品一样具有挑战性。此外,身份提供者应该是可靠的。它必须足够安全,以承受安全攻击(特别是当您将其暴露在互联网上时)。实现时应从头开始考虑安全性(例如:令牌签名的安全证书、访问令牌和刷新令牌熵)

    • 成本和工作量

    根据供应商的不同,它可以是免费的、开源的或付费的工具。如果它是一个成熟的产品,那么实施工作就会更少

    这取决于服务协议。你可能需要支付支持费用。但是你不用维护。产品可能缺少您期望的某些功能(例如- RFC7662

    • 性能和可靠性

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

    P、 S-

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