python - 使用 Python 从 Keycloak 检索用户信息时出现客户端错误
问题描述
将 Keycloak 与 python 和烧瓶一起使用来进行身份和访问管理。
这是发生问题的代码部分:
from keycloak import Client
app = flask(__name__)
kc=Client()
.
.
.
app.route('/login')
def login():
.
.
.
access_token = kc.access_token
userinfo = kc.fetch_userinfo(access_token) #the main issue
session['user'] = userinfo
return jsonify(userinfo)
if __name__ == "__main__":
app.run()
所以对于“userinfo”部分,会出现错误:requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: http://localhost:8080/auth/realms/linkedin_login/protocol/openid-connect/userinfo
如果您有使用 keycloak 的经验,您是否知道是否需要更改任何内容才能授权在 keycloak 中使用 userinfo?谢谢!
解决方案
如果您来自 Keycloak 的 Client() 是 KeycloakAdmin 实例(我正在使用https://pypi.org/project/python-keycloak/),则错误可能来自尝试使用管理凭据访问用户信息。
如果您的 Client() 再次是来自(https://pypi.org/project/python-keycloak/)的 KeycloakOpenID,则可能是权限问题。您可以在 keycloak 界面中检查您设置的用户是否设置了角色映射>领域管理>领域管理(或根据您要授予他的权限而设置的等效项)。
无论如何,可以在https://www.keycloak.org/docs/latest/server_admin/index.html找到一个非常有用的文档
最后,这可能是题外话,但如果您从用户信息中访问特定的自定义字段,客户端范围面板将帮助您添加它们。
推荐阅读
- swift - Dart 中是否有类似“Any”类型的 Swift?
- python - 如何从 tfidf_vectorizer 中查看 TF-IDF 值?
- html - 为什么我的带有 javascript 的项目会出现在我的 Nav 前面
- typescript - 使用@babel/plugin-transform-typescript 编译打字稿时如何修复警告
- excel - Excel从另一个具有条件的动态工作簿中提取所有行
- mysql - 如何为特定用户保存日期
- javascript - 活动页面未在对象的嵌套组件中更新
- java - java 6u121 和 kerberos
- android - 三星 Galaxy Note 8 上的 Google ARcore 表面检测
- python - 如何编写此函数和计算集成?