因此,在过去的几周里,我一直在为我们的小公司配置 SSO 解决方案。现在我有一台运行 OpenLDAP 2.4.4 和 kerberos(openldap 后端)的服务器。用户可以登录并从 krb 获取票证,此外,使用 SASL,我可以将 Web 应用程序连接到将使用 kerberos 进行身份验证的 LDAP(userPassword 属性为 {SASL}[电子邮件保护])。
一切都很顺利,直到我们需要一个用于用户自助服务的 Web 应用程序(首次激活帐户、重置密码等...),在寻找一些解决方案后,我找到了 PWM(https://github.com/pwm-project/pwm), 设置 PWM 后,我注意到,当尝试更改密码时,PWM 尝试写入“userPassword”属性,但该属性仅指向 OpenLDAP 使用 kerberos 进行身份验证。经过更多搜索后,我找不到任何支持使用 kerberos 身份验证的 ldap 管理的 Web 应用程序,这意味着应用程序将更改 kerberos 密码而不是 OpenLDAP 中的“userPassword”属性。因此,我将“userPassword”更改为保存实际密码,然后使用 smbkrb4pwd,我可以同步 LDAP 和 kerberos 中的密码。我觉得这很棒,但后来我意识到,如果我在 kerberos 中更改密码,LDAP 中的密码不会更改,只有当我在 LDAP 中更改密码时,smbkrb4pwd 才会在 kerberos 中更新它。唉,没问题,我只需将 PAM 配置为使用 ldap 作为“passwd”。
今天我开始设置密码策略,在 LDAP 中完成策略后,我发现我需要在 kerberos 中创建一个单独的策略,难道不能在 LDAP 中使用相同的策略吗?很好。因此,两个密码策略都运行良好,在 X 次尝试失败后帐户被锁定,很好,但后来我发现,如果我在 OpenLDAP 中锁定我的帐户,我仍然可以尝试在 kerberos 中验证身份。
所以我在这里,完全不知道如何继续。有没有 WEB 应用程序知道如何在 kerberos 中更改密码?如何同步 LDAP 和 kerberos 中的帐户锁?
答案1
我找不到任何支持使用 Kerberos 身份验证的 ldap 管理的 Web 应用程序,这意味着该应用程序将更改 kerberos 密码而不是 OpenLDAP 中的“userPassword”属性。
看这个问题,关于覆盖模块,用于保持 samba LDAP 和 Kerberos 密码同步。例如,在 Debian 中,该包名为:
“slapd-smbk5pwd — 在 slapd 中保持 Samba 和 Kerberos 密码同步。”
有没有 WEB 应用程序知道如何在 kerberos 中更改密码?如何在 LDAP 和 kerberos 中同步帐户锁?
- 现在,有一个应用程序在 Univention 企业服务器 UCS 中,用户可以通过 Web 模块更改密码。Linux 发行版使这些复杂的身份验证开箱即用。
免责声明:我为 Univention 工作 =)。