【发布时间】:2022-02-21 02:50:54
【问题描述】:
我正在尝试创建一个测试环境,以帮助我使用 kerberos 实现 SSO 身份验证(生产环境是客户,因此我无法直接访问它)。我开始在 docker 中设置自己的环境。应用基于前端的 react 并调用 node.js REST API (express)
我的计划是设置
- 具有用户和组的 LDAP 结构
- 从 node.js 后端访问 LDAP
- 使用带有 LDAP 用户名和密码的回退进行身份验证
- 使用 LDAP 设置 KERBEROS
- 将 pc(win, mac) 添加到域
- 使用来自浏览器的票证验证 kerberos
我成功完成了步骤 1-3。我正在使用OpenLdap 图像作为在 docker 中运行的活动目录(它可以通过域名访问,比如说ldap.example.com)。我可以管理用户和组,也可以使用管理员/技术用户从后端访问 LDAP 并检索数据。我可以使用他的 ldap 用户名 (uid) 和密码对用户进行身份验证。
问题是kerberos。我使用kerberos docker 映像,并尝试将其设置为对 LDAP 用户进行身份验证。
krb5.conf
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = LDAP.EXAMPLE.COM
[realms]
LDAP.EXAMPLE.COM = {
kdc = ldap.example.com
admin_server = admin
}
另一个问题是将 PC 添加到域。我只在mac上试过这个。我可以看到网络帐户服务器并且可以成功添加它,但是当我打开目录实用程序并尝试添加活动目录域时,它会失败并出现一般错误Authentication server could not be contacted。
但主要问题是 LDAP 和 kerberos 映像之间的连接,我尝试了几种配置,但仍然无法弄清楚如何在 kerberos 身份验证中使用 ldap 用户凭据。
【问题讨论】:
-
您是否检查了您的主机文件以获取正确的 ip,并检查了防火墙是否阻止了某些端口或 ip?
标签: node.js reactjs docker kerberos openldap