LDAP 认证逻辑

LDAP 认证过程包含若干关键步骤。

  1. 必须定义 LDAP 服务器和系统参数。
  2. 必须在该 LDAP 服务器上定义存储系统用户。 存储系统搜索已认证的用户时会使用此用户。 稍后,会引用此用户作为系统已配置的服务帐户。
  3. LDAP 用户需要一个在其中存储了存储系统用户角色值的属性。
  4. 必须定义 LDAP 用户属性与存储系统用户角色之间的映射。
  5. 必须对存储系统启用 LDAP 认证。
一旦配置并启用了 LDAP,就会向预定义的用户授予由 LDAP 服务器而不是 存储系统自身认证的登录凭证。
图 1. 登录到指定的 LDAP 目录
用户登录至存储系统之后,LDAP 服务器会登录至指定的 LDAP 目录,并使用检索到的成员资格数据以将该用户与角色关联。

存储管理员可在激活 LDAP 配置之前对其进行测试。

用户验证

登录期间,系统会按以下方式验证 LDAP 用户:
图 2. 系统通过发出 LDAP 搜索验证用户
系统通过发出 LDAP 搜索验证用户
发出用户搜索
系统发出 LDAP 搜索,查找用户输入的用户名。 请求代表系统配置的服务帐户提交,该搜索针对存储系统 LDAP 配置中指定的 LDAP 服 务器、base DN 和参考属性执行。
存储系统 LDAP 配置中指定的 base DN 是搜索的参考起始点 - 指导 LDAP 找到在指定的属性中提交的值(用户名)。
如果找到单个用户,那么将发出存储系统角色搜索
系统发出第二个搜索请求,本次请求代表具有凭证的用户提交,然后将基于存储系统 LDAP 配置设置搜索与用户关联的存储系统角色。
- 如果找到一个存储系统角色,则授予用户许可权
系统检查与该角色关联的权限,然后允许该用户登录。 用户许可权与存储系统关联的角色有关,视存储系统 LDAP 配置而定。
如果没有找到用户的存储系统角色,或者找到了多个角色
如果 LDAP 的响应指示用户与任何存储系统角色都无关(在该用户的引用 LDAP 属性中未发现用户角色名称),或者实际与多个角色相关联(发现多个角色名称),那么登录将失败,并且会向该用户返回相应的消息。
如果没有发现此类用户,或者发现多个用户
如果 LDAP 没有返回任何记录(表示未找到具有该用户名的用户)或者返回多个记录(表示提交的用户名不唯一),那么登录请求失败,并会向用户返回相应的消息。