LDAP介绍
LDAP是基于X.500标准的轻型目录访问协议(Lightweight Directory Access Protocol),它的信息模型基于条目(entry),一个条目是多个属性的集合,并且有一个全局唯一的专有名称DN(Distinguished Name),DN用于明确地引用条目(可以理解为一个目录的绝对路径)。条目的每一个属性都有一个类型和一个或多个值。这些类型通常是便于记忆的字符串,例如“ CN ”表示通用名称(Common Name)、“OU”表示组织单位(Organization Unit)等。在Lightweight Directory Access Protocol (LDAP):String Representation of Distinguished Names RFC4514 中对这些属性有作定义。
String X.500 AttributeType
------ --------------------------------------------
CN commonName (2.5.4.3)
L localityName (2.5.4.7)
ST stateOrProvinceName (2.5.4.8)
O organizationName (2.5.4.10)
OU organizationalUnitName (2.5.4.11)
C countryName (2.5.4.6)
STREET streetAddress (2.5.4.9)
DC domainComponent (0.9.2342.19200300.100.1.25)
UID userId (0.9.2342.19200300.100.1.1)在LDAP中,目录条目以树状分层结构排列。传统上,该树结构反映了地理或组织的边界。
当应用在网络中时,可以基于网络域名进行排列。
举个简单的例子。
例如你需要在一个苹果园中找到某个苹果,那么当前如何对苹果进行定位呢?
首先要确定目标苹果是在哪棵树上(dc),然后记录从树根开始到目标苹果记录的所有分支(ou),最后得到指定的苹果(uid)。
现在定位到这个目标苹果的位置了,它在最大那棵树(biggest)的东边分支(east)的南边分支(south)的西边分支(west)上那个绿色的(green)。
那么LDAP中是如何存储这个苹果的位置呢?
树:dc=biggest
分支:ou=west, ou=south, ou=east
苹果:cn=green
那么这个苹果的位置如下:
dn:cn=green, ou=west, ou=south, ou=east, dc=biggest
用我们常用的文件系统来解释的话,其实就是 biggest/east/south/west/greenBMC端的LDAP配置
openUBMC支持开启或关闭LDAP用户登录功能。要使用LDAP用户登录,必须开启LDAP功能。 openUBMC最多支持连接6台LDAP域服务器(Windows AD, Linux OpenLDAP或FreeIPA), LDAP用户只要通过其中一个域控制器认证即可登录。 LDAP功能各配置项值是否大小写敏感与LDAP服务端相关,为了确保能正常使用openubmc LDAP功能,请配置时确保各配置项大小写与LDAP服务端一致。
基本属性配置
| 属性名 | 说明 | 对应属性 |
|---|---|---|
| LDAP服务器地址 | LDAP服务器的地址。 输入格式:IPv4地址、IPv6地址或域名。 启用证书验证功能后,该处需要配置为LDAP服务器的FQDN(主机名.域名),且需要在网络配置部分配置DNS。 | HostAddr |
| LDAPS端口 | LDAP服务的端口号。 取值范围:1~65535。 默认值:636。 | Port |
| 域名 | 域控制器中定义的LDAP用户所属角色组的域。 | UserDomain |
| 绑定标识名 | LDAP代理用户标识名。 | BindDN |
| 绑定密码 | LDAP代理用户的认证密码。 | BindDNPsw |
| 用户应用文件夹 | 能够登录BMC的LDAP用户在LDAP服务器上所属的目录。 输入节点的格式为:“CN=xxx”、“OU=xxx”或“O=xxx”,当存在多层级节点时,下级节点在前,上级节点在后,依次排列,用半角逗号隔开。 | Folder |
LDAP服务器地址
LDAP服务器地址可以为IPv4、IPv6或域名(FQDN)。
LDAP服务器地址为IPv4或IPv6:
- 必须关闭**证书验证”功能。
- 必须在网络配置-->选择使用的IP协议版本,配置IP中配置支持了对应的IP协议版本(IPv4或IPv6)及对应的IPv4或IPv6地址。
LDAP服务器地址为域名(FQDN):
- 必须在网络配置-->DNS中配置了正确的DNS服务,该DNS服务器必须能正确解析LDAP服务器域名。
LDAPS端口
出于LDAP账号安全考虑,仅支持LDAPS(LDAP over SSL)。openUBMC作为客户端与LDAP服务器通讯时使用的是安全的LDAPS协议,LDAP账号信息在网络上SSL加密传输。LDAPS端口默认值为636,一般不需要修改。
由于只支持LDAPS,不支持无SSL的LDAP(端口号:389),所以LDAP服务器必须安装了证明自身身份可信的服务器证书,与是否开启了LDAP证书验证无关。
域名
用于配置LDAP服务端所在的域。
- LDAP服务端为Windows Active Directory时,openUBMC的LDAP域名配置与Active Directory域相同;
- LDAP服务端为Linux OpenLDAP时, 查看openldap配置文件slapd.conf中的配置: 对应openUBMC的LDAP域名配置则为
bmctest.com。
绑定标识名和绑定密码
绑定标识名为可选配置项。如果需要使用LDAP代理用户(LDAP Proxy User)认证增强LDAP用户认证的安全性时,才需要配置绑定标识名,同时需要配置绑定密码
LDAP代理用户认证功能和LDAP CA证书功能的用途相同:用于确认LDAP服务器的身份,增强登录认证的安全性。因此,LDAP代理用户认证功能和LDAP CA证书功能只需开启一个就可以了。当然,也支持同时开启LDAP代理用户认证和LDAP CA证书。
绑定标识名的配置方法如下:
配置绑定标识名为显示名称(Display Name), 对应openubmc LDAP配置(同时配置绑定标识名及其密码,以及必须正确配置用户搜索文件夹)。
配置绑定标识名为用户登录名(Login Name),对应openubmc LDAP配置(同时配置绑定标识名及其密码,以及必须正确配置用户搜索文件夹)。
配置绑定标识名为DN(Distinguish Name,唯一区别一个用户),对应openubmc LDAP配置(同时配置绑定标识名及其密码,以及必须正确配置用户搜索文件夹),其中“绑定标识名”配置为CN=bmcldapuser,CN=Users,DC=openubmc,DC=com(与LDAP服务端对应)。该项配置遵循以下规则:
CN=bmcldapuser必为CN=xxxx格式,xxxx表示LDAP服务器配置的某用户的全名,即Display Name;
CN=bmcldapuser,CN=Users,DC=openubmc,DC=com中CN,DC字段并非固定,必须与LDAP服务端配置对应即可;
CN和OU的差别:
若LDAP服务端为OU=Users,则openubmc LDAP也必须配置为CN=bmcldapuser,OU=Users,DC=openubmc,DC=com;
若LDAP服务端为CN=Users,则openubmc LDAP也必须配置为CN=bmcldapuser,CN=Users,DC=openubmc,DC=com;
Users为LDAP服务端配置的目录名称,可更改,保持LDAP服务端与openubmc LDAP一致即可。
多级目录的配置:
若LDAP服务器有多级目录CN=Users2,CN=Users1(Users1为Users2的父目录),则openUBMC LDAP也必须配置为CN=bmcldapuser,CN=Users2,CN=Users1,DC=openubmc,DC=com;CN=Users2,CN=Users1中CN参考
CN和OU的差别配置。- DC=openubmc,DC=com为LDAP服务的域名。
注:与LDAP相关的几个重要缩写的说明:
- DN: Distinguished Name的缩写,指一个完整的CN,OU,DC字串,唯一区别一个LDAP用户,比如:CN=bmcldapuser,CN=Users,DC=openubmc,DC=com称为一个DN。
- CN: Common Name的缩写,指一个用户名、用户组名或者一个目录的名称,比如:CN=bmcldapuser,CN=Users。
- OU: Organization Unit的缩写,指一个组织单位目录的名称,比如:CN=openubmc,OU=openUBMC,或者CN=msbmc,OU=IT,OU=openUBMC.
- DC: Domain Name的缩写,指域名,比如:DC=openubmc,DC=com。
用户应用文件夹
使用LDAP用户登录openUBMC时,登录用户在LDAP服务器上用户应用文件夹所定义的目录下搜索用户,能加快登录认证速度。
建议配置“用户搜索文件夹”:可配置为CN=xxx、OU=xxx(xxx表示目录名),或者有多级目录时可配置为CN=xxx,CN=xxx或OU=xxx,OU=xxx。关键是与LDAP服务端配置对应即可。
配置示例
此处赋上配置的一个案例,其中绑定标识名和绑定密码非必填项:
BMC中LDAP证书管理
证书验证
登录LDAP校验时可以选择不启用证书校验或者启用证书验证:
- 不启用证书验证即链接LDAP服务器时,不使用本地CA证书对LDAP域服务器的服务证书进行验证
- 启用证书验证则分为两个校验级别:
- Demand: 若检测到客户端证书错误或没有证书,不允许登录BMC
- Allow: 若检测到客户端证书错误或没有证书,依然允许登录BMC
开启证书验证:
- 当尝试LDAP账号登录时,会先通过证书验证LDAP服务器身份是否可信。如果可信才会进一步校验LDAP账号密码;否则,登录失败。
- 必须将
LDAP服务器地址配置为域名(FQDN)。 - 必须在LDAP域控制器的服务器上导入具有“服务器身份验证”功能的服务器证书,该证书必须是BMC导入的“LDAP CA证书”签发的证书链上的证书。
- 必须在网络配置->DNS中配置了正确的DNS服务,该DNS服务器必须能正确解析LDAP服务器域名。
- 必须在BMC导入正确的CA证书。
证书上传、吊销
此部分已经收编到统一的CA证书管理中,在 用户&安全->证书管理->CA证书管理 页面进行操作。
用户组配置
| 属性名 | 说明 | 对应属性 |
|---|---|---|
| 组名 | LDAP用户所属角色组的名称。 | GroupName |
| 组应用文件夹 | 能够登录BMC的LDAP组在LDAP服务器上所属的目录。 输入节点的格式为:**CN=xxx”、**OU=xxx”或“O=xxx”,当存在多层级节点时,下级节点在前,上级节点在后,依次排列,用半角逗号隔开。 | GroupFolder |
| 角色 | LDAP用户组的权限角色。 | GroupUserRoleId |
| 登录规则 | LDAP组应用的登录规则,对已选择该登录规则的LDAP组进行限制。 | GroupPermitRuleIds |
| 登录接口 | LDAP组使能的登录接口,通过该接口,LDAP组的成员可登录BMC系统。 | GroupLoginInterface |
此处赋上一个配置案例,从登陆接口这一栏可以看到,支持ldap组用户登录的接口有web、redfish和ssh。其中,web支持自动匹配和指定域登录,redfish和ssh都是自动匹配模式。
LDAP组
LDAP服务端添加的用户都会属于某个用户组,登录openUBMC时所使用的用户必须属于该用户组。
LDAP服务端为Windows Active Directory时, openUBMC LDAP用户组配置与Active Directory相同
LDAP服务端为Linux OpenLDAP时,查看openldap中定义用户和组的*.ldif文件, 如图所示,组为
rAdmin。
LDAP组应用文件夹
使用LDAP用户登录openUBMC时,登录用户在匹配用户组时,会在LDAP服务器上LDAP组应用文件夹所定义的目录下搜索用户组,能加快登录认证速度。
建议配置LDAP组应用文件夹:可配置为CN=xxx、OU=xxx,或者有多级目录时可配置为CN=xxx,CN=xxx或OU=xxx,OU=xxx。关键是与LDAP服务端配置对应即可。
LDAP在BMC中的属性
| LDAP相关信息 | BMC中对应的class | 对应路径 | 实际对象属性 |
|---|---|---|---|
| LDAP域控制器 | LDAPController | ||
| 远程用户组 | RemoteGroup |