要使用Keycloak REST API将用户添加到客户端角色,您需要执行以下步骤:
curl -X POST "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=<USERNAME>" \
-d "password=<PASSWORD>" \
-d "grant_type=password" \
-d "client_id=<CLIENT_ID>" \
-d "client_secret=<CLIENT_SECRET>"
请将<KEYCLOAK_DOMAIN>
、<REALM>
、<USERNAME>
、<PASSWORD>
、<CLIENT_ID>
和<CLIENT_SECRET>
替换为您的Keycloak实例的实际值。这将返回一个包含访问令牌的JSON响应。
curl -X GET "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/users?username=<USERNAME>" \
-H "Authorization: Bearer <ACCESS_TOKEN>"
请将<KEYCLOAL_DOMAIN>
、<REALM>
、<USERNAME>
和<ACCESS_TOKEN>
替换为您的Keycloak实例的实际值和之前获取的访问令牌。这将返回一个包含用户信息的JSON响应,从中您可以提取用户ID。
curl -X GET "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/clients/<CLIENT_ID>/roles/<ROLE_NAME>" \
-H "Authorization: Bearer <ACCESS_TOKEN>"
请将<KEYCLOAK_DOMAIN>
、<REALM>
、<CLIENT_ID>
、<ROLE_NAME>
和<ACCESS_TOKEN>
替换为您的Keycloak实例的实际值和之前获取的访问令子。这将返回一个包含角色信息的JSON响应,从中您可以提取角色ID。
curl -X POST "https://<KEYCLOAK_DOMAIN>/auth/realms/<REALM>/users/<USER_ID>/role-mappings/clients/<CLIENT_ID>" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-d '[{"id": "<ROLE_ID>", "scope": "ROLE"}]'
请将<KEYCLOAK_DOMAIN>
、<REALM>
、<USER_ID>
、<CLIENT_ID>、
<ROLE_ID>和
<ACCESS_TOKEN>`替换为您的Keycloak实例的实际值、之前获取的用户ID、客户端角色ID和访问令牌。
领取专属 10元无门槛券
手把手带您无忧上云