首页 > 其他分享 >LDAP--统一账号/统一认证系统的引入和搭建

LDAP--统一账号/统一认证系统的引入和搭建

时间:2023-08-06 10:00:48浏览次数:28  
标签:cn 账号 -- dc LDAP 软件 统一

1为什么需要统一账号/统一认证?

1.1没人喜欢记忆一大堆混乱的账号和密码,员工不喜欢,企业更不喜欢。

企业要高效解决业务和研发问题,必须在初创期规划搭建必要的企业软件和研发工具,也就是进行IT基础设施中软件部分的选型、配置和部署。在大型企业,这样的工作会有专门的IT基础设施部门和内部工具部门负责,而在初创企业,这类工作往往需要由CTO布置,甚至亲自完成。当然,这一过程也是CTO对研发部门贯彻管理和研发思路,同时对企业总体提供IT支持设施的过程。

在公司软件基础设施中,最基础的部分就是统一账号和统一认证,这一体系相当于一张访问软件系统的“员工卡”。它能基于对每个员工的唯一账号、密码、以及其它信息的管理,简化和串联不同软件系统的身份管理、统一登录和权限控制,让员工方便地通过同一套用户名密码登录公司的大部分系统完成工作,也让行政和IT人员一站式地管理任何员工的账号和权限。

2为什么选择LDAP?

初创公司选择统一账号的方案只需要考虑两个问题:广泛兼容和自有可控。

广泛兼容指应该选择有最多的软件和工具支持的统一账号方案:应选取不论是哪种操作系统下的软件、不论是云端还是本地部署、不论是开源产品还是收费软件、不论是研发用工具还是其它部门常用软件,都应能顺利接入的方案。

自有可控指这样的方案应该有可靠的私有部署和本地存储方案:无需向第三方长期采购,且随着公司规模的扩大,支持灵活的功能增加、字段增加、组织结构修改、以及复杂权限管控。

因为以上两个考虑,我不建议初创公司选用知名云办公套件或大型OA自行设计提供的统一账户管理接口,原因是兼容软件不全,迁移成本高。也不建议选择不成熟、不可控的LDAP-as-a-service类云服务产品。

满足以上两个需求且最适合初创企业的,是LDAP(Light Directory Access Protocol)这项被广泛支持的协议。这是一个轻量、灵活、通用、长期可靠、可自有部署的目录服务协议。所谓目录服务,本质上是一个适合规划组织和账户结构的数据库标准和实现。各类软件可以通过类似数据库查询的形式,统一存取LDAP内的数据,以实现账号管理和登录认证的统一。

软件选型方面,目前兼容LDAP协议的最主流实现方案有两个:Linux操作系统下开源的OpenLDAP,以及Windows Server操作系统下闭源的Active Directory。我们将以OpenLDAP为例讲解,在实际选型中,只要按照操作系统的熟悉程度两者择一即可。

3哪些软件和工具可以和统一账号/认证集成?

下面列出一些常用的支持LDAP作为统一登录认证后端数据库的软件和工具。CTO在为公司建设软件工具体系时,可以直接参照下表选型。事实上,大多数包含账号体系的企业级软件,尤其是技术研发相关的软件,都支持LDAP账号。

LDAP--统一账号/统一认证系统的引入和搭建_bc

实施要点

我们的专栏不会讲具体的部署配置细节。但会介绍实施的关键步骤以及需关注思考的重点。

1. 搭建和配置LDAP服务

  • 应优先考虑选择使用OpenLDAP或Microsoft Active Directory作为服务端软件。
  • 对于域名是ctoabc.xyz的公司,LDAP服务名称和接入名称应设置为dc=ctoabc, dc=xyz,管理员访问名称一般为cn=admin, dc=ctoabc, dc=xyz
  • 应保证搭建完成的服务拥有独立的公有IP,便于内外网访问;应保证服务器的访问安全,并使用加密通信(LDAP over SSL)。

2. 建立组织结构和人员数据

  • 选择安装一个LDAP管理客户端软件,可以是基于网页的OpenLDAP, Web2LDAP, LAM,也可以是本地运行的jxplorer。
  • 最简单的组织结构搭建方法应先配置用户类型/用户部门。新建一个organizationalUnit,名为ou=groupsou=departments,然后在其下按需创建posixGroup,如按类型cn=employeescn=admins,或按部门cn=productcn=marketing
  • 下一步应配置员工。新建一个organizationalUnit,名为ou=users,然后创建用户cn=username,如cn=zhang.san,并把用户的GID关联到上一步建立的用户类型/用户部门中。随后填写该用户的必要信息,如EmailFull namePassword初始密码等。还可以按需增加字段,甚至增加个人照片。
  • 撰写一篇统一账号操作文档,记录以上配置/删除一名员工统一账号的标准操作方法,并移交给相关的IT/HR负责人。

3. 与各软件工具集成

  • 需要注意各系统中Bind DN项目应配置为dc=ctoabc, dc=xyz ,访问LDAP目录的用户名则应配置为有最高权限的账户,如cn=admin, dc=ctoabc, dc=xyz
  • 需要注意配置好各系统中用户名、密码、全名等字段,与LDAP目录中字段的匹配关系,也就是配置好相应字段从LDAP中查询到的方法。

4. 解决日常使用问题

  • 配置一个自助密码修改(Self-service Password Change)系统,方便员工修改密码。
  • 为统一账号系统起一个明确好记的名字,如Company ID
  • 撰写并发布面向公司全员的Company ID使用介绍文档。

这样基于LDAP的统一账号体系就搭建完成了,员工可以用一个账号和密码来访问和对接全部软件和研发工具,公司的众多软件基础设施也开始能从账户层面进行简单明确的管理了。

标签:cn,账号,--,dc,LDAP,软件,统一
From: https://blog.51cto.com/u_15130867/6981946

相关文章

  • vue-table-width-grid 以及axios下载时报错
    importVuefrom'vue'importAppfrom'./App.vue'importrouterfrom'./router'importstorefrom'./store'//导入字体图标import'./assets/fonts/iconfont.css'importElementUIfrom'element-ui'impor......
  • 存定期的技巧 - 我的闪存
    将10万分为2万、4万、4万三笔;*、将2万存1年定期;*、将4万存2年定期;*、讲4万存3年定期;(设置自动续存3年定期)*、1年后2万到期,设置存3年定期,有1年的利息;(设置自动续存3年定期)*、2年后4万到期,设置存3年定期,有2年的利息;(设置自动续存3年定期)*、3年后4万到期,继续续存3年定期,有3年的利息;(已......
  • Codeforces Round 882 (Div. 2) 题解
    A.TheManwhobecameaGod求出相邻两个元素的差值,去掉前\(m\)个大的差值以后的差值和即为答案B.HamonOdyssey由按位与的性质可以知道,前缀与和的值只会越来越小,只要和为\(0\)的时候我们就清空按位与前缀和,增加一下次数,如果最终次数不为\(0\),特判一下,次数加一即可C.......
  • 微信小程序视图容器 view
    <viewclass="section"><viewclass="section__title">flex-direction:row</view><viewclass="flex-wrp"style="flex-direction:row;"><viewclass="flex-itembc_green">1&l......
  • 【ACM专项练习#03】打印图形、栈的合法性、链表操作、dp实例
    运营商活动题目描述小明每天的话费是1元,运营商做活动,手机每充值K元就可以获赠1元,一开始小明充值M元,问最多可以用多少天?注意赠送的话费也可以参与到奖励规则中输入输入包括多个测试实例。每个测试实例包括2个整数M,K(2<=k<=M<=1000)。M=0,K=0代表输入结束。输出对于每个测试实......
  • Cilium系列-14-Cilium NetworkPolicy 简介
    系列文章Cilium系列文章前言今天我们进入Cilium安全相关主题,介绍Kubernetes网络策略以及CiliumNetworkPolicies额外支持的内容。网络策略(NetworkPolicy)的类型默认情况下,Kubernetes集群中的所有pod都可被其他pod和网络端点访问。网络策略允许用户定义Kube......
  • 【LeetCode剑指offer#06】实现pow函数、计算x的平方根
    实现pow函数实现pow(x,n),即计算x的整数n次幂函数(即,xn)。示例1:输入:x=2.00000,n=10输出:1024.00000示例2:输入:x=2.10000,n=3输出:9.26100示例3:输入:x=2.00000,n=-2输出:0.25000解释:2-2=1/22=1/4=0.25代码classSolution{public:do......
  • 002-深度学习数学基础(神经网络、梯度下降、损失函数)
    0.前言人工智能可以归结于一句话:针对特定的任务,找出合适的数学表达式,然后一直优化表达式,直到这个表达式可以用来预测未来。针对特定的任务:首先我们需要知道的是,人工智能其实就是为了让计算机看起来像人一样智能,为什么这么说呢?举一个人工智能的例子:我们人看到一个动物的图片,就......
  • C++中BigEden、SmallEden编码
    基本概念大端小端表示,一个数字在内存中或硬盘上记录时,是高位在前或在后,高位在前就是大端(BigEden),在后就是小端(samllEden)。我们日常记录和代码里定义一千二百三四如:inta=1234;就是大端记录。如果是小端的一千二百三十四:就是"4321"了。 通常应用一般而言,平台使用的大......
  • 【ACM专项练习#02】输入整行字符串、输入值到vector、取输入整数的每一位
    输入整行字符串平均绩点题目描述每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。输入有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。输出每组输出结果占一行。如果输入的大......