ToB项目身份认证AD集成(一):基于目录的用户管理、LDAP和Active Directory简述

简介: 本文介绍了基于目录的用户管理及其在企业中的应用,重点解析了LDAP协议和Active Directory服务的概念、关系及差异。通过具体的账号密码认证时序图,展示了利用LDAP协议与AD域进行用户认证的过程。总结了目录服务在现代网络环境中的重要性,并预告了后续的深入文章。

  在ToB的项目里,公司部门之间是树状的关系,成员结构也类似。由于windows的使用范围很广,尤其是在企业里,所以它集成的Active Directory域服务往往企业应用需要兼容的。

什么是基于目录的用户管理?

基于目录的用户管理是一种集中化的用户身份管理方式。它将组织中的所有用户信息(如用户名、密码、所属组、权限等)存储在一个统一的数据库中,即目录。通过访问这个目录,管理员可以对用户进行添加、删除、修改等操作,并对用户访问资源的权限进行统一管理。

LDAP是什么?

LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议。它定义了客户端如何访问和修改目录中信息的标准。LDAP目录就像一个电话簿,存储着各种对象的属性(如用户、计算机、组织单位等)。LDAP协议提供了对这些对象的查询、添加、修改和删除等操作。

Active Directory是什么?

Active Directory是微软开发的一种目录服务,它实现了LDAP协议。Active Directory通常被用于Windows网络环境中,为域中的计算机、用户和组提供集中化的管理。它不仅存储用户信息,还提供了诸如组策略、Kerberos认证等高级功能。

LDAP和Active Directory的关系

LDAP是一种协议,而Active Directory是实现了LDAP协议的一种目录服务。也就是说,Active Directory是LDAP的一个具体实现。你可以把LDAP看作是一种语言,而Active Directory看作是用这种语言写的一本书。

另外AD通过DS服务对外暴露了相关的操作,包括对象查询、认证和修改等,下面我贴一个某场景下较为完整的成员对象数据结构:

type LdapAccount = {
  objectClass: string;
  cn: string;
  distinguishedName: string;
  instanceType: string;
  whenCreated: string;
  whenChanged: string;
  displayName: string;
  uSNCreated: string;
  uSNChanged: string;
  name: string;
  objectGUID: string;
  userAccountControl: string;
  badPwdCount: string;
  codePage: string;
  countryCode: string;
  badPasswordTime: string;
  lastLogoff: string;
  lastLogon: string;
  pwdLastSet: string;
  primaryGroupID: string;
  objectSid: string;
  accountExpires: string;
  logonCount: string;
  sAMAccountName: string;
  sAMAccountType: string;
  userPrincipalName: string;
  objectCategory: string;
  dSCorePropagationData: string;
  lastLogonTimestamp: string;
};

image.gif

可以看到它的字段是非常多的,可能很多字段某个项目不会用到,但这些字段的设计往往是日积月累的经验积累,我们在设计自己的身份认证或者账号体系的时候可以作为参考

LDAP和Active Directory的对比

特点 LDAP Active Directory
实现 协议 目录服务
平台 多平台 主要用于Windows
功能 基本的目录操作 丰富的管理功能
应用场景 广泛应用于各种系统 主要用于Windows网络环境

账号密码身份认证时序图

利用ldap协议接口,与AD域通讯实现认证的简单过程如下:

image.gif 编辑

说明:

  • 客户端: 用户。
  • 认证服务器: Nodejs后端。
  • Directory Server: 目录服务器(如Active Directory)。
  1. 用户在认证界面输入用户名和密码。
  2. 认证服务器将用户的凭证发送给目录服务器进行验证。
  3. 目录服务器查询用户的信息,并返回验证结果给认证服务器。
  4. 认证服务器根据目录服务器返回的结果,告知用户认证成功或失败。

总结

基于目录的用户管理为组织提供了统一、高效的用户管理方式。LDAP作为一种标准协议,为目录服务提供了基础。Active Directory作为LDAP的具体实现,在Windows环境中得到了广泛应用。通过了解这些概念,我们可以更好地理解现代网络环境中的用户身份管理机制。

相关文章
|
1月前
|
JavaScript 前端开发
如何在项目中集成 Babel?
如何在项目中集成 Babel?
35 3
|
2月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
2月前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
7月前
|
关系型数据库 MySQL 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
196 0
|
网络协议 Linux 文件存储
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍
在本文中,我们首先简单介绍文件系统的用户认证和访问权限控制的概念,然后介绍阿里云SMB协议文件存储服务支持基于AD域系统的用户身份认证及访问权限控制的设计实现。
4126 0
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍
|
安全 数据安全/隐私保护
dex:来自CoreOS的开源身份认证服务解决方案
本文讲的是dex:来自CoreOS的开源身份认证服务解决方案,【编者的话】今天CoreOS发布了一个新的开源项目dex,一个基于OpenID Connect的身份服务组件。 CoreOS已经将它用于生产环境:自家的tectonic.com上。
2176 0
|
安全 Ruby
Github Enterprise版本SAML服务两个身份认证漏洞
本文讲的是Github Enterprise版本SAML服务两个身份认证漏洞,在Github Enterprise版本的SAML服务中发现完全身份验证绕过的两个漏洞。作者将这些漏洞通过hackone的漏洞悬赏报告给Github并且已经修复。
2042 0
|
安全 数据安全/隐私保护

相关产品

  • IoT设备身份认证