假设您有一个关于新的开源项目的好主意,可以满足您公司的一些需求。 您知道其他组织也需要它,因为每个人都需要一些帮助来管理关键基础设施。 您规划了一个架构,做了一些快速的测试代码,现在是时候添加一些身份验证代码了。 如果它是一个基于 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 条评论