AC外部认证——对BaseDN的理解
对于AC一般我们配置的思路如下:
1、新建用户组 。
2、新建外部认证服务器,设置AD域服务器信息。
3、设置LDAP自动同步,同步AD域OU下的用户和子OU到AC的组织结构里。
4、新建认证策略,选择“密码认证/外部认证/单点登录”。
在建立外部认证服务器的过程中,我们一般设置服务器的BaseDN为域名,但是如果在设置的时候,选择位于根域下的路径BaseDN,是否也能同样进行认证呢?下面通过抓取数据包方法对此操作进行探讨。
拓扑结构:
AD域名”sangforyyy.com.cn”,创建了名为”sangfor”的OU,其中有5位用户:王峰(wangfeng)、孙浩(sunhao)、叶胜(yesheng)、代滨(daibin)、游远远(yyy),所有用户默认密码”123qwe!”,管理员administrator,密码为123ABCabc。
(1)BaseDN采用DC=“OU名”……配置
在配置外部认证服务器时,我们采用如图BaseDN配置,能够成功与服务器进行连接。
可以看到,在进行服务器绑定时报文大小一致,信息内容也一致。但是在进行用户信息同步时,searchRequest报文内容与正常情况不同:
域服务器返回信息nosuchobject,没有这样的对象,并且给出建议,最好BaseDN匹配为根域。
此时如果我们进行上网认证,其报文信息如下
(三)BaseDN采用OU=“OU名”……配置
同样进行相同的用户同步和用户上网认证操作
通过观察报文信息,我们可以看到采用如此配置,可以实现用户信息的同步,但是,在用户上网认证过程中,认证失败,虽然输入的信息时正确的,但是显示结果为“接收到的认证信息错误”
(一)正常情况配置
1、创建“外部AD域”组,通过MSAD域认证的用户都将被添加到此用户组中。
2、添加“外部认证服务器”—“LDAP服务器”。采取正常配置,BaseDN使用根域名。
注:首先,我们设置正确的操作,抓取数据包,以便进行对比数据分析
3、配置“LDAP自动同步”—“LDAP同步”。
在此时选择远程目录中,我们可以看到AD域服务器下所有的组。
4、创建认证策略
此时我们进行了用户同步,用户输入正确密码认证和输入错误密码认证等操作,抓取到的数据包如下:
可以看到在其中bindRequest和bindResponse报文主要用于验证设备和AD域之间用户信息,包括管理员和域中OU的用户等,bindRequest报文请求验证,bindResponse返回验证结果;
searchRequest和searchResponse用于实现对域中用户等信息的检索,可实现用户信息的同步。
bindRequest验证管理身份的报文:
从设备传递给域服务器的信息包含了用户名和密码等信息。
bindResponse返回的信息
在抓取到的报文中,我们可以看到实现同步主要分为三个步骤:
(1) 进行设备和服务器之间的绑定
(2) 进行同步操作,数据信息传递
同步时设备首先向服务器发送同步请求
服务器在收到了报文后,根据请求的根对象信息检索域,将检索结果返回给设备
(3) 设备在收到同步的消息后,发送断开域认证的请求
当用户进行外部认证是,从设备发送至域服务器的报文同样为bindRequest和bindResponse,设备截获了用户提交的用户名和密码,再和域服务器之间进行认证通信。
认证成功的交互报文具体信息如下所示:
密码错误未认证成功的报文具体内容:
返回的标识为:invalid credentials 无效凭证
扩展:
在LDAP中信息以树状方式组织,在树状信息中的基本数据单元是条目,而每个条目由属性构成,属性中存储有属性值。Base DN: 基准DN,指定LDAP search的起始DN,即从哪个DN下开始搜索,DN: Distinguished Name,每个叶子结点到根的路径就是DN。
在LDAP的认证操作,LDAP定义了以下认证操作:
bind 该操作用于在LDAP的客户端和服务器之间建立会话
unbind 该操作用于结束LDAP会话
abandon 该操作用于放弃前一个操作