测试RADIUS配置方法

Test RADIUS configuration method

我正在开发一个需要与 RADIUS 服务器集成作为身份验证方法的产品。 配置 RADIUS 服务器(IP 地址、端口、共享密钥)时,我想做一个 "test" 以检查配置是否有效 - 服务器可用并且它确实是 RADIUS 服务器,共享密钥是好的。

我做了一些关于如何做的研究, 我的选择是:

  1. 使用虚构的用户名和密码向 RADIUS 服务器发送访问请求消息
  2. 向 RADIUS 服务器发送 Status-Server 消息

RFC 5997 介绍了在 RADIUS 协议中使用状态服务器数据包。 此数据包扩展使客户端能够查询 RADIUS 服务器的状态。 Status-Server 被标记为实验性和信息性 RFC 而不是标准跟踪 RFC

我的问题是:

  1. 哪些是最常用\使用的 RADIUS 服务器供应商? MS NPS、FreeRADIUS、其他?
  2. 这些供应商是否支持 Status-Server 请求 - 他们是否实现了这种数据包类型?
  3. 如果我将使用访问请求,我将在 "Reply-Message" 属性中收到 "Access-Reject" 和失败消息。我能从那条短信中了解拒绝的原因吗?是否有属于标准​​的错误列表 codes\messages?

非常感谢,

约西·兹拉希亚

广告 1) 很难获得准确(甚至估计)的数字,但您应该会遇到 FreeRADIUS、Microsoft NPS、Radiator,也许还有 Cisco ACS/ISE。

Ad 2) FreeRADIUS, Radiator 支持。 Microsoft NPS 和 Cisco ACS/ISE 没有。如果您的“测试”只使用一次(在配置时),我会在访问请求中使用选项 1。如果您希望定期检查 RADIUS 服务器的可用性和配置,我建议同时实施这两个选项并允许将检查配置为 RADIUS 配置的一部分:

    IP: 1.2.3.4
    Port: 1812
    Shared Secret: U7tr453cur3
    Servercheck: [x] Status-Server
                 [ ] Access-Request

广告 3) 来自 RFC2865,section 5.18 (Reply-Message):

"[...] 该属性指示可以向用户显示的文本。[...] 当在访问拒绝中使用时,它是失败消息。它可能指示一个对话框消息以提示在另一次访问请求尝试之前的用户。[...] 文本字段是一个或多个八位字节,其内容取决于实现。它旨在是人类可读的,并且不得影响协议的操作。建议该消息包含 UTF-8 编码的 10646 [7] 个字符。"

显然没有指定标准消息;但是,如果 IP、端口或共享密钥配置不正确,您根本不会收到响应,因为 RFC 2865 指定:

“来自 RADIUS 服务器没有共享机密的客户端的请求必须被静默丢弃。”