假设您有一个关于新开源项目的绝妙想法,可以满足贵公司的一些需求。您知道其他组织也需要它,因为每个人都需要一些帮助来管理关键基础设施。您绘制了一个架构图,做了一些快速的测试代码,现在是时候添加一些身份验证代码了。如果它是一个基于 Web 的工具,支持 http 身份验证,您就完成了。Apache 可以处理它。如果它是基于 Linux 的,支持 PAM。完成了。但如果两者都不是呢?
您可能会想“我们将使其可插拔,并且我们将做一个 LDAP 插件,以便我们可以与 Active Directory 或 LDAP 一起工作。现在,开始记录日志……” 等等。退后一步。我想提出一个比 LDAP 更好的身份验证协议作为默认的首选协议:RADIUS。
RADIUS 是一个有趣的协议。它在企业中无处不在,但通常在需要时才使用。它配置起来非常简单,但却被误解了。它支持比 LDAP 更多的功能,但很少被创建面向企业的软件的开发人员考虑。Cisco、Checkpoint、Netgear、Apache、PAM、每个双因素身份验证供应商、每个 VPN 提供商等都支持它。
RADIUS 应该优于 LDAP 的最佳理由:LDAP 服务器认为自己是授权和身份验证的最终权威;RADIUS 服务器将拆分身份验证和授权。身份验证是你是谁。授权是你被允许做什么。拆分它们很重要,因为您越来越需要双因素身份验证。但是,您不必拆分它们。支持 RADIUS 还可以让您获得 LDAP。
从安全角度来看,拆分授权和身份验证是一件好事。它允许您在目录中而不是在身份验证服务器中进行用户管理。人力资源人员可以在目录中禁用用户,该用户将被锁定。这比需要在两个地方禁用它们要好得多。
此外,在 Linux 和 Windows 上都有免费和开源的服务器选项。Linux 有历史悠久且强大的 Freeradius 和其他选项。Windows 有 NPS,即免费的 Microsoft RADIUS 插件。此外,Cisco 和其他网络供应商也提供了强大的产品。
RADIUS 和 LDAP 都是协议以及服务器,因为您可以拥有 RADIUS 服务器,并且可以拥有两个使用 RADIUS 通信但不执行 RADIUS 服务器功能的系统。因此,VPN 可以使用 RADIUS 向双因素身份验证系统验证凭据。这不是最好的设置,但它是可能的,而且非常简单。
RADIUS 非常简单。您只需要每个系统的 IP 地址和一个共享密钥。不需要 BindDN 或 LDAP URL 或任何类似的东西。(我会说:我讨厌配置 LDAP。LDAP 只是相对于 X509 而言是轻量级的。)对于开发人员来说,添加 RADIUS 与添加 LDAP 一样容易。有可用的开源库,例如 jRadius。
单点登录协议呢?我希望我能提出建议。OpenID-Connect 似乎可能成为赢家,但这还有很长的路要走。这些协议需要大量的审查和审核才能证明其安全性。我相信你们中的大多数人已经删除了网站上的“使用 OpenID 登录”选项。在 SSO 协议中出现明确的赢家之前,我希望开发人员会考虑 RADIUS。它为您提供 LDAP 并提供更多安全选项。
4 条评论