开发集成用户管理,身份验证

时间:2014-02-28 09:29:30

标签: active-directory ldap kerberos user-management radius

我们要求生成集中式使用管理和身份验证系统,用户可以为其分配角色,设置/撤销密码等。

系统必须在Windows上与其他Windows机器通信。但是,如果它可以扩展到运行vxworks的嵌入式工业控制器,那将是有用的。

虽然我模糊地了解Radius,Kerberos,LDAP和活动目录,但我很难理解这些不同技术如何结合在一起。

知道Vxworks支持Radius,并且对kerberos有一些支持,这将是支持此类功能的最佳解决方案。

也可以向任何人推荐各种技术如何结合在一起以支持用户管理的解释。

2 个答案:

答案 0 :(得分:2)

Kerberos是一种身份验证和密钥分发协议。它允许客户端和服务器(称为“安全主体”)之类的对等体相互证明其身份,以及保护它们之间的后续通信。它要求通过网络提供称为“密钥分发中心”或KDC的身份验证服务器,以便进行身份验证,但并非每个成员始终需要访问每个操作的KDC(例如,服务器不需要联系一个KDC,但客户端确实如此),并且通常会缓存凭据,因此需要更少的网络往返。缓存机制以比缓存密码更安全的方式提供单点登录,因为缓存的凭据在一段时间后过期,无法用于更改密码。它还有一个内置的Kerberos安全域之间的联合概念,称为“领域”.Kerberos的一个重要实际好处是它是同类中最普遍实现和可用的系统:它可用于各种通过SASL和GSSAPI等抽象方案实现协议,这些协议在许多平台上广泛实现,包括Unix和Windows。用于各种协议和应用程序的流行客户端和服务器(包括IMAP,POP,SMTP,SSH,LDAP,Subversion,NFS,HTTP等)支持Kerberos,并且可以通过单一基础架构进行保护(在不同程度上)。

RADIUS在单个协议中提供身份验证,授权和记帐(“AAA”)。它主要用于路由器,交换机,VPN网关,WiFi接入点等网络设备,为管理访问和用户提供身份验证,然后提供授权(允许用户做什么)和计费(记录动作)。身份验证通过RADIUS上的各种独立机制进行,例如EAP,PEAP和MS-CHAP。

LDAP是一种目录访问协议:LDAP服务器存储有关通过X.500“可分辨名称”命名的节点的信息,与您在X.509公钥证书中看到的相同,例如: “CN = Richard E. Silverman,ST = NY,O =我的公司”。节点具有属性,LDAP客户端以各种方式向服务器查询给定节点的属性,包括搜索节点名称空间的整个子树,模式匹配以及指示应返回哪些属性的过滤器。

关于LDAP是一种“身份验证协议”,经常会有一些混淆,这不是它的主要目的。这是因为许多需要验证用户名/密码对的系统提供“LDAP身份验证”作为一种方式。这意味着系统将联系LDAP服务器,使用提供的用户名和密码对其进行身份验证,然后断开连接而不发出LDAP目录查询。因此,它使用LDAP的安全性作为密码验证服务。它就像使用SSH登录到给定主机一样,然后立即注销,使用登录成功或失败来验证用户的密码。

“Active Directory”是Microsoft的营销,产品和技术术语。它不是指上述条款之类的单一协议;相反,它命名了一个包含多个协议(包括Kerberos,LDAP和DNS)的总体系统,由“域控制器”实现,它为Windows主机集合提供全面的安全性,命名和管理服务。

答案 1 :(得分:2)

RADIUS Kerberos LDAP 理论上都可以提供集中式用户身份验证和(有限)授权(Active Directory是LDAP的实现) 。

简单地说:

  • RADIUS专为集中式拨入系统而设计,不包含许多用于授权管理的挂钩(例如角色)。今天,它被用于强大的身份验证解决方案,如硬件令牌。
  • Kerberos的设计考虑了安全的单点登录。它提供了一个集中式服务器,可以向用户和服务授予身份验证票证。它是一个开放标准,在Windows中实现(a.o.),集成在Active Directory中。
  • LDAP是一个面向对象的分层用户数据库(实际上是协议),具有内置的身份验证机制。其默认架构包含用户和组,允许设置授权。

简而言之:使用LDAP进行集中式用户和组管理和身份验证(您可以使用Active Directory)。接下来,使用Kerberos进行SSO。有两个主题的文档很多。