有个IT主管跟我说,他们公司上了认证系统之后,效果不太好——员工嫌麻烦不愿用,最后干脆绕过认证直接接路由器AP上网。问题在哪?他用的认证方式是员工自己注册账号。我说你们公司不是有AD域吗,为什么不用AD域账号认证?他愣了一下说,经销商说这个功能配置很复杂,他们也不确定能不能对接上。
企业部署网络接入认证系统,LDAP和AD域对接这件事,说难不难,说简单也不简单。关键在于:你要对接的不是一套孤立的认证系统,而是让认证系统成为企业现有身份管理体系的一部分。这个定位搞清楚了,后面的配置工作才有方向。
企业用AD域或者LDAP做网络接入认证系统的用户管理,本质上是在建一套统一的身份管理系统——员工的账号密码、入职离职、岗位变动,全部在域控制器里管理。如果网络准入认证系统能跟这套身份体系对接,意味着:员工入职的时候,IT在AD里创建账号,WiFi认证系统自动同步拿到这个账号;员工离职的时候,IT在AD里禁用账号,WiFi认证系统同步禁用,不需要在两个系统里重复操作。
这个价值看似不大,其实是网络安全管控的基础。如果WiFi认证系统不跟AD域对接,就存在一个时间差:员工离职当天,AD账号被禁用,但如果WiFi认证系统里还有他的账号,这个人理论上还能连上WiFi进入企业内网。这个时间差在安全合规审计的时候,是明确的风险点。
另一个实际价值是密码统一。员工不需要记两套密码,用AD密码登录WiFi,丢了直接找IT重置AD密码就行,不需要联系WiFi认证系统的管理员单独处理。用户越方便,政策推行阻力越小,这是做安全的底层逻辑。
LDAP(Lightweight Directory Access Protocol)是一种目录服务协议,AD域就是基于LDAP实现的。认证系统跟LDAP对接,其实就是:认证系统作为LDAP客户端,向域控制器发起查询请求,问"这个账号和密码在AD里是否存在且有效",域控制器回答"是"或"否",认证系统根据回答决定是否放行。
这个流程说起来简单,但实际配置的时候有几个绕不过去的参数:LDAP服务器的地址和端口、Base DN(目录基准路径)、管理员绑定DN和密码、用户搜索过滤条件。这几个参数填错了,认证就通不了。
LDAP服务器地址通常是域控制器的IP或者域名,端口默认389,启用SSL的话是636。Base DN是AD目录树的根节点路径,比如"DC=company,DC=com"。管理员绑定DN是一个有目录查询权限的AD账号,通常是IT管理员自己建的专用服务账号,不建议用域管理员账号。搜索过滤条件决定查询哪些用户对象,AD里的用户对象类通常是"person",过滤条件写不对,就会把电脑账号、组账号全部查出来,认证就乱了。
蓝海卓越的统一认证平台支持两种AD域对接模式:实时查询模式和同步模式。
实时查询模式下,用户的认证请求到达认证系统后,系统实时向AD域控制器发起LDAP查询,验证账号密码是否正确。这个方式的好处是:AD里的账号变更(新增、禁用、密码修改)立即生效,不需要等待同步。坏处是:每次认证都要查AD,如果AD域控性能不够或者网络延迟高,认证响应会变慢,影响用户体验。
同步模式下,认证系统定期从AD域全量拉取用户列表和账号状态到本地数据库,认证请求直接查本地数据库。这个方式的好处是:认证速度快,不依赖AD域控的实时性能;坏处是:账号变更有延迟,如果员工离职后AD账号立即禁用,但同步还没完成,这个时间窗口内该员工还能用旧账号认证。
实际项目里,大多数企业用同步模式就够了——把同步间隔设为一到五分钟,离职延迟的风险基本可控。但如果企业有特殊的安全合规要求,比如金融或者政府行业,实时模式是更保险的选择。
除了AD域,现代企业越来越多地使用企业微信、钉钉、飞书作为办公入口。网络接入认证系统的企业微信、钉钉、飞书对接,在这些企业里已经是标配。这三家的对接逻辑跟AD域有所不同,但核心思路一致:让员工用现有的办公账号登录WiFi,不需要额外的账号体系。
企业微信认证的流程是:用户在认证页面选择"企业微信登录",系统引导用户到企业微信授权页,用户在微信里完成授权,认证系统拿到授权凭证后去企业微信后台验证,确认是真实员工后放行。整个过程用户只需要在微信里点一下确认,不需要输入任何账号密码。
钉钉和飞书的认证逻辑类似,都是OAuth2.0授权流程。这两种对接方式有一个共同的前提:企业已经开通了企业微信、钉钉或飞书的企业版,并且管理员在后台给认证系统开放了API权限。如果企业用的是个人版或者免费版,对接会有限制,这个要在方案阶段提前确认。
蓝海卓越平台同时支持企业微信、钉钉、飞书三种对接方式,企业可以根据实际使用的办公套件选择对应的认证方式。如果企业同时用多种办公工具(比如研发用飞书、市场用钉钉),可以在认证系统里同时配置多套对接方案,不同部门的员工用各自的办公工具账号登录WiFi,后台统一管理。
有些企业的身份数据不在AD域里,也不在企业微信里,而是在业务系统里,比如医院的HIS系统、学校的教务系统、工厂的MES系统。这些系统的用户数据不是"员工账号",而是业务身份,但这些身份也需要访问WiFi网络。
蓝海卓越的第三方数据源认证就是为了解决这个问题的。认证系统可以对接任意第三方数据库——只要对方提供查询接口,认证系统就能拿员工ID去查,判断这个身份是否存在、是否有效,然后决定是否放行。
这种对接方式实施难度最高,因为涉及两个系统之间的接口开发和数据映射。通常需要认证系统提供标准接口规范,第三方系统的开发团队按规范做对接开发。如果第三方系统不支持接口开发(比如是封闭的商业软件),这种方式就走不通,需要另外想办法。
说了这么多正向的,最后说几个对接失败的常见坑。
第一个坑是防火墙。AD域控制器通常在内网,对外的LDAP端口389和636不一定放通。认证系统如果部署在云端,要跟内网AD对接,必须在防火墙上放通LDAP端口,或者走VPN/专线。有些企业的网络管理员因为安全策略不愿意放通这个端口,结果就是对接失败。解决方案是走SSL加密的636端口,防火墙对加密流量审查更宽松一些。
第二个坑是账号命名规范。AD里的账号命名格式各家不一样,有的用sAMAccountName,有的用userPrincipalName。认证系统配置的绑定DN格式必须跟AD里实际的用户属性对应上,否则查询永远是空的。
第三个坑是密码策略。AD域通常有密码复杂度要求、密码过期策略。如果员工连WiFi用的是OA密码,而这个密码在AD里已经过期了,认证就会失败。这种情况在员工长时间不出差、一直在公司内网环境下办公的时候特别容易出现——因为在内网不用连WiFi,不会触发认证,所以没人注意到密码已经过期了,直到某天需要连WiFi才发现登不上去。
对接LDAP和AD域这件事,技术上不算复杂,但实施的时候一定要跟企业的IT和网络安全团队充分沟通,把网络策略、账号规范、密码策略这些细节提前确认清楚。否则系统上线之后,问题会一个接一个地冒出来,到时候再回头改,付出的代价比前期规划要大得多。