我正在使用KeyCloak自动导入现有LDAP中包含的用户。现在,我需要知道KeyCloak如何与LDAP通信。具体来说,KeyCloak如何将密码传递给LDAP以验证用户凭据。
我尝试在互联网上搜索,但是我找不到关于此的论坛、博客或文档。我需要这个来满足我们的安全要求。
我尝试在互联网上搜索,但是我找不到关于此的论坛、博客或文档。我需要这个来满足我们的安全要求。
ldap
和ldaps
协议。Connection URL
设置为ldap://ldapserver.domain.com
时,
使用ldap协议,Keycloak通过端口389(默认情况下)与服务器通信,这意味着从LDAP服务器检索的所有数据都是明文,包括每次进行身份验证请求时的密码。Connection URL
设置为ldaps://ldapserver.domain.com
,将使用LDAP over SSL/TLS
(不要与LDAP+STARTTLS混淆,它是加密LDAP通信的另一种方式),并且Keycloak通过默认端口636与服务器通信。这意味着Keycloak和LDAP服务器之间的所有通信都通过加密的SSL/TLS隧道进行,类似于浏览器和HTTPS
网站之间的通信。14.3.4. 连接到SSL上的LDAP
当您配置安全连接URL到您的LDAP存储(例如ldaps://myhost.com:636),Keycloak将使用SSL与LDAP服务器进行通信。...
关于密码,这似乎是OP特别关注的问题,根据文档,密码按原样发送给提供者,如果使用ldaps
,则通过加密的TLS隧道传输。
14.3.7. 密码哈希
当用户的密码从Keycloak更新并发送到LDAP时,它总是以明文形式发送的。这与将密码更新到内置的Keycloak数据库时不同,在该情况下,哈希和盐被应用于密码,然后才发送到DB。在LDAP的情况下,Keycloak依赖LDAP服务器提供密码的哈希和盐。这里有一些配置示例:one two 当在Keycloak中更新密码并将其推回LDAP时,Keycloak文档继续说明该过程是以明文形式进行的。这有点误导人。如果您使用LDAPS,则在某些情况下确实会将密码作为明文发送,但它会被SSL作为传输层包装。14.3.4. 通过SSL连接到LDAP
当您配置一个已保护的连接URL连接到LDAP存储(例如 ldaps://myhost.com:636),Keycloak将使用SSL与LDAP服务器进行通信。