我正在使用微服务架构构建一个新的应用程序平台,但我一直在阅读很多关于要使用的不同类型的身份验证/授权。
我正在寻求OAuth2 / OpenID Connect,但只是为了确保我的假设是正确的。
我想知道我的流程是否适合处理我的应用程序的身份验证/授权。 其次,对于我信任的应用,我如何阻止OAuth要求用户同意?
答案 0 :(得分:3)
在协议/标准方面,对于像您所描述的系统那样使用OAuth 2.0和OpenID Connect是正确的决定。它们处于活跃状态,有大量的库和第三方提供商支持,它们的设计也考虑到了当今系统对HTTP的严重依赖。
在为每个应用程序选择正确的流程时,决策不会受到被视为第三方或可信应用程序的应用程序的影响;它更多地是关于应用程序的部署特性,以及应用程序是否希望代表最终用户或代表应用程序本身访问资源。
检查Auth0 - Which OAuth 2.0 flow should I use?以便更好地说明此决策过程。
第三方应用程序与可信应用程序之间的区别由身份提供者/授权服务器决定。这通常是受支持的,因此如果应用程序 trusted ,则不会向最终用户明确询问同意。在这些情况下,标记申请以跳过最终用户同意被视为一个管理步骤,其中某人单方面和行政上决定同意被授予此应用程序,因此没有必要向最终用户请求。
如果您确实决定支持某些应用程序的管理许可,请记住,如果这些应用程序的特征不允许它们是机密客户端(支持安全机制来验证客户端应用程序本身)或者有其他应用程序确保客户端身份的方法然后恶意应用程序可能会尝试伪造受信任的应用程序以跳过用户同意步骤。