KEYCLOAK:仅通过 'user name' 获取访问令牌(无密码)
KEYCLOAK: Obtaining Access token by 'user name' only (without password)
我对 Keycloak 和获取访问令牌有疑问。
我们的设置如下:
· 用户在Keycloak中创建和维护
· 资源、策略和权限也在Keycloak
中维护
我们的用例是:
作为第三方应用程序,我想通过仅向 Keycloak 提供用户名来获取特定用户的授权信息(例如,基于资源和范围的权限),以便我可以允许或禁止进一步的操作。
更具体地说:
在我们的应用程序中,需要根据访问权限验证对其他服务的每个请求 token.But 我们只有用户名。
现在的问题是:
>我们如何只知道用户名就可以获取用户的访问令牌?
>
是否有为此类用户获取访问令牌的解决方案?
如果当前用户已登录,您没有在问题中指定。您是在验证用户特定的操作,还是想检索应用程序的用户角色?
用户已登录并正在执行某些操作
我想你正在使用一些 keycloak 适配器。然后只需检索 session object,您应该在其中某处获得额外信息。
如果没有,您可以自己解析请求。使用 OpenId Connect 时,始终会在 Authorization
header 中为每个请求发送访问令牌。 token是base64编码的,你可以自己解码。
应用程序正在为某个注册用户执行一些操作,但他没有登录
用户访问令牌旨在为用户提供权限。正如您在问题中所说: As a third party application, I want...
所以在这里您不是作为登录用户,而是作为应用程序,因此您需要使用客户端凭据。只需授予客户端列出所有用户及其角色的权限(使用 view-users
角色可能就足够了,请参阅下面的 link)并使用客户端凭据授权登录。然后您可以在您的应用程序业务逻辑中处理细粒度的权限。
另请参阅:
对于那些真正需要从客户端模拟用户的人,有一个新的 RFC:token-echange。
Keycloak loosely implement it 在回答时
具体见https://www.keycloak.org/docs/latest/securing_apps/#direct-naked-impersonation
我对 Keycloak 和获取访问令牌有疑问。
我们的设置如下: · 用户在Keycloak中创建和维护 · 资源、策略和权限也在Keycloak
中维护我们的用例是:
作为第三方应用程序,我想通过仅向 Keycloak 提供用户名来获取特定用户的授权信息(例如,基于资源和范围的权限),以便我可以允许或禁止进一步的操作。
更具体地说: 在我们的应用程序中,需要根据访问权限验证对其他服务的每个请求 token.But 我们只有用户名。
现在的问题是:
>我们如何只知道用户名就可以获取用户的访问令牌?
> 是否有为此类用户获取访问令牌的解决方案?
如果当前用户已登录,您没有在问题中指定。您是在验证用户特定的操作,还是想检索应用程序的用户角色?
用户已登录并正在执行某些操作
我想你正在使用一些 keycloak 适配器。然后只需检索 session object,您应该在其中某处获得额外信息。
如果没有,您可以自己解析请求。使用 OpenId Connect 时,始终会在 Authorization
header 中为每个请求发送访问令牌。 token是base64编码的,你可以自己解码。
应用程序正在为某个注册用户执行一些操作,但他没有登录
用户访问令牌旨在为用户提供权限。正如您在问题中所说: As a third party application, I want...
所以在这里您不是作为登录用户,而是作为应用程序,因此您需要使用客户端凭据。只需授予客户端列出所有用户及其角色的权限(使用 view-users
角色可能就足够了,请参阅下面的 link)并使用客户端凭据授权登录。然后您可以在您的应用程序业务逻辑中处理细粒度的权限。
另请参阅:
对于那些真正需要从客户端模拟用户的人,有一个新的 RFC:token-echange。
Keycloak loosely implement it 在回答时
具体见https://www.keycloak.org/docs/latest/securing_apps/#direct-naked-impersonation