LDAP 联合用户 - 自动将电子邮件验证设置为 true

npe*_*ski 6 configuration jboss keycloak

我在使用 Keycloak 时遇到以下问题:

我启用了 2 个用户联合模块:

  • 一种是默认LDAP 联合(内部用户)

  • 一个是为数据库用户(外部用户)定制编写的联合模块

我还启用了“身份验证”->“所需操作”->“电子邮件验证”选项(我需要为新注册用户启用电子邮件验证)。

问题是我需要从 LDAP(内部用户)获取的现有用户跳过电子邮件验证步骤,但找不到解决此问题的方法。

有任何想法吗?

小智 9

我肯定在聚会上迟到了,但以防万一将来有人在寻找这个。您可以使用硬编码值在用户联合中添加映射器。感谢 @Kvaps 提供的属性名称。

这是我的例子: 截屏

这些从 4.8 开始可用(不确定),并且肯定在 11.0.0(我当前的版本)上工作


kva*_*aps 1

不幸的是,目前还没有办法实现这一目标。

作为肮脏的解决方法,您可以使用 cron 调用的下一个 shell 脚本:

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
Run Code Online (Sandbox Code Playgroud)

该脚本将查找所有具有 的用户emailVerified=false并将值更改为true。

LDAP 服务器设置中的编辑模式应设置为 UNSYNCED 或 WRITABLE。


我也确实需要这个功能,所以我准备了它的功能请求:

https://issues.jboss.org/browse/KEYCLOAK-8727