【问题标题】:LDAP federated users - automatic set Email Verified to trueLDAP 联合用户 - 自动将 Email Verified 设置为 true
【发布时间】:2016-07-11 12:32:57
【问题描述】:

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

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

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

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

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

问题是 我需要从 LDAP 获得的现有用户(内部用户)跳过电子邮件验证步骤,但找不到工作方法这附近。

有什么想法吗?

【问题讨论】:

  • 你解决了吗,我也遇到了同样的问题?
  • 我真的在为同样的问题苦苦挣扎……有人吗?

标签: configuration jboss keycloak


【解决方案1】:

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

这是我的例子:

这些从 4.8 开始可用(不确定)并且肯定适用于 11.0.0(我当前的版本)

【讨论】:

    【解决方案2】:

    很遗憾,目前还没有办法做到这一点。

    作为肮脏的解决方法,您可以使用 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
    

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

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


    我也很需要这个功能,所以我已经为它准备了功能请求:

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

    【讨论】:

      【解决方案3】:

      作为一个选项,您还可以从客户端范围中删除此信息。 此解决方案适用于某些应用程序,例如 Kubernetes。

      只需转到 Client Scopes --> Mappers,然后从此处删除 email protected

      现在所有新的不记名令牌都没有email_verified 字段

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-29
        • 1970-01-01
        相关资源
        最近更新 更多