中小公司员工统一用户认证方案

视频版:

中小公司员工统一用户认证方案(视频版)

OpenLDAP 企业应用

分享的内容:

  • 公司为什么需要统一用户认证?
  • 解决用户统一认证都要干哪些事?
  • LDAP 都存了哪些员工信息?
  • 实现一个简单的用户登陆 API
  • OpenLDAP 安全
  • OpenLDAP 公司应用架构图

为什么需要统一用户认证?

常遇到的问题:

  • GitLab、Jira、Confluence … 各种密码

IT 遇到的问题:

  • 内网安全?公司一个 Wi-FI 密码大家都可以连接
  • A 员工离职了一堆帐号我要挨个去删

运维遇到的问题:

  • VPN、Zabbix、Jenkins …. 各种密码

运营遇到的问题:

  • A 业务线,帐号xxx 密码xxx
  • B 业务线,帐号xxx 密码xxx

怎么去解决遇到的问题?

LDAP 用户统一认证

运维需要做什么?

  • 搭建一套完整的 LDAP 服务,给各个应用分配可以连接 LDAP 的账号
  • 配置 GitLab、Jira、Zabbix、Jenkins、VPN …认证走 LDAP
  • 对外提供 API 给开发调用(可选)
  • 自己开发的运维平台也用 LDAP 认证
  • 开发机登陆(ftp、samba、ssh) …

开发需要做什么?

  • 开发人员开发的公司内部系统统一走 LDAP 认证
  • 主流语言PHP、Python、Java 都有 LDAP 库

IT 需要做什么?

  • Wi-FI 认证这块用到 FreeRADIUS,让 Radius 去走 LDAP 认证
  • 员工常用信息(手机号、邮箱、部门、IP地址…)全部录到 LDAP 中
  • IT 统一维护,方便管理用户信息(办理员工入职、离职)

LDAP组织数据的方式

1

dn:每一个条目都有一个唯一的标识名(distinguished Name ,DN)

例如:uid=woniu,ou=SRE,dc=51reboot,dc=com

 

一个普通用户都要存哪些信息?

2

ObjectClass 是什么?

对象类是属性的集合,LDAP预想了很多人员组织机构中常见的对象,并将其封装成对象类。比如人员(person)含有姓(sn)、名(cn)、电话(telephoneNumber)、密码(userPassword)等属性,单位职工(organizationalPerson)是人员(person)的继承类。

实现一个简单的用户登陆 API

  • 了解 LDAP 是怎么登陆?
  • 举个常用软件配置的例子 Gitlab
  • 知道原理之后,用 Python 实现一个简单的用户登陆API
  • 常用服务的配置 SSH

 

了解 LDAP 是怎么登陆?

3

  • LDAP 需要需创建一个账号给 gitlab 连接使用
  • 根据 uid 去查询用户的完整信息,类似于MySQL(select * from
  • mysql.user where user=’woniu’)
  • 获取DN信息+密码,再去LDAP服务器认证,验证成功,用户就登录了

 

查看 Gitlab 配置

4

 

 

 

 

OpenLDAP 安全

  • 密码复杂度(8位大小写数字)
  • 密码错误次数锁定用户 (三次错误帐号锁定)
  • 密码有效期90天,提前7天邮件通知,超过时间强制修改密码
  • 提供重置密码和修改密码接口

开源:http://ltb-project.org/

  • 分布式LDAP 是以明文的格式通过网络来发送信息的,包括client访问ldap的密码
  • 使用TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性
  • 关掉匿名访问
  • VPN (AnyConnect) + GoogleAuthenticator

 

OpenLDAP 在公司应用的整体架构图

 

5

 

于Reboot:专注于互联网运维开发分享、交流,让更多的运维工程师更加专注于自动化,为国内公有云开发、监控、运维贡献自己的力量。这里聚集着国内一线互联网工程师,乐于分享与交流 。发现文章不错的话请关注我们。

课程消息:Python实战班第10期,于7月2日开班 ,详情请咨询 QQ:279312229

Reboot 官方QQ交流群:238757010

文章分类 技术博客
One comment on “中小公司员工统一用户认证方案

发表评论

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

在线交流

数百位业内高手和同行在等你交流
Reboot运维开发分享