首页 文章

选择OpenID Connect提供程序

提问于
浏览
0

我需要在我的JAVA Web App中使用OpenID Connect实现SSO . 我已经拥有使用SAML 2.0和WSO2作为身份提供商的SSO经验 .

我很清楚客户端部分,并计划在Spring Security中实现相同的功能 .

我的问题是, does it make sense to build my own Identity provider for OpenID Connect? 由于某些原因,我不想使用任何第三方IDP(如WSO2) .

如果是,是否有任何图书馆可以提供帮助?如果没有, what are the best IDP I can use for OpenIDConnect? Ofcourse,WSO2位于我的列表之上,因为我已经使用WSO2实现了SAML SSO,并且它还支持OpenID连接 .

任何经验或建议都是最受欢迎的 .

1 回答

  • 3

    这个问题的答案并不那么简单 . 但我会尝试总结一些有助于做出决定的关键点 .

    实施内部身份提供者

    • 成本和精力

    你必须自己开发和维护一切 . 这意味着实施遵守RFC6749的规范(OpenID Connect) . 除此之外,您还需要注册客户端,发出令牌,验证令牌和维护令牌状态(已发布的刷新令牌) . 事实上,像Nimbus这样的一些图书馆会派上用场 .

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

    • 维护和支持

    任何内部开发都将提供支持和维护 . 随着时间的推移,错误修复,问题和新功能要求的成本会很高,并且可能需要宝贵的开发人员时

    • 性能和可靠性

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

    使用第三方产品

    • 成本和精力

    根据提供商的不同,它可以是免费的开源或付费工具 . 如果它是已 Build 的产品,那么实施工作就会减少

    • 维护和支持

    现在这取决于服务协议 . 您可能需要支付费用 . 但是你摆脱了维护 . 产品可能缺少您期望它具有的某些功能(例如-1713178_ - 令牌内省 endpoints ) . 例如,MS Azure AD缺少内省 endpoints .

    • 性能和可靠性

    鉴于它是您购买或公开使用的产品并且被许多人使用,商业产品往往具有最佳性能 . 事实上,它们是由领域专家开发的(例如: - 经过所有规范的专业团队)并且可以包含更高的可靠性 .

    P.S -

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

相关问题