文章作者:刘汉华,贝聊高级运维工程师
什么是“LDAP”, 英文全称是Lightweight Directory Access Protocol,一般都简称为
通过LDAP我们可以实现:
1、所有相关系统都能接入
2、统一用户身份及安全管理
3、所有系统一个账号及密码
同时我们的上线实施操作,必须首先保证所有人工作不受影响。
下面是我们实施步骤介绍:
步骤一、 LDAP服务方案选择
选openldap ? 还是域控器AD呢?
1、Openldap 是ldap自由和开源的实现,但是我们在配置及使用发现很多不成熟,线上应用风险很大
2、LDAP实施工期紧,最后决定选用比较成熟的域控AD,来接入服务
下面是我选择域控的原因:
1、 域控便捷统一的管理
2、 成熟安全策略
3、 良好的冗余备份机制,支持主从冗余及备份快照
步骤二、域控LDAP接入的各种方案整理及完善
一句话就是要让我们用到的 sso、svn、cwiki、squid、vpn、maven、git、zabbix 等等能获取到ldap用户及组,并且保持原有权限不发生变化;
测试过程中我们采取另外部署的方式,避免影响线上用户。
不同的系统的LDAP接入方式
Oss后台系统是采用java代码支持,这里不再介绍,
下面仅介绍一下我们用到几种LDAP接入配置
Confluence wiki支持ldap接入配置,范例如下
Apache的支持,用于svn认证
Git的ldap支持
配置文件/etc/gitlab/gitlab.rb
pptp VPN支持ldap
Squid代理支持ldap
步骤三、 域控AD录入所有员工账号、密码及相应资料
1、 批量导入用户列表及用户密码初始化
A、 hr提供到的账号数据处理
B、 转换为命令行导入
域控支持Csvde –f 命令的方式
步骤四,继续按列表推进直至完成.
下面是实施过程进度安排表
实施过程的两要点:
1、 Confluence wiki等用户使用较多的系统,采取何种策略切换:
A、用户完全无感知,采用双轨制,新增账号接入ldap,原有账号不变
B、彻底一次性切换, 所有用户一切性切换为LDAP账号
让用户测试及验证,体会到LDAP接入统一化管理的好处
最终: 选择B策略
2、 SSO接入时各功能核对及测试
A、 为避免上线时用户体验不好,我们就把所有可能问题集中罗列、集中测试,确保无遗漏
回看整个实施过程,有不少风险与隐患, 这里对有价值实施部分作归纳,分享给大家:
1、 表格化的整体实施进度排期, 这方便我们对整个LDAP实施实战有了统一计划与管理
2、 技术备用方案是否充足? 这是实施顺利与否的关键,因为意外情况会导致整个实施受阻
3、 实施过程采用“灰度策略”, 这里我们是先小范围再大范围实施,最终能减少不良体验范围,让更多人有更好的体验
4、上线及发布文告
A、 文告内容不易懂或不清晰, 这会造成上线后会有大量用户同时找你沟通或求助
B、 文告内容展现,决定了在所有人心中印象与感知, 写好了就有画龙点晴的效果
有关之前及之后流程效果图如下:
之前流程
优化后流程