oauth2.0 何时在keycloak中创建后端应用程序

zaq34kh6  于 2022-12-11  发布在  其他
关注(0)|答案(1)|浏览(161)

我看到在大多数keycloak教程中建议在keycloak中创建两个客户端,即前端和后端。但我不理解这样做的必要性,因为即使不创建单独的客户端,我也可以使用公钥验证前端提供的JWT令牌。
所以我的问题是,不创建后端应用程序的方法是错误的方法吗?还有什么时候&为什么我们应该在keycloak中创建后端客户端。
参考-https://medium.com/devops-dudes/secure-front-end-react-js-and-back-end-node-js-express-rest-api-with-keycloak-daf159f0a94e

k97glaaz

k97glaaz1#

我看到大多数的keycloak教程都建议在keycloak中创建两个客户端,即前端和后端。但我不明白这有什么必要,因为即使不创建单独的客户端,我也可以使用公钥验证前端提供的JWT令牌。
通常,创建此类教程是为了展示Keycloak的身份验证和授权功能。
认证部分由用户通过浏览器(使用前端客户端)进行认证来展示,而授权部分由应用程序向Keycloak服务器发送访问令牌来展示,其中访问令牌上的声明(* 例如,* 角色)然后可用于推断用户是否具有执行期望动作的许可(* 即,* 授权)。
所以我的问题是,不创建后端应用程序的方法是不是正确的方法?
这取决于您的具体用例。(即,前端客户端),并且在用户成功认证之后,应用将把访问令牌传递到后端。后端然后可以通过直接检查例如访问令牌中的角色来执行授权,而不是依赖Keycloak服务器来完成。这两种方法都有优点和缺点。
还有什么时候&为什么我们应该在keycloak中创建后端客户端。
一个典型的例子是,如果后端是一个单独的微服务,它会触发一些维护任务。假设该任务与用户身份验证过程完全无关,那么拥有一个依赖于client credentials flow which is typically used for machine-to-machine use-cases的单独客户端(在本例中是一个机密客户端)会更有意义。

相关问题