0

我正在寻找一种网络 AAA(身份验证、授权、记帐)协议来管理从一个帐户访问的并发网络资源。比如说一个账号,两个用户同时登录,如何在两个用户之间分配账号的会话超时时间?

4

1 回答 1

1

我假设您不是在寻找电信公司使用的特定 AAA 功能,而是在类固醇上寻找 RADIUS。或许最简单的方法就是将 FreeRADIUS 之类的东西放在类固醇上。

我假设您的特定 NAS 设备(Wifi 集线器、数据包网关等)支持以下 RADIUS 记录。

  • 访问请求
  • 访问接受/拒绝
  • 会计开始
  • 会计停止
  • 临时会计
  • 会话断开

当您启动会话时,让 FreeRADIUS 运行某种脚本或日志以启动到数据库中。这是每个用户的时钟开始。即使用户登录 3 次,您也会收到启动消息。当他们为每个会话注销时,您将获得会话停止。至少,只需运行数据库并计算增量并将记帐规则应用于该用户。如果该用户在并发会话中使用了 10、20 和 30 分钟,您将获得显示 10、20 和 30 分钟的停止记录。

这行得通,但还远远不够。首先,如果会话很长,您将不知道这些会话的时间,直到它们终止。那可能是从现在开始的几天。这是记帐记录,特别是临时记帐记录的来源。如果您的 NAS 支持它,您可以告诉它为会话生成一个临时记帐记录,例如每 30 分钟。因此,如果会话持续 30 分钟或更短,您将获得开始和停止记录。但是,如果会话持续 45 分钟,您将获得:

时间 0 的开始记录 时间 30 的临时记帐更新 时间 45 的停止记录

这并不是您真正关心的 AAA——任何 RADIUS 服务器都可能完成这项工作——FreeRADIUS、OpenRADIUS、Microsoft RADIUS 服务器。这是您的 NAS 设备。如果它不能发送记录,你就不能处理它们。

于 2013-05-28T03:18:11.657 回答