微服务 OAuth2/OpenID 连接流

Microservices OAuth2/OpenID Connect flows

我正在使用微服务架构构建一个新的应用程序平台,但我已经阅读了很多关于不同种类 Authentication/Authorization 的文章。

我正在接受 OAuth2/OpenID 连接,但只是为了确保我的假设是正确的。

我想知道我的流程是否适合处理我的应用程序的 authentication/authorization。 其次,对于我信任的应用程序,如何防止 OAuth 征求用户同意?

就 protocols/standards 而言,为您描述的系统使用 OAuth 2.0 和 OpenID Connect 是正确的决定。它们被积极使用,有大量的库和第三方提供商支持,它们的设计也考虑到了当今系统对 HTTP 的严重依赖。

在为每个应用程序选择正确的流程方面该决定不受应用程序被视为第三方或受信任应用程序的影响;它更多地是关于应用程序的部署特征,以及应用程序是否要代表最终用户或代表应用程序本身访问资源。

检查 Auth0 - Which OAuth 2.0 flow should I use? 以很好地说明此决策过程。

第三方应用程序和受信任应用程序之间的区别由身份provider/authorization服务器自行决定。这通常得到支持,因此如果应用程序 受信任 ,则不会明确征求最终用户的同意;在这些情况下,将应用程序标记为跳过最终用户同意被视为一个管理步骤,在该步骤中,某人单方面和管理性地决定已授予此应用程序同意,因此没有必要向最终用户征求同意。

如果您确实决定支持对某些应用程序的管理许可,请记住,如果这些应用程序的特性不允许它们成为机密客户端(支持安全机制来验证客户端应用程序本身)或确保客户端身份的其他一些方法 然后恶意应用程序可能会尝试伪造 受信任的 应用程序以跳过用户同意步骤 .