配置ownCloud OpenLDAP身份验证

为了避免创建本地的ownCloud用户帐户,可以配置ownCloud以针对目录系统(例如OpenLDAP或AD)对用户进行身份验证。在本指南中,我们将学习如何配置ownCloud OpenLDAP身份验证。演示正在CentOS 8系统上运行。

通过以下链接了解如何在CentOS 8上设置ownCloud服务器;

在CentOS 8上安装ownCloud服务器

在继续之前,请确保已使用创建的用户帐户运行LDAP服务器。请查看有关如何在CentOS 8上设置OpenLDAP的指南。

在CentOS 8上安装和设置OpenLDAP

配置ownCloud LDAP身份验证

安装所需的模块

ownCloud需要PHP LDAP模块(php-ldap)才能支持LDAP身份验证。要安装php-ldap模块(如果尚未安装),请运行以下命令;

dnf install php-ldap php-process

如果使用其他系统发行版,则可能要检查如何安装PHP LDAP模块。

安装ownCloud LDAP应用程序

一旦安装了PHP LDAP模块,就需要在ownCloud上安装LDAP用户和组后端应用程序。

从下载最新版本的LDAP应用程序 ownCloud市场

下载完成后,解压缩该应用程序。

tar xzf user_ldap-0.14.0.tar.gz

复制 user_ldap 应用程序目录进入ownCloud默认应用程序目录。

cp -r user_ldap /var/www/html/owncloud/apps/

将LDAP应用程序的所有权更改为Web服务器用户和组。

chown -R apache:apache /var/www/html/owncloud/apps/user_ldap

启用ownCloud LDAP应用

LDAP应用程序现已安装但已禁用,要启用它,请以admin登录到您自己的Cloud服务器并导航至Apps管理菜单。 显示禁用的应用

在LDAP Integration App上,单击“启用”。

配置ownCloud OpenLDAP身份验证

该应用现在将显示在已启用的应用页面上。您还应该能够看到 用户认证 标签在左侧面板上的“管理员”菜单中。

ownCloud OpenLDAP

安装OpenLDAP CA证书

如果要通过SSL / TLS设置LDAP连接,则需要在ownCloud服务器上安装CA证书。

从LDAP服务器下载CA证书;

echo -n | openssl s_client -connect ldapmaster.kifarunix-demo.com:636 -showcerts | awk '/-----BEGIN/,/END CERTIFICATE-----/'

将证书从“ -BEGIN CERTIFICATE”复制到“ -END CERTIFICATE”,并将其放在特定文件中,在本指南中,我们使用 /etc/pki/tls/cacert.pem

vim etc/pki/tls/cacert.pem
-----BEGIN CERTIFICATE-----
MIIDvzCCAqegAwIBAgIUc8imlOVhEej453dXtvacn7krg1MwDQYJKoZIhvcNAQEL
BQAwbzELMAkGA1UEBhMCS0UxDDAKBgNVBAgMA05haTEMMAoGA1UEBwwDTWFpMRww
...
...
Uy7ivNi2PL6mBwxMpyi0zTopqTXSvi54APm48dd0JPsGLTIgPMc1WvaN7TsUeIBs
Igf9K1e9M0Q+j2XEsTeCYVU/v0Jt0kER0+V/NM0IrDOX+6kRz6DNsZrwcMEf5Yvp
ARWZ
-----END CERTIFICATE-----

接下来,打开 /etc/openldap/ldap.conf 配置文件并在上方定义证书的位置,如下所示;

vim /etc/openldap/ldap.conf
...
#TLS_CACERT     /etc/pki/tls/cert.pem
TLS_CACERT      /etc/pki/tls/cacert.pem
...

配置SELinux

如果SELinux正在运行,请实施以下策略。

允许HTTPD脚本和模块连接到网络。

setsebool -P httpd_can_network_connect 1

允许HTTPD连接到LDAP

setsebool -P httpd_can_connect_ldap 1

允许nsswitch允许LDAP登录

setsebool -P authlogin_nsswitch_use_ldap 1

启用NIS

setsebool -P nis_enabled 1

您也可以选择完全禁用SELinux。

sed -i 's/=enforcing/=disabled/' /etc/selinux/config

如果选择禁用,请重新启动以应用更改。

systemctl reboot

配置LDAP身份验证

点击 用户认证 开始配置LDAP服务器连接详细信息。

伺服器 标签,输入您的OpenLDAP URI,BInd DN及其密码,Base DN。 确保相应地更换域组件

ownCloud LDAP认证

接下来,点击 用户数 标签并设置用于过滤用户访问权限的对象类。

ownCloud LDAP用户对象类

接下来,点击 登录属性 标签并定义在认证用户时ownCloud将检查OpenLDAP的用户属性。

ownCLoud LDAP登录属性

团体 标签,为您的OpenLDAP用户组定义对象类。

ownCloud LDAP组

您可以单击“高级”和“专家”选项卡以获取更多基本的LDAP连接设置。

另一项设置是设置LDAP用户内部显示名称。 专家级 设置标签,并将值设置为 uid 显示LDAP用户用户ID而不是自动生成的UUID。

ownCloud OpenLDAP用户显示名称。

有关更多信息,请参阅LDAP的ownCloud用户身份验证。

完成设置后,点击 测试配置 确认一切正常,如果一切顺利,您应该在下面显示一条消息。

The configuration is valid and connection could be established!

同步ownCloud LDAP用户

将OpenLDAP用户与ownCloud内部用户数据库同步也很重要,以确保对身份验证后端的用户(例如OpenLDAP)所做的任何更改也将在ownCloud上生效。

可以使用 occ user:sync 命令。

sudo -u apache php /var/www/html/owncloud/occ user:sync "OCAUser_LDAPUser_Proxy" -m disable -r

有关使用的命令行选项的更多说明,请检查 occ用户:同步命令

为此命令创建一个cron作业,使其每天至少运行一次。例如,在本指南中,我们为此任务提供了一个cron作业,该作业每天0600小时运行。

sudo crontab -e
0 6 * * * sudo -u apache php /var/www/html/owncloud/occ user:sync "OCAUser_LDAPUser_Proxy" -m disable -r

测试LDAP用户ownCloud身份验证

如果到目前为止一切顺利,那么该测试一下是否可以以LDAP用户身份登录ownCloud。在本指南中,我们有一个名为, johndoe 在我们的OpenLDAP服务器中。

ldapsearch -H ldapi:/// -Y EXTERNAL -LLL -b "dc=ldapmaster,dc=kifarunix-demo,dc=com" uid=*
dn: uid=johndoe,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: johndoe
cn: John
sn: Doe
loginShell: /bin/bash
uidNumber: 10000
gidNumber: 10000
homeDirectory: /home/johndoe
...

以OpenLDAP用户身份登录ownCloud。

ownCloud LDAP认证

成功登录后,您应该进入ownCloud仪表板。

配置ownCloud OpenLDAP身份验证

很好。您已经成功设置了自己的Cloud服务器以进行OpenLDAP身份验证。

阅读更多 LDAP的ownCloud用户身份验证

Sidebar