django - django-keycloak | 将用户名设置为 Keycloak 用户名(而不是 Keycloak ID)
问题描述
我正在将 Keycloak 与 Djnago 集成
但是当我登录 django 时,
user.email
是正确的(keycloak 中存在的内容)
user.username
被设置为 keycloak 的 ID。有没有办法将 djnago 用户名保留为 keycloak 用户名?
解决方案
通常user.username
,实际上是 keycloak 中的用户名,除非您使用的框架具有自定义映射来更改值(sub
在您的情况下很可能使用来自令牌的值)。如果是这种情况,您可以在令牌中添加重复属性以获取用户名,如下所示:
- 使用管理员凭据登录 Keycloak 服务器
- 转到客户端部分并单击您正在处理的应用程序客户端
- 在您的客户页面中选择Mappers子部分
- 单击Add Bultin,选择用户名复选框并保存设置
添加令牌后,您可以使用它来获取用户名。如果名称冲突(当用户名的映射与从令牌获取属性用户名的语法相同时),请添加一个自定义映射器,您可以在其中重命名相同用户名值的属性名称。自定义映射器应类似于:
推荐阅读
- azure-keyvault - 有没有办法重新生成用于访问 Key Vault 的机密?
- php - how to identify php imap client to gmail?
- c# - 我正在使用 C# 上的本地数据库(附图片)一个 throw ex 函数,给了我以下代码。请协助解决错误
- html - 导航栏中的 HTML 幻灯片位置错误
- python - 如何计算熊猫中两列数据帧之间的相关性
- angular - 带括号的角度查询参数?
- python - python函数的变量地址问题
- sql - 在 JSON 中查找某个对象
- azure-devops - TF.exe git 权限登录在管道中失败但在本地正确登录
- random - 如何从一个区间中选择几个随机数?