Keycloak :REST API调用通过管理员用户名和密码获取用户的访问令牌

use*_*571 6 keycloak keycloak-rest-api

我有一个要求,我需要获取用户的访问令牌。

我知道管理员用户名和密码,因此可以获得管理员的访问令牌。

是否有任何 REST API 可以为我提供使用上述数据的用户访问令牌?

Sar*_*ang 10

有两种方法可以获取访问令牌。一种带有 Rest 客户端(keycloak Rest API),另一种通过 java keycloak-admin-client 库。

1. Keycloak Rest API:

URI: http://keycloak:8080/auth/realms/myrealm/protocol/openid-connect/token
Type: POST
Content-Type: application/x-www-form-urlencoded
grant_type:password
username:user
password:user_password
client_id:client_id
secret_id:client_secret

2. Keycloak admin client (JAVA)

Keycloak instance = Keycloak.getInstance("http://keycloak:8080/auth", "myrealm", "user", "user_password","client_id", "client_secret");                                                                                                      
TokenManager tokenmanager = instance.tokenManager();
String accessToken = tokenmanager.getAccessTokenString();
Run Code Online (Sandbox Code Playgroud)

  • 由于我们有管理员凭据,我们可以不使用用户密码吗? (3认同)

小智 5

2023 年更新@Sarang 的答案

新版本的 Keycloak 的 url 中不包含 /auth/。Secret_id应该client_secret

邮递员视图