我有一个关于 Keycloak 和获取访问令牌的问题。
我们的设置如下: · 用户在 Keycloak 中创建和维护 · 资源、策略和权限也在 Keycloak 中维护
我们的用例是:
作为第三方应用程序,我想通过只向 Keycloak 提供用户名来获取特定用户的授权信息(例如基于资源和范围的权限),以便我可以允许或禁止进一步的操作。
更具体地说:在我们的应用程序中,需要根据访问令牌验证对其他服务的每个请求。但我们只有用户名。
现在的问题是:
>我们如何通过只知道用户名来获取用户的访问令牌?
> 有没有办法为这样的用户获取访问令牌?
您没有在问题中指定当前用户是否已登录。您是在验证用户特定操作,还是想检索应用程序的用户角色?
用户已登录并且正在执行某些操作
我想你正在使用一些钥匙斗篷适配器。然后只需检索会话对象,您就应该在其中的某个位置获得额外的信息。
如果没有,您可以自己解析请求。使用 OpenId Connect 时,始终在标头中为每个请求发送访问令牌Authorization。令牌是base64编码的,您可以自己解码令牌。
该应用程序正在为某些注册用户执行某些操作,而无需他登录
用户访问令牌旨在为用户提供权限。正如您在问题中所说:As a third party application, I want...所以在这里您不是作为登录用户,而是作为应用程序,因此您需要使用客户端凭据。只需授予客户端列出所有用户及其角色的权限(可能角色就足够了view-users,请参阅下面的链接)并使用客户端凭据授予登录。然后,您可以在应用程序业务逻辑中处理细粒度的权限。
也可以看看:
| 归档时间: |
|
| 查看次数: |
7335 次 |
| 最近记录: |