【发布时间】:2018-04-03 14:28:39
【问题描述】:
我正在尝试通过其 REST API 与 Keycloak 进行交互。我有主域和默认管理员用户,以及一个测试域。首先,我获得了管理员帐户和测试领域的访问令牌:
let data = {
grant_type : 'password',
client_id : 'test-realm',
username : 'admin',
password : 'admin'
};
let headers = {
'Content-Type': 'application/x-www-form-urlencoded'
};
axios.post(
'https://someurl.com:8080/auth/realms/master/protocol/openid-connect/token',
qs.stringify(data),
headers
)
这行得通。然后我尝试调用创建用户(或执行其他任何操作)并收到 401 未经授权的错误:
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Bearer ${accessToken}`
};
data = {
rep: {
email: "test@email.com",
username: "test@email.com"
},
path: 'test-realm'
};
axios.post('https://someurl.com:8080/auth/admin/realms/test-realm/users',
qs.stringify(data),
headers
)
这不是包含令牌的正确方法吗?访问令牌是您用来验证其他 API 调用的那个吗?管理员帐户的令牌不应该用于验证对具有主域的其他客户端的调用吗?我必须在管理控制台中更改主领域中的某些设置吗?任何帮助表示赞赏。
【问题讨论】:
-
我在使用 SpringBoot 时遇到了同样的问题。这个 SO 线程帮助我解决了问题stackoverflow.com/questions/57477407/…
标签: api https access-token keycloak unauthorized