何时不使用 OpenId 连接

When not to use OpenId connect

我们正在构建一个还包括 webAPI 的网络应用程序。这些 WebAPI 也需要暴露给其他应用程序(不同子域或第 3 方应用程序上的其他内部应用程序)。我们正在考虑使用 OpenId Connect,这样我们不仅可以提供 access_token 还可以提供 id_token 进行身份验证。

现在问题是 'Should my main application also use openId connect' authentication/authorization。我不赞成这样做。据我了解,只有外部应用程序应该使用 openid connect 来使用主应用程序的资源。内部应用程序(主应用程序以及不同子域上的应用程序)可以使用常规的基于 cookie 的身份验证。

例如,主应用程序是 MyWebApp.com(这也包括 webapi)。其他内部应用程序是 maps.MyWebApp.com、admin.MyWebApp.com、payroll.MyWebApp.com.

其他第 3 方应用程序可以是 OtherWebApp.com。

求推荐。

"Should my main application also use openid connect?" 优点 - 为单点登录铺平道路 - 模块化您的身份验证,因此您无需实施不同的身份验证解决方案。 - 您可以选择从您的主应用程序使用相同的 Web api。 (尽管您可以只使用 oauth2 客户端凭据流程并简单地跳过 openid 连接身份验证部分) 缺点 - 如果您只有一个客户端应用程序,那么这可能有点矫枉过正 - 你通过使它依赖于身份验证服务器应用程序来增加应用程序的复杂性(但模块化也有优势)

我不完全了解你的情况,但我倾向于说是。虽然,我肯定会为您信任的主应用程序关闭 oauth2 的同意屏幕。如果您不使用 openid connect 进行身份验证,那么将您的主应用程序转换为以后使用它应该不会太难