一些传统的常见的认证方式
(以下内容全部由外部资源总结)
验证方式
一、Basic:
http10的认证方法,需要提供用户名密码认证,并用base64进行编码,认证后才可访问,浏览器弹出登录窗口输入用户名后用base64进行编码,浏览器会在http报文头部加入base64编码内容,服务器解析出来并认证通过才可继续访问,
二、Digest:
主要是为了解决Basic模式的安全问题,用来替代Basic模式采用了response认证模式,依旧弹出对话框输入用户名密码,会对:用户名、密码、http请求方法、被请求资源的url 进行组合后发送给服务器,服务器获取到http报文相关信息后,从中获取到用户名跟密码,同样对用户名、密码、http请求方法、被请求资源的url等组合进行md5运算,计算的结果进行比较,结果相同就认证通过
其实通过hash算法,对通信双方身份的认证非常常见,不必把包含密码的信息对外传输,只需要把这些密码信息,加入一个对方给定的随机值,然后计算出hash值传输给对方就可以认证身份,这种模式避免了密码在网络上明文传输,
缺点:报文还是会被攻击者拦截到然后获取相关资源
三、X509:
是一种非常通用的证书格式,所有的X509证书都包含:版本号、证书持有人的公钥、证书的序列号 。证书的序列号是由每一个证书分配的唯一编号数字型编号,证书取消后实际上放入由ca签发的黑名单列表中,这也是序列号唯一的原因,X509还包含主题信息、证书的有效期、认证的签名、签名的算法等等,目前被广泛应用
四、LDAP:
是轻量级的目录访问协议,为了解决需要初始化很多密码,大量密码的管理,还有公司增加内部服务的时候,管理员需要为大量员工初始化新的账户信息,为所有软件提供统一的认证机制,改变原有的认证策略,使需要认证的策略都通过LDAP去认证,或者所有信息都存储在LDAP server中,终端用户使用公司内部服务的时候,都需要LDAP服务器的认证,每个员工只需要进入管理员提供的web节目,修改自己在LDAP server中的信息即可,常适用于大公司
五、Form 表单验证,不多做解释
LDAP本身只提供认证服务。
至于你用什么信息认证,那么是你的客户端说了算了。
换句话说,LDAP本身相当于一个数据库只存储了你的认证信息。
你的需求LDAP本身是不可实现的,但是它又是支持这种应用的,
具体的控制实现细节需要更改你的认证程序。
你完全可以把个人笔记本的固有信息也存储于LDAP服务器中,
要求认证时和用户名密码一起认证。
1 LDAP入门
11 定义
LDAP是轻量目录访问协议(LightweightDirectory Access Protocol)的缩写,LDAP标准实际上是在X500标准基础上产生的一个简化版本。
12 目录结构
LDAP也可以说成是一种数据库,也有client端和server端。server端是用来存放数据,client端用于操作增删改查等操作,通常说的LDAP是指运行这个数据库的服务器。只不过,LDAP数据库结构为树结构,数据存储在叶子节点上。
因此,在LDAP中,位置可以描述如下
因此,苹果redApple的位置为
dn标识一条记录,描述了数据的详细路径。因此,LDAP树形数据库如下
因此,LDAP树形结构在存储大量数据时,查询效率更高,实现迅速查找,可以应用于域验证等。
13 命名格式
LDAP协议中采用的命名格式常用的有如下两种:LDAP URL 和X500。
任何一个支持LDAP 的客户都可以利用LDAP名通过LDAP协议访问活动目录,LDAP名不像普通的Internet URL名字那么直观,但是LDAP名往往隐藏在应用系统的内部,最终用户很少直接使用LDAP 名。LDAP 名使用X500 命名规 范,也称为属性化命名法,包括活动目录服务所在的服务器以及对象的属性信息。
2 AD入门
21 AD定义
AD是Active Directory的缩写,AD是LDAP的一个应用实例,而不应该是LDAP本身。比如:windows域控的用户、权限管理应该是微软公司使用LDAP存储了一些数据来解决域控这个具体问题,只是AD顺便还提供了用户接口,也可以利用ActiveDirectory当做LDAP服务器存放一些自己的东西而已。比如LDAP是关系型数据库,微软自己在库中建立了几个表,每个表都定义好了字段。显然这些表和字段都是根据微软自己的需求定制的,而不是LDAP协议的规定。然后微软将LDAP做了一些封装接口,用户可以利用这些接口写程序操作LDAP,使得ActiveDirectory也成了一个LDAP服务器。
22 作用
221 用户服务
管理用户的域账号、用户信息、企业通信录(与电子邮箱系统集成)、用户组管理、用户身份认证、用户授权管理、按需实施组管理策略等。这里不单单指某些线上的应用更多的是指真实的计算机,服务器等。
222 计算机管理
管理服务器及客户端计算机账户、所有服务器及客户端计算机加入域管理并按需实施组策略。
223 资源管理
管理打印机、文件共享服务、网络资源等实施组策略。
224 应用系统的支持
对于电子邮件(Exchange)、在线及时通讯(Lync)、企业信息管理(SharePoint)、微软CRM&ERP等业务系统提供数据认证(身份认证、数据集成、组织规则等)。这里不单是微软产品的集成,其它的业务系统根据公用接口的方式一样可以嵌入进来。
225 客户端桌面管理
系统管理员可以集中的配置各种桌面配置策略,如:用户适用域中资源权限限制、界面功能的限制、应用程序执行特征的限制、网络连接限制、安全配置限制等。
23 AD域结构常用对象
231 域(Domain)
域是AD的根,是AD的管理单位。域中包含着大量的域对象,如:组织单位(Organizational Unit),组(Group),用户(User),计算机(Computer),联系人(Contact),打印机,安全策略等。
可简单理解为:公司总部。
232 组织单位(Organization Unit)
组织单位简称为OU是一个容器对象,可以把域中的对象组织成逻辑组,帮助网络管理员简化管理组。组织单位可以包含下列类型的对象:用户,计算机,工作组,打印机,安全策略,其他组织单位等。可以在组织单位基础上部署组策略,统一管理组织单位中的域对象。
可以简单理解为:分公司。
233 群组(Group)
群组是一批具有相同管理任务的用户账户,计算机账户或者其他域对象的一个集合。例如公司的开发组,产品组,运维组等等。可以简单理解为分公司的某事业部。
群组类型分为两类:
234 用户(User)
AD中域用户是最小的管理单位,域用户最容易管理又最难管理,如果赋予域用户的权限过大,将带来安全隐患,如果权限过小域用户无法正常工作。可简单理解成为某个工作人员。
域用户的类型,域中常见用户类型分为:
一个大致的AD如下所示:
总之:Active Directory =LDAP服务器 LDAP应用(Windows域控)。ActiveDirectory先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现了自己的一个具体应用(域控)。
3 使用LDAP操作AD域
特别注意:Java操作查询域用户信息获取到的数据和域管理员在电脑上操作查询的数据可能会存在差异(同一个意思的表示字段,两者可能不同)。
连接ad域有两个地址:ldap://XXXXXcom:389 和 ldap://XXXXXcom:636(SSL)。
端口389用于一般的连接,例如登录,查询等非密码操作,端口636安全性较高,用户密码相关操作,例如修改密码等。
域控可能有多台服务器,之间数据同步不及时,可能会导致已经修改的数据被覆盖掉,这个要么域控缩短同步的时间差,要么同时修改每一台服务器的数据。
31 389登录
32 636登录验证(需要导入证书)
33 查询域用户信息
34 重置用户密码
35 域账号解锁
总结
如果您已经有一个内部 IT 基础架构,它很可能包含一个 LDAP 服务器来提供用户身份。在许多情况下,最好继续使用该目录,甚至在您的应用程序位于 Bluemix® 上时也这样做。在本教程中,我将展示如何实现此操作,同时还将介绍 LDAP 协议本身的基础知识。
构建您的应用程序需要做的准备工作 学习、开发和联系
在新的 developerWorks Premium 会员计划中一站式访问强大的开发工具和活动。除了 12 个月的 Bluemix 订阅和 240 美元贷款之外,还包含 Safari Books Online。浏览 500 多册最优秀的技术图书(其中超过 50 册是专门面向安全开发人员的)。
立即注册 。
一个Bluemix 帐户。 HTML 和 JavaScript 的知识。 MEAN 应用程序堆栈(至少包括 Nodejs 和 Express)的知识。如果不熟悉它,可以查阅 “ 使用 Bluemix 和 MEAN 堆栈构建自助发表 Facebook 信息的应用程序 ” 来了解它,这是 developerWorks 上的一个由 3 部分组成的教程。 一个可以将 Nodejs 应用程序上传到 Bluemix 的开发环境,比如 Eclipse。 ldapjs 包。
运行应用程序
获取代码
“ 在本教程中,我将展示如何使用现有的 LDAP 基础架构向 Nodejs Bluemix 应用程序提供身份验证和授权决策。 ”
演示应用程序
这是一个非常简单的应用程序。它允许您使用一个已提供的 LDAP 服务器或您自己的服务器(如果您有一个可从 Bluemix 服务器访问的服务器)来登录。登录后,您会看到另外两个页面的链接,它们用于演示授权。要访问页面,用户需要是某个特定的 LDAP 组的成员。
LDAP
LDAP(轻量型目录访问协议)是一个 Internet 标准。除了用于访问该目录的协议之外,LDAP 还定义了 命名约定 来标识实体的,定义了 模式 来指定实体中包含的信息。
命名约定
LDAP 中的条目存储在一个称为 目录信息树 的树中。该树的根称为 后缀 ,树枝称为 容器 。这些容器可以是组织单元、场所等。树的叶子是各个实体。
可以在下图中看到此结构的一个示例。后缀是 o=simple-tech 。在它之下有一些树枝: ou=people (表示用户)和 ou=groups (表示组)。在用户的树枝下,有两个表示单个用户的实体: uid=alice 和 uid=bicll 。
0条评论