我们想在 Landscape 服务器上实现 LDAP 身份验证。Landscape 文档说这是可行的,但我们没有找到任何解决方案。
答案1
LDAP 功能只能在 Landscape 服务器安装过程中启用,而不能在后续阶段启用。以下是如何使用当前最新的 Ubuntu LTS 16.04 和 Landscape 服务器版本 17.03 完成该操作的说明。
让我们开始安装 LDAP 可插入身份验证模块。
sudo apt install libpam-ldap
我们需要
/etc/ldap.conf
根据您的需求/设置/要求进行相应的修改。vim /etc/ldap.conf
并添加以下配置,更改所需的内容
base OU=XX,DC=XX,DC=XX uri ldap://ip.of.ldap.server ldap_version 3 # we need an authenticated user to search the directory binddn CN=<your user>,OU=XX,DC=XX,DC=XX bindpw <above password> scope one pam_filter objectclass=person pam_login_attribute userPrincipalName pam_password ad ssl off
为了激活 pam 插件,请创建 /etc/pam.d/landscape 文件并包含以下行:
vim /etc/pam.d/landscape
并粘贴
#%PAM-1.0 auth required pam_ldap.so account required pam_ldap.so
导航到 Landscape 安装的根 URL 并创建管理员。您会注意到将出现一个身份字段。这将
pam_login_attribute
与您的 中指定的相匹配ldap.conf
。
答案2
尽管我的 ldap/pam 设置很好,但我还是无法弄清楚为什么它不起作用,我一直收到此错误:
Nov 17 15:36:28 hostname python[31175]: pam_ldap: missing file "/etc/ldap.conf"
Nov 17 15:36:28 hostname python[31175]: pam_ldap: missing file "/etc/ldap.conf"
然后我意识到景观服务正在以“景观”用户身份运行,并且/etc/ldap.conf
权限不允许景观访问它。
我像这样重置权限以允许组 RW 访问
root@hostname:/opt/canonical/landscape# chmod 0770 /etc/ldap
root@hostname:/opt/canonical/landscape# chgrp -R landscape /etc/ldap
root@hostname:/opt/canonical/landscape# chmod 0660 /etc/ldap/ldap*
我现在可以使用 AD 凭证对景观进行身份验证。
另请注意,我为 ldap.conf 选择了这些值
pam_login_attribute sAMAccountName
pam_filter objectclass=User
pam_password ad
我有一个像这样的 ldap.conf 符号链接
lrwxrwxrwx 1 root root 19 Nov 17 12:37 /etc/ldap.conf -> /etc/ldap/ldap.conf