关于 LDAP 和 ASA
思科 ASA 与大多数 LDAPv3 目录服务器兼容,包括:
-
Sun Microsystems JAVA System Directory Server,目前是 Oracle Directory Server Enterprise Edition 的一部分,以前称为 Sun ONE Directory Server
-
Microsoft Active Directory
-
Novell
-
OpenLDAP
默认情况下,ASA 会自动检测其是否连接到 Microsoft Active Directory、Sun LDAP、Novell、OpenLDAP 或通用 LDAPv3 目录服务器。但是,如果自动检测无法确定 LDAP 服务器类型,则可以手动对其进行配置。
如何使用 LDAP 进行身份验证
在身份验证过程中,ASA 将充当用户的 LDAP 服务器的客户端代理,并以明文形式或通过使用 SASL 协议对 LDAP 服务器执行身份验证。默认情况下,ASA 以明文形式将身份验证参数(通常是用户名和密码)传递到 LDAP 服务器。
ASA 支持以下 SASL 机制,按强度递增的顺序列出:
-
Digest-MD5 - ASA 使用从用户名和密码计算的 MD5 值来响应 LDAP 服务器。
-
Kerberos - ASA 通过使用 GSSAPI Kerberos 机制发送用户名和领域来响应 LDAP 服务器。
ASA 和 LDAP 服务器支持这些 SASL 机制的任意组合。如果配置多个机制,则 ASA 将检索服务器上配置的 SASL 机制的列表,并将身份验证机制设置为 ASA 和服务器上配置的最强机制。例如,如果 LDAP 服务器和 ASA 支持这两种机制,则 ASA 将选择两者中较强的 Kerberos 机制。
对用户成功执行 LDAP 身份验证后,LDAP 服务器将返回已通过身份验证的用户的属性。对于 VPN 身份验证,这些属性通常包括已应用于 VPN 会话的授权数据。在此情况下,使用 LDAP 即可一步完成身份验证和授权。
注 |
有关 LDAP 协议的详细信息,请参阅 RFC 1777、2251 和 2849。 |
LDAP 层次结构
您的 LDAP 配置应反映贵组织的逻辑层次结构。例如,假设贵公司 Example Corporation 的一名员工名为 Employee1。Employee1 在 Engineering 组工作。您的 LDAP 层次结构可能有一个或多个级别。您可能决定设置一个单级别层次结构,在其中 Employee1 被视为 Example Corporation 的一名成员。您也可以设置一个多级别层次结构,在其中 Employee1 被视为 Engineering 部门的一名成员,该部门是一个称为 People 的组织单位的成员,而该组织单位本身是 Example Corporation 的成员。有关多级别层次结构的示例,请参阅下图。
虽然多级层次结构包含较多详细信息,但在单级层次结构中搜索结果返回的速度更快。
搜索 LDAP 层次结构
通过 ASA,可以在 LDAP 层次结构中定制搜索。在 ASA 上配置以下三个字段,以定义在 LDAP 层次结构中开始搜索的位置、搜索范围和查找的信息类型。这些字段共同将层次结构的搜索仅限于包含用户权限的部分。
-
LDAP Base DN 定义服务器从 ASA 收到授权请求时应开始在 LDAP 层次结构中搜索用户信息的位置。
-
Search Scope 定义在 LDAP 层次结构中的搜索范围。搜索继续在层次结构中 LDAP Base DN 下方的多个级别进行。您可以选择使服务器仅搜索其正下方的级别,否则,它可能搜索整个子树。单级别搜索速度更快,但子树搜索更加广泛。
-
Naming Attribute 定义唯一识别 LDAP 服务器中条目的 RDN。常用命名属性可以包括 cn(通用名称)、sAMAccountName 和 userPrincipalName。
该图显示 Example Corporation 的样本 LDAP 层次结构。鉴于该层次结构,您能够以不同的方式定义搜索。下表显示两种样本搜索配置。
在第一个配置示例中,当 Employee1 使用所需的 LDAP 授权建立 IPsec 隧道时,ASA 将向 LDAP 服务器发送一个搜索请求,指明其应在 Engineering 组中搜索 Employee1。此搜索速度很快。
在第二个配置示例中,ASA 发送一个搜索请求,指明服务器应在 Example Corporation 内搜索 Employee1。此搜索需要更长时间。
编号 |
LDAP Base DN |
搜索范围 |
命名属性 |
结果 |
---|---|---|---|---|
1 |
group= Engineering,ou=People,dc=ExampleCorporation, dc=com |
一个级别 |
cn=Employee1 |
搜索速度较快 |
2 |
dc=ExampleCorporation,dc=com |
子树 |
cn=Employee1 |
搜索时间较长 |
绑定到 LDAP 服务器
ASA 使用登录 DN 和登录密码与 LDAP 服务器建立信任(绑定)。执行 Microsoft Active Directory 只读操作(例如身份验证、授权或组搜索)时,ASA 可以使用权限较少的登录 DN 进行绑定。例如,登录 DN 可能是其 AD“Member Of”指定属于 Domain Users 的一部分的用户。对于 VPN 密码管理操作,登录 DN 需要提升的权限,而且必须是 Account Operators AD 组的一部分。
以下是登录 DN 的一个示例:
cn=Binduser1,ou=Admins,ou=Users,dc=company_A,dc=com
ASA 支持以下身份验证 方法:
-
在端口 389 上使用未加密密码执行简单 LDAP 身份验证
-
在端口 636 上执行安全 LDAP (LDAP-S)
-
简单身份验证和安全层 (SASL) MD5
-
SASL Kerberos
ASA 不支持自治身份验证。
注 |
作为 LDAP 客户端,ASA 不支持传输自治绑定或请求。 |
LDAP 属性映射
ASA 可为以下选项使用 LDAP 目录对用户进行身份验证:
-
VPN 远程访问用户
-
防火墙网络访问/直通代理会话
-
设置策略权限(也称为授权属性),例如 ACL、书签列表、DNS 或 WINS 设置,以及会话计时器。
-
在本地组策略中设置关键属性
ASA 使用 LDAP 属性映射将本地 LDAP 用户属性转换为思科 ASA 属性。您可以将这些属性映射绑定到 LDAP 服务器或将其删除。您还可以显示或清除属性映射。
LDAP 属性映射不支持多值属性。例如,如果用户是多个 AD 组的成员,并且 LDAP 属性映射与多个组匹配,则根据匹配条目的字母顺序选择值。
要正确使用属性映射功能,您需要了解 LDAP 属性名称和值,以及用户定义的属性名称和值。
频繁映射的 LDAP 属性的名称以及经常将其映射到的用户定义属性的类型包括:
-
IETF-Radius-Class(ASA 8.2 或更高版本中的 Group_Policy)- 根据目录部门或用户组(例如,Microsoft Active Directory memberOf)属性值设置组策略。组策略属性将 IETF-Radius-Class 属性替换为 ASDM V6.2/ASA V8.2 或更高版本。
-
IETF-Radius-Filter-Id - 将访问控制列表或 ACL 应用于 VPN 客户端、IPsec 和 SSL。
-
IETF-Radius-Framed-IP-Address - 将已分配的静态 IP 地址分配到 VPN 远程访问客户端、IPsec 和 SSL。
-
Banner1 - 在 VPN 远程访问用户登录时显示文本横幅。
-
Tunneling-Protocols - 根据访问类型,允许或拒绝 VPN 远程访问会话。
注
单一 LDAP 属性映射可以包含一个或多个属性。只能从特定 LDAP 服务器映射一个 LDAP 属性。