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

相关文章
ldap落地实战:svn集成ldap认证
上一篇文章我们介绍了LDAP的部署以及管理维护,那么如何接入LDAP实现账号统一认证呢?这篇文章将带你完成svn的接入验证 subversion集成openldap认证 系统环境:debian8.
2311 0
|
1天前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
1天前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
2月前
|
API 网络架构
【Azure API 管理】如何修改Azure APIM的管理员邮箱和组织名称
【Azure API 管理】如何修改Azure APIM的管理员邮箱和组织名称
|
2月前
|
开发工具 数据安全/隐私保护 git
【Azure 应用服务】登录App Service 高级工具 Kudu站点的 Basic Auth 方式
【Azure 应用服务】登录App Service 高级工具 Kudu站点的 Basic Auth 方式
|
缓存 安全 JavaScript
如何为部署到 SAP BTP 平台上的 Node.js 应用提供Authorization 和 Trust 管理 - 权限管控
如何为部署到 SAP BTP 平台上的 Node.js 应用提供Authorization 和 Trust 管理 - 权限管控
219 0
如何为部署到 SAP BTP 平台上的 Node.js 应用提供Authorization 和 Trust 管理 - 权限管控
|
弹性计算 网络安全 数据安全/隐私保护
RAM用户集成企业AD FS身份认证
企业 AD用户与RAM用户映射,实现与阿里云的用户SSO。
RAM用户集成企业AD FS身份认证
|
网络协议 文件存储 数据安全/隐私保护
阿里云SMB协议文件系统AD身份认证和ACL权限控制使用场景 - Home Directory / User Profile
本文介绍两个经典的AD/ACL使用场景:Home Directory以及User Profile。 说明 AD/ACL功能默认关闭,有需要的用户请提请工单打开该功能。 1. Home Directory AD管理员可以给域用户设置登录即可见的文件卷。
3557 0
阿里云SMB协议文件系统AD身份认证和ACL权限控制使用场景 - Home Directory / User Profile

相关实验场景

更多