api - Keycloak API 总是返回 401

标签 api https access-token keycloak unauthorized

我正在尝试通过其 REST API 与 Keycloak 进行交互。我有主域和默认管理员用户,以及一个测试域。首先,我获得了管理员帐户和测试领域的访问 token :

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
)

这不是包含 token 的正确方法吗?访问 token 是您用来验证其他 API 调用的那个吗?管理员帐户的 token 不应该用于验证对具有主域的其他客户端的调用吗?我必须在管理控制台中更改主领域中的某些设置吗?任何帮助表示赞赏。

最佳答案

我通过在 admin-cli 的设置下启用下面的“启用服务帐户”按钮来修复它
enter image description here

关于api - Keycloak API 总是返回 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882610/

相关文章:

java - HTTP Post 到 API 返回 403 FORBIDDEN

wcf - 在我的 WCF Web 服务中获取 WindowsIdentity

ssl - RSA 服务器证书 apache2

access-token - 请求 oauth2 访问 token 时获取无效范围

Python PRAW 包装器,逻辑问题

javascript - 如何使用游标映射来自 Twitch API 的所有结果 - React

android - android中paypal api的问题

javascript - 异步/等待函数

java - LinkedIn OAuth2/oauth/v2/accessToken 响应未返回 "token_type"

oauth - 如何更新 Intuit QuickBooks 与 .net 应用程序集成的访问 token secret ?