Keycloak public vs 机密客户端
Keycloak public vs confidental client
我有一个前端和后端应用程序(angular + spring 启动)。前端作为静态 Web 内容提供服务,然后将 REST 调用发送到同一端口上的后端 API。
采用OpenID协议的Keycloak用于用户身份验证和角色管理。根据需要身份验证的请求,浏览器被重定向到 Keycloak,用户提供用户名和密码,然后用户角色返回到写入访问令牌的浏览器。
稍后前端在每个请求中发送此访问令牌,后端在完成请求之前根据 Keycloaks public 密钥检查令牌签名。
目前它在 Keycloak 中与一个 public 客户端一起工作正常。但我必须切换到机密客户端。
这怎么可能?我的理解是机密申请需要token请求中的client secret,不能发给浏览器...因为是secret。
有人可以解释一下吗?
您通常倾向于转向 BFF 模式以更好地保护您的 SPA 应用程序,这样您就不必直接在 SPA 应用程序中处理令牌。
请在此处阅读有关 SPA 模式的更多信息:
The BFF Pattern (Backend for Frontend): An Introduction
这个视频也很好地介绍了您必须做的事情:
我有一个前端和后端应用程序(angular + spring 启动)。前端作为静态 Web 内容提供服务,然后将 REST 调用发送到同一端口上的后端 API。
采用OpenID协议的Keycloak用于用户身份验证和角色管理。根据需要身份验证的请求,浏览器被重定向到 Keycloak,用户提供用户名和密码,然后用户角色返回到写入访问令牌的浏览器。
稍后前端在每个请求中发送此访问令牌,后端在完成请求之前根据 Keycloaks public 密钥检查令牌签名。
目前它在 Keycloak 中与一个 public 客户端一起工作正常。但我必须切换到机密客户端。
这怎么可能?我的理解是机密申请需要token请求中的client secret,不能发给浏览器...因为是secret。
有人可以解释一下吗?
您通常倾向于转向 BFF 模式以更好地保护您的 SPA 应用程序,这样您就不必直接在 SPA 应用程序中处理令牌。
请在此处阅读有关 SPA 模式的更多信息:
The BFF Pattern (Backend for Frontend): An Introduction
这个视频也很好地介绍了您必须做的事情: