配置服务器远程管理卡(如 idrac、ilo 或 bmc)加入 active directory (ad) 的核心做法是:在管理卡的 web 界面中定位到 ldap/ad 设置项,填入域控制器的 ip 地址、基础 dn (base dn) 以及用于绑定查询的 service account 凭据。启用 ldaps (端口 636) 并确保管理卡信任域 ca 证书后,即可实现基于 ad 用户组的单点登录和权限映射。

如何配置 LDAPS 连接与基础 DN
配置 LDAPS 连接的关键在于解决证书信任问题并正确指定搜索范围。首先,必须从企业内部的 Active Directory 证书颁发机构 (CA) 导出根证书或中间证书,并将其导入到远程管理卡的“证书管理”模块中。只有当管理卡信任该 CA 时,LDAPS 握手才能成功。其次,在填写 Base DN 时,通常建议直接指向存放管理员账户的特定 OU(例如 OU=IT Admins,DC=example,DC=com),而不是整个域名根节点,这样可以缩小 LDAP 查询范围,提高认证响应速度并增强安全性。

import requests
import ssl
# 模拟向 iDRAC/iLO 发送配置请求
url = "https://192.168.1.100/redfish/v1/Systems/1/ManagementProcessor/"
headers = {
"Authorization": "Basic YWRtaW46cGFzc3dvcmQ=",
"Content-Type": "application/json"
}
payload = {
"LdapSettings": {
"ServerAddress": "192.168.1.50",
"Port": 636,
"UseSSL": True,
"BaseDN": "OU=IT Admins,DC=example,DC=com",
"BindDN": "cn=admin_user,cn=Users,DC=example,DC=com",
"SearchFilter": "(sAMAccountName=%s)",
"CertificateThumbprint": "A1B2C3D4E5F6..." # 导入的CA证书指纹
}
}
response = requests.patch(url, json=payload, headers=headers, verify=False)
print(response.status_code)
如何将 AD 组映射为本地角色
将 AD 组映射为本地角色的目的是实现细粒度的权限控制,避免使用本地管理员账号。在管理卡的目录服务设置中,找到“用户映射”或“角色分配”选项。你需要明确指定哪个 AD 组对应哪个本地角色。例如,将 AD 中的 Server-Admins 组映射为管理卡的 Administrator 角色,将 Server-Monitoring 组映射为 Operator 或 ReadOnly 角色。配置完成后,当域用户尝试登录时,系统会根据其所属的 AD 组自动赋予相应的权限级别。

{
"RoleMappings": [
{
"SourceGroup": "CN=Server-Admins,OU=Groups,DC=example,DC=com",
"LocalRole": "Administrator",
"AccessType": "FullControl"
},
{
"SourceGroup": "CN=Server-Monitoring,OU=Groups,DC=example,DC=com",
"LocalRole": "Operator",
"AccessType": "LimitedControl"
}
]
}
配置完成后如何验证 LDAPS 连通性
配置完成后,最直接的验证方法是使用管理卡自带的“测试连接”功能,或者通过命令行工具进行模拟。如果管理卡支持 CLI(如 ipmitool 或厂商专用工具),可以使用 ldapsearch 命令针对配置的 Base DN 和 Bind DN 发起查询。如果返回了预期的用户属性信息且没有 SSL 错误,说明 LDAPS 通道建立成功且权限映射配置正确。此外,还可以尝试使用一个仅属于低权限 AD 组的账户登录管理卡 Web 界面,确认其是否被正确限制为只读或操作员权限,从而验证角色映射逻辑。

















