目录服务怎么了?
几天前,在 Twitter 上,来自 @jwildeboer 的一条推文引起了我的注意
OATH、OAUTH、OpenID - 这都变得太复杂了。我们需要面向未来的简单身份验证。
它引起我注意的原因不是因为我同意他的观点(我确实同意),而是因为简单身份验证的想法,尤其是在不同的系统之间,一直是 IT 领域的圣杯,而且每次我们认为我们已经解决了这个问题时,解决方案似乎都会在我们手中瓦解。事实上,OpenID/OAUTH/OATH 只是解决身份验证问题的最新尝试。上一次尝试是一个名为 X.500 的小标准,而 Jan 今天早上的推文提醒了我,不仅想起了 x.500 及其承诺,还想起了该标准因其复杂性而失败的程度。
我最近并没有真正考虑目录服务,因为我曾在很多公司工作过,那里的目录服务实施得非常糟糕(或者根本没有实施),以至于几乎不值得考虑,尽管数百万用户每天都在使用它,或者更确切地说是它的弟弟 LDAP,最值得注意的是 Active Directory,以及 Novell Directory Services、Oracle Directory Services、Fedora Directory Services 和其他 LDAP 系统,不胜枚举,其中大多数都依赖于某种形式的 OpenLDAP 项目。
但是目录服务本身就是为了解决大型、分散、互连网络中的用户病毒问题而进行的尝试,在这些网络中,像 NIS 和 NIS+ 这样的工具在功能上已经耗尽了潜力,同时提供了对其他更安全的身份验证功能的访问,因为我们称之为互联网的东西真的开始兴起。X.500 标准旨在使使用标准查找机制互连系统变得更容易。当然,这是一场可怕的灾难,任何曾经使用过纯粹基于 X.500 的系统的人都可以告诉你,至少从功能角度来看是这样,但从理论角度来看,这是正确的方向。
在 20 世纪 90 年代,像 Oracle 和 Novell 这样的公司都假设需要某种形式的互连目录服务,这将有助于证明你是谁,而无需注册你需要的每个网站和系统,无论你是在你的私有内联网还是公共互联网上。就像简单的身份验证一样,单点登录的想法是我们大多数人职业生涯都在追逐的梦想。
例如,我曾在一家组织工作,在那里 Microsoft 的 Active Directory 是最高准则。它控制着一切,从你的桌面外观和性能(如果你运行的是 Windows 当然)到你如何访问你的电子邮件,再到你如何访问 VPN。但是,当你连接到教育和培训系统时,你必须拥有一组完全不同的凭据。而且由于大多数人每年只连接到该系统参加那些公司世界中我们都必须参加的强制性课程,因此在年初会出现大量的密码重置故障单(该系统也没有自动密码重置系统 - 那是为了安全原因......是啊,是啊,我知道,我没有设计该系统,我只是不得不使用它,但我离题了)。这里的重点是,当系统被设计时,曾讨论过如何将身份验证与 Active Directory 结构集成,但高层决定这是一个坏主意。这不是一些无法在不付出巨大努力的情况下连接的古董大型机,这是一个简单的网站,运行在 Microsoft 软件上。
如果你使用 LDAP,你就知道设置、集成和管理它有多么具有挑战性。创建一个可用的 LDIF 文件几乎是一门神秘的科学(也是从 X.500 时代遗留下来的),并且将 LDAP 身份验证与某些系统集成比与其他系统更容易。它比本世纪初有所改进,但它仍然不如我们希望的那么容易或那么无缝,尤其是当你要跨平台到一些不太了解 LDAP 甚至支持不同 LDAP 实现的平台时。
几年前,我实际上注册了一个 OpenID。从那时到现在,OpenID 标准中的某些东西肯定发生了变化,因为我当时的 OpenID 凭据现在不再有效,这真的有悖于初衷。
但这里的重点是,在 2010 年,我们仍在寻找一种连接到系统的方法,而无需向所有系统注册。并且凭借我们目前的所有解决方案,我们仍然没有完全解决这个问题。如果有人提到信任网络,我可能会尖叫。因为,毕竟,那是问题的根源,或者至少是其中之一。