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环境中得到了广泛应用。通过了解这些概念,我们可以更好地理解现代网络环境中的用户身份管理机制。

相关文章
|
2月前
|
安全 Java 数据库
SpringSecurity认证授权及项目集成
本文介绍了基于Spring Security的权限管理框架,涵盖认证、授权与鉴权核心概念,通过快速入门示例演示集成流程,并结合数据库实现用户认证。进一步扩展实现正常登录,JWT登录及鉴权管理器,实现灵活的安全控制,适用于前后端分离项目中的权限设计与实践。
221 4
|
2月前
|
资源调度 JavaScript 前端开发
在Vue 3项目中集成Element Plus组件库的步骤
总结起来,在集成过程当中我们关注于库本身提供功能与特性、环境搭建与依赖管理、模块化编程思想以及前端工程化等方面知识点;同时也涵盖前端性能优化(比如上文提及“按需加载”)与定制化开发(例如“自定义主题”)等高级话题.
192 16
|
12月前
|
JavaScript 前端开发
如何在项目中集成 Babel?
如何在项目中集成 Babel?
303 59
|
4月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
234 3
|
4月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
345 3
|
4月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
469 2
|
4月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
234 2
|
4月前
|
物联网 Linux 开发者
快速部署自己私有MQTT-Broker-下载安装到运行不到一分钟,快速简单且易于集成到自己项目中
本文给物联网开发的朋友推荐的是GMQT,让物联网开发者快速拥有合适自己的MQTT-Broker,本文从下载程序到安装部署手把手教大家安装用上私有化MQTT服务器。
1149 5
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
66 0
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 项目管理
springboot项目集成dolphinscheduler调度器 项目管理
106 0

相关产品

  • IoT设备身份认证