【发布时间】:2018-09-09 08:51:32
【问题描述】:
首先,我对 Keycloak 很陌生,如果我问的问题可能有问题,请原谅。
我已经安装了 Keycloak 服务器,我可以使用以下方法访问 Web UI:
我的要求是通过将领域用户传递给 k 来验证它 Keycloak API 并从那里获取令牌作为响应,然后将此令牌传递给我的其他 Web API 调用。
但我无法找到一个简单的指南来说明如何做到这一点......
更新:
使用来自KEYCLOAK的用户界面:
到目前为止:
我可以创建一个
realm: 例如:DemoRealm在
Realm下我创建了客户端: 例如:DemoClient在客户端下我创建了用户: 例如:
DemoUser
使用POSTMAN:
我也可以使用成功获取令牌
http://localhost:8080/auth/realms/DemoRelam/protocol/openid-connect/token
POST:
{
"grant_type": "client_credentials",
"username": "",
"password": "",
"client_secret":"",
"client_id":"DemoClient"
}
作为回应,我得到了令牌。
{
"access_token": "eyJhbGciOiJSUzI1NiIsINVSHGhepnDu13SwRBL-v-y-04_6e6IJbMzreZwPI-epwdVPQe-ENhpvms2WdGM_DmgMLZ8YQFS4LDl9R7ZHT8AgXe-WCFV6OFkA7zvdeFwQ4kVVZE0HlNgHgoi4DrgMfwwz_ku1yJNJP3ztTY1nEqmA",
"expires_in": 300,
"refresh_expires_in": 1800,
"refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJRRnB5YlloMGVEektIdlhOb3JvaFUxdlRvWVdjdP3vbfvk7O0zvppK9N4-oaUqZSr0smHv5LkuLDQYdPuxA",
"token_type": "bearer",
"not-before-policy": 0,
"session_state": "bb1c586a-e880-4b96-ac16-30e42c0f46dc"
}
此外,我深入研究了更多细节并找到了这个 API 指南:
http://www.keycloak.org/docs-api/3.0/rest-api/index.html#_users_resource
在本指南中提到我可以使用 获取用户 返回用户列表,根据查询参数过滤
GET /admin/realms/{realm}/users
但是当我使用POSTMAN 来获取用户时,我收到了 403 错误代码。我传递的令牌与我在前面步骤中获得的身份验证相同。
http://localhost:8080/auth/admin/realms/DemoRelam/users
有人可以指导我吗?
【问题讨论】:
-
你的意思是你刚刚安装了keycloak并在它没有与我们的应用程序集成时运行它?如果您会在 Internet 和 keycloak 文档中看到太多可用的东西,如何将 keycloak 与 Web 应用程序集成
-
@SubodhJoshi 我不想将 keycloak 与 Web 应用程序集成。我将在 relam 下传递用户/客户端并获取令牌并将此令牌传递给其他一些 api,我将再次验证此令牌
-
使用 ui 可能无法使用 keycloak rest api 或 admin-cli。
-
@SubodhJoshi 我已经用我到目前为止所取得的成就更新了我的问题,你能帮帮我吗。
-
我认为这会对您有所帮助。已获得访问令牌,但不知道如何使用邮递员进行测试。 > 您应该只需要在 Postman 中添加授权标头,获得访问令牌但不知道如何使用 postman 进行测试。 > 你应该只需要在 Postman 中添加授权标头,stackoverflow.com/questions/24709944/… 我发现这个看看它是否对你有帮助,否则我只能在早上写正确的答案我现在正在使用我的手机发表评论。
标签: java keycloak keycloak-services