企业级AI交互系统OpenWebUI集成LDAP用户权限认证(1)

2025-02-28T18:54:44+08:00 | 6分钟阅读 | 更新于 2025-02-28T18:54:44+08:00

Macro Zhao

企业级AI交互系统OpenWebUI集成LDAP用户权限认证(1)

本文介绍如何安装启用LDAP认证服务,及其用户权限及用户组设置。

推荐超级课程:

@TOC

安装 OpenLDAP

sudo apt install ldap-utils slapd
sudo dpkg-reconfigure slapd

配置 OpenLDAP

以下部分描述了在 OpenLDAP 中配置和注册用户的过程。

  1. [启动服务]
  2. [允许外部连接]
  3. [编辑默认配置]
  4. [配置 root 用户]
  5. [可选:安装管理工具]
  6. [注册新用户]

启动服务

启动 OpenLDAP 服务。

sudo systemctl start slapd.service

启用OpenLDAP服务并在操作系统中初始化它。

sudo systemctl enable slapd.service

允许外部连接

要在 Ubuntu 上启用与 OpenLDAP 的外部连接,您需要向防火墙添加例外。

sudo ufw allow ldap

在 CentOS 上,您需要允许通过防火墙的连接并允许应用程序通过 SELinux 访问 OpenLDAP。

sudo firewall-cmd --permanent --add-port=389/tcp --add-port=389/udp
sudo firewall-cmd --reload
sudo setsebool -P allow_ypbind=1 authlogin_nsswitch_use_ldap=1
sudo setsebool -P httpd_can_connect_ldap on

编辑默认配置

在使用 OpenLDAP 服务器之前,您必须确保该服务器已正确配置。 因此,您应该检查写入文件ldap.conf的默认配置。

  1. 在您喜欢的文本编辑器中ldap.conf打开该文件。 这两个 Linux 发行版都nano默认安装了文本编辑器。您可以使用以下命令在终端中编辑此文件:

    Ubuntu

    sudo nano /etc/ldap/ldap.conf
    

    CentOS

    sudo nano /etc/openldap/ldap.conf
    
  2. 取消注释以下内容:

    BASE     dc=example,dc=com
    URI      ldap://ldap.example.com ldap://ldap-master.example.com:666
    
  3. 编辑这些条目BASE以替换您的域名以及URILDAP 服务器的完全限定域名或 IP 地址。 例如,有以下几种:

    BASE     dc=team,dc=ai,dc=com
    URI      ldap://team.ai.com
    
  4. 按 Ctrl + XY并输入,然后在 nano 中保存并关闭文件。

配置 root 用户

要在 LDAP 中执行管理任务,您必须更改 LDAP 根用户。在 LDAP 条目中,该用户olcRootDN被称为用户。

要更改 OpenLDAP,您必须创建一个 LDIF 文件,其中包含有关您想要在 LDAP 服务器上更改的内容的信息。请勿手动编辑/etc/ldap/slapd.d该目录或其中的 LDIF 文件。/etc/openldap/slapd.d

您需要在任何文件夹中创建一个 LDIF 文件,在您的用户文件夹中创建它并将所有内容放在该文件中。 然后ldapadd运行该工具将 LDIF 文件应用到服务器。

以下步骤将更改 LDAP 默认根用户,使其能够管理服务器中的所有条目。

  1. 为 root 用户创建密码。

    slappasswd
    

    输入并确认密码。 此命令{SSHA}yh/GrT7AsObYUoHu89ynjzOljpBP10sp应输出密码哈希,例如: 复制输出并将其保存到文本文件。

  2. 使用您喜欢的文本编辑器rootpw.ldif创建文件。

    nano rootpw.ldif
    
  3. 输入以下内容:

    dn: olcDatabase={0}config,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}yh/GrT7AsObYUoHu89ynjzOljpBP10sp
    

    {SSHA}yh/GrT7AsObYUoHu89ynjzOljpBP10sp``slappasswd用您从命令中获得的哈希值替换。

  4. 应用更改。

    ldapadd -Y EXTERNAL -H ldapi:/// -f rootpw.ldif
    
  5. 使用以下命令导入基本 LDAP schema:

    Ubuntu

    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/openldap.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dyngroup.ldif
    

    CentOS

    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
    
  6. 配置对 LDAP 服务器的访问并为该服务器配置管理员用户。manager.ldif创建文件。

    nano manager.ldif
    
  7. 输入以下内容:

    dn: olcDatabase={1}monitor,cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=team,dc=ai,dc=com" read by * none
    
    dn: olcDatabase={2}mdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=team,dc=ai,dc=com
    
    dn: olcDatabase={2}mdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=Manager,dc=team,dc=ai,dc=com
    
    dn: olcDatabase={2}mdb,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}yh/GrT7AsObYUoHu89ynjzOljpBP10sp
    
    dn: olcDatabase={2}mdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {0}to attrs=useteamssword,shadowLastChange by dn="cn=Manager,dc=team,dc=ai,dc=com" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=Manager,dc=team,dc=ai,dc=com" write by * read
    
    • olcRootPW替换为您使用该工具获取的密码slappasswd哈希。

    • dc=team,dc=ai,dc=com用您自己的base DN 替换。

    • **✪ 提示:**在 Ubuntu 上,您可能必须更改为olcDatabase={2}mdbolcDatabase={1}mdb 使用以下命令的输出来确定文件的名称。

      ls /etc/ldap/slapd.d/cn=config/
      
  8. 应用设定:

    ldapmodify -Y EXTERNAL -H ldapi:/// -f manager.ldif
    
  9. 创建一个新的 LDIF 文件以创建组织组。

    nano org.ldif
    
  10. 输入以下内容:

dn: dc=team,dc=ai,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: ai team Server
dc: team

dn: cn=Manager,dc=team,dc=ai,dc=com
objectClass: organizationalRole
cn: Manager
description: LDAP Manager

dn: ou=teamusers,dc=team,dc=ai,dc=com
objectClass: organizationalUnit
ou: teamUsers
  • dc=team,dc=ai,dc=com用 base DN 替换。
  • team您可以更改群组及其teamUsers名称。 ai team 不要求用户组具有唯一的名称。
  1. 将内容应用于管理员用户。
ldapadd -x -D cn=Manager,dc=team,dc=ai,dc=com -W -f org.ldif

系统将提示您输入 LDAP 密码。输入为 LDAP 根用户定义的纯文本密码。

可选:安装管理工具

OpenLDAP 包含几个客户端工具,您可以使用它们通过终端管理服务器。 但是,对于初学者或不熟悉 CLI 的用户来说,这些工具可能很难。

OpenLDAP 开发人员不分发或认可任何图形用户界面工具,但有几种替代管理工具(例如Apache Directory Studio)可供您安装以管理 LDAP 服务器。

这是一个可选步骤,但如果您想使用图形用户界面管理 LDAP 服务器,建议执行此步骤。

Apache™ Directory Studio

Apache™ Directory Studio是一个由 Eclipse™ 平台提供支持的 LDAP 服务器桌面客户端。该平台允许您无需使用终端即可查看、编辑和创建 LDAP 服务器中的条目。

**❕重要提示:**您必须安装 Java 运行时环境才能运行此应用程序。要运行此应用程序,您至少需要 JDK 11。它也适用于 Windows™。

  1. 下载并安装Apache Directory Studio 🡥 。
  2. 打开应用程序。
  3. 单击工作台按钮。
  4. 在顶部菜单中,单击文件 > 新建。
  5. 展开LDAP 浏览器目录,选择LDAP 连接,然后单击下一步。
  6. 在“连接名称”LDAP server中,输入连接的名称(例如,
  7. 在主机名中,输入您的 LDAP 服务器的地址。
  8. 在加密方法中,输入用于 LDAP 连接的加密类型。 在本教程中,LDAP 服务器上没有加密,但建议您为 LDAP 连接添加加密。
  9. 单击**“下一步” 。**
  10. 输入LDAP 服务器所需的身份验证方法。 在此示例中,LDAP 服务器使用简单身份验证
  11. 输入绑定 DNcn=Manager,dc=team,dc=ai,dc=com 。例如,这是您配置为 LDAP 管理员的用户。
  12. 输入 LDAP 管理员用户的密码。
  13. 单击**“完成”即可连接到服务器。**

注册新用户

LDAP 条目排列成称为目录信息树 (DIT) 的树状结构。 该树中的每个项目都通过一个可分辨名称 (DN) 进行标识。 DN 由 DIT 中的条目规范组成。 例如,team.ai.com某个域中的用户john可以按以下方式识别:

cn=john,dc=team,dc=ai,dc=com

cn字段是一个通用名称,最常用于表示树中的单个对象。dc该字段是用于标识 LDAP 域名组件的域组件。

john如果teamusers它是某个组的一部分,这将是 LDAP 条目。

cn=john,ou=teamusers,dc=team,dc=ai,dc=com

ou字段是用于对 LDAP 服务器中的其他条目进行分组的组织单位。

有关这些对象 ID 的更多信息,请参阅[LDAP OID 参考指南 🡥 。

用户具有可以在 LDAP 条目中注册的属性。 这些属性可以对应用户的电子邮件、密码、位置等。 ai team 要求平台内的用户拥有电子邮件地址、用户名和密码。

要在 LDAP 服务器中注册新用户,ldapmodify您需要创建一个具有所有属性的 LDIF 文件并运行该工具来注册该用户。 以下步骤将详细介绍整个过程以及每个用户在平台内需要具备的属性。

  1. 创建一个新的 LDIF 文件。

    nano addUserName.ldif
    

    addUserName替换为您要添加的用户的名称。

  2. 为用户输入以下内容:

    dn: cn=User Name,dc=team,dc=ai,dc=com
    changetype: add
    objectClass: inetOrgPerson
    objectClass: organizationalPerson
    objectClass: person
    objectClass: top
    uid: username
    cn: User Name
    sn: Name
    displayName: User Name
    mail: username@example.com
    useteamssword: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
    • dc=team,dc=ai,dc=com用基本 DN 替换。
    • sn中,输入用户的姓氏。
    • uid中,输入用户的用户名。
    • displayName在 中,输入用户的显示名称。
    • mail中,输入用户的电子邮件地址。
    • useteamssword``slappasswd输入您使用命令获取的用户密码的哈希值。
  3. 输入以下命令来注册用户:

    ldapadd -D "cn=Manager,dc=team,dc=ai,dc=com" -W -f addUserName.ldif
    

PLA (phpldapadmin) LDAP管理工具

phpLDAPadmin 是一个基于Web的LDAP服务器管理工具。

以下是安装步骤:


docker pull leenooks/phpldapadmin:2.0.0-dev

通过环境变量设置LDAP服务器连接等信息: Environment variables: Configuration-Variables

© 2011 - 2025 Macro Zhao的分享站

关于我

如遇到加载502错误,请尝试刷新😄

Hi,欢迎访问 Macro Zhao 的博客。Macro Zhao(或 Macro)是我在互联网上经常使用的名字。

我是一个热衷于技术探索和分享的IT工程师,在这里我会记录分享一些关于技术、工作和生活上的事情。

我的CSDN博客:
https://macro-zhao.blog.csdn.net/

欢迎你通过评论或者邮件与我交流。
Mail Me

推荐好玩(You'll Like)
  • AI 动·画
    • 这是一款有趣·免费的能让您画的画中的角色动起来的AI工具。
    • 支持几十种动作生成。
我的项目(My Projects)
  • 爱学习网

  • 小乙日语App

    • 这是一个帮助日语学习者学习日语的App。
      (当然初衷也是为了自用😄)
    • 界面干净,简洁,漂亮!
    • 其中包含 N1 + N2 的全部单词和语法。
    • 不需注册,更不需要订阅!完全免费!
  • 小乙日文阅读器

    • 词汇不够?照样能读日语名著!
    • 越读积累越多,积跬步致千里!
    • 哪里不会点哪里!妈妈再也不担心我读不了原版读物了!
赞助我(Sponsor Me)

如果你喜欢我的作品或者发现它们对你有所帮助,可以考虑给我买一杯咖啡 ☕️。这将激励我在未来创作和分享更多的项目和技术。🦾

👉 请我喝一杯咖啡

If you like my works or find them helpful, please consider buying me a cup of coffee ☕️. It inspires me to create and share more projects in the future. 🦾

👉 Buy me a coffee