我遇到了以下问题:我启用了2个用户联盟模块:
我还启用了“身份验证”-〉“所需操作”-〉“电子邮件验证”选项(我需要为新注册的用户启用电子邮件验证)。问题是我需要从LDAP获得的现有用户(内部用户)以跳过电子邮件验证步骤,但找不到解决此问题的方法。有什么想法吗?
7uzetpgm1#
我肯定是迟到了,但万一有人在未来搜索这个。你可以在你的用户联盟中添加一个带有硬编码值的Map器。感谢@Kvaps提供的属性名称。下面是我的例子:
从4.8(不确定)开始就可以使用这些,并且可以在11.0.0(我的当前版本)上使用。
vhipe2zx2#
作为一个选项,你也可以从客户端范围中删除此信息。此解决方案在一些应用程序中运行良好,例如Kubernetes。只需转到客户端作用域-〉Map器,并从此处删除已验证的电子邮件。现在,所有新的不记名令牌都将没有email_verified字段
email_verified
nlejzf6q3#
不幸是,现在还没有办法做到这一点。您可以使用cron调用的下一个shell-script来解决这个问题:
SERVER=http://localhost:8080/auth USER=admin PASSWORD=aiPh5ohngai1xoo0eeWa REALM=master KCADM=/opt/keycloak/bin/kcadm.sh KEYS="--server $SERVER --realm $REALM --user $USER --password $PASSWORD" USERS=$($KCADM get users $KEYS | jq -r '.[] | select(.emailVerified == false ) | .id') for ID in $USERS; do $KCADM update users/$ID $KEYS -s emailVerified=true done
此脚本将查找具有emailVerified=false的所有用户,并将值更改为true。LDAP服务器设置中的“编辑模式”应设置为“不同步”或“可写”。我也确实需要这个功能,所以我准备了功能请求:https://issues.jboss.org/browse/KEYCLOAK-8727
emailVerified=false
true
bfrts1fy4#
转到ldap配置页面,在高级设置中将信任电子邮件选项设置为true.查看此处〉〉ldap advanced settings现在,所有导入的用户都将具有email-verified = true
4条答案
按热度按时间7uzetpgm1#
我肯定是迟到了,但万一有人在未来搜索这个。你可以在你的用户联盟中添加一个带有硬编码值的Map器。感谢@Kvaps提供的属性名称。
下面是我的例子:
从4.8(不确定)开始就可以使用这些,并且可以在11.0.0(我的当前版本)上使用。
vhipe2zx2#
作为一个选项,你也可以从客户端范围中删除此信息。此解决方案在一些应用程序中运行良好,例如Kubernetes。
只需转到客户端作用域-〉Map器,并从此处删除已验证的电子邮件。
现在,所有新的不记名令牌都将没有
email_verified
字段nlejzf6q3#
不幸是,现在还没有办法做到这一点。
您可以使用cron调用的下一个shell-script来解决这个问题:
此脚本将查找具有
emailVerified=false
的所有用户,并将值更改为true
。LDAP服务器设置中的“编辑模式”应设置为“不同步”或“可写”。
我也确实需要这个功能,所以我准备了功能请求:
https://issues.jboss.org/browse/KEYCLOAK-8727
bfrts1fy4#
转到ldap配置页面,在高级设置中将信任电子邮件选项设置为true.查看此处〉〉ldap advanced settings
现在,所有导入的用户都将具有email-verified = true