假设您有一个很棒的想法,要开发一个新的开源项目,以满足贵公司的一些需求。您知道其他组织也需要它,因为每个人都需要一些帮助来管理关键基础设施。您规划了一个架构,做了一些快速的测试代码,现在是时候添加一些身份验证代码了。如果它是一个基于 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。
从安全角度来看,拆分授权 (authz) 和身份验证 (authn) 是一件好事。它允许您在目录中而不是在身份验证服务器中进行用户管理。人力资源 (HR) 人员可以在目录中禁用用户,该用户将被锁定。这比需要在两个地方禁用它们要好得多。
此外,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 条评论