Keycloak PUT-request returns 401(未授权)
Keycloak PUT-request returns 401 (unauthorized)
我正在使用邮递员,我尝试通过 http://localhost:8180/auth/admin/realms/demo/users/{userID} 更新用户的个人资料,但我收到了 401
响应。
我使用的程序:
已通过 http://localhost:8180/auth/realms/master/protocol/openid-connect/token
请求并收到管理员令牌
添加令牌以请求 headers 适当的方式,即授权:Bearer {access_token}
通过 http://localhost:8180/auth/admin/realms/demo/users/{userID} 发送内容类型为 Json 且用户信息为 body 的 Put 请求。
很遗憾,我收到了 back-to-back 401 条回复。
第一个请求:
-Body(x-www-form-urlencoded)
client_id : admin_cli
username: ...
password: ...
grant_type: password
client_secret: ...
-至http://localhost:8180/auth/realms/master/protocol/openid-connect/token
第二个请求:
-Header -> 授权:Bearer ...
-Body(JSON)
"email": "d@gmail.com",
"firstName": "divad",
"lastName": "d"
-到http://localhost:8180/auth/admin/realms/demo/users/{userID}
在您的第一次通话中,david
用户必须是具有 admin-alike 权限的用户。否则,对于 david
用户无权执行的操作,将获得授权错误响应。查看 this SO thread 了解如何将 admin-alike 权限分配给用户。
现在让我们代表 master admin 用户请求一个令牌,如下所示:
从 body 响应中提取 access_token
.
对于第一个调用,将 access_token
复制并粘贴到 Authorization > Type Bearer Token
:
在第二次调用时,而不是
http://localhost:8180/auth/admin/realms/demo/users/{userID}
您需要将 userID
参数替换为您要更新的用户的实际 userID
。要获得 userID
,您可以调用以下端点:
GET <YOUR_KEYCLOAK_DOMAIN>/auth/admin/realms/<YOUR_REALM>/users/?username=<THE_USERNAME>
或者您可以从 Keycloak 管理控制台复制并粘贴到用户选项卡下:
所以在 Postman 中看起来像:
我正在使用邮递员,我尝试通过 http://localhost:8180/auth/admin/realms/demo/users/{userID} 更新用户的个人资料,但我收到了 401
响应。
我使用的程序:
已通过 http://localhost:8180/auth/realms/master/protocol/openid-connect/token
请求并收到管理员令牌添加令牌以请求 headers 适当的方式,即授权:Bearer {access_token}
通过 http://localhost:8180/auth/admin/realms/demo/users/{userID} 发送内容类型为 Json 且用户信息为 body 的 Put 请求。
很遗憾,我收到了 back-to-back 401 条回复。
第一个请求:
-Body(x-www-form-urlencoded)
client_id : admin_cli
username: ...
password: ...
grant_type: password
client_secret: ...
-至http://localhost:8180/auth/realms/master/protocol/openid-connect/token
第二个请求:
-Header -> 授权:Bearer ...
-Body(JSON)
"email": "d@gmail.com",
"firstName": "divad",
"lastName": "d"
-到http://localhost:8180/auth/admin/realms/demo/users/{userID}
在您的第一次通话中,david
用户必须是具有 admin-alike 权限的用户。否则,对于 david
用户无权执行的操作,将获得授权错误响应。查看 this SO thread 了解如何将 admin-alike 权限分配给用户。
现在让我们代表 master admin 用户请求一个令牌,如下所示:
从 body 响应中提取 access_token
.
对于第一个调用,将 access_token
复制并粘贴到 Authorization > Type Bearer Token
:
在第二次调用时,而不是
http://localhost:8180/auth/admin/realms/demo/users/{userID}
您需要将 userID
参数替换为您要更新的用户的实际 userID
。要获得 userID
,您可以调用以下端点:
GET <YOUR_KEYCLOAK_DOMAIN>/auth/admin/realms/<YOUR_REALM>/users/?username=<THE_USERNAME>
或者您可以从 Keycloak 管理控制台复制并粘贴到用户选项卡下:
所以在 Postman 中看起来像: