Authentication, Authorization 和 Accounting

优质
小牛编辑
143浏览
2023-12-01

用户通过许多设备获取访问数据网络和网络资源的权限. 这个发生在一个大范围的硬件上. 以太网交换机, Wi-Fi access points, 和VPN服务器都提供网络访问.

当这些设备用来控制网络访问, 例如一个带有WPA2企业版安全实现的WiFi access point或者一个带有802.1x(EAP)的基于端口的认证的以太网交换机, 他们被称做一个NAS(Network Access Server).

所有这些设备需要进行一些形式的控制来确保合适的安全和使用. 这个要求通常被描述为AAA(Authentication, Authorization和Accounting). AAA有时也被称为"三A框架"(Triple A Framework). AAA是一个高层次的架构模型, 可以被用各种方法实现.

AAA是通过许多RFC来指定的. 一般的AAA架构是在RFC2903上指定的. 也有许多RFC涵盖不同的AAA方面.

Authentication

Authentication通常是考虑的第一步, 为了获取网络访问和他提供的服务. 这是一个过程用来确认是否Alice提供的credential是有效的. 提供credential的最常见的方式是通过用户名和密码. 其他方式像one-time token, certificate, PIN numbers, 或者甚至biometric scanning也可以使用.

在成功authentication之后一个session被初始化. 这个session持续直到网络连接被终止掉.

Alice是谁?

Alice和Bob是占位名. 事实上, 有一个完整的角色集合, 每一个代表一个指定的角色. 我们将会使用下面的占位名:

  • Alice: 一个想要访问我们网络的用户.
  • Bob: 另一个想要访问我们网络的用户.
  • Isaac: ISP(Internet Service Provider)/我们的网络

更多的介绍: http://en.wikipedia.org/wiki/Alice_and_Bob

下图通过使用从ATM提取资金的常见活动作为示例说明了认证过程。 这实际上可以让您访问银行的网络(尽管它极其有限)。

drawing_money_from_an_ATM

Authorization

Authorization是一种Isaac控制资源使用的方式. 在Alice已经authenticate了她自己之后, Isaac可以强加某些限制或者授予某些权利. Isaac可以例如检查Alice从哪台设备访问网络和基于这点来做出决定. 他可以限制Alice可以拥有的打开的session的个数, 给她一个预先决定的IP地址, 只允许某些流量通过, 或者甚至执行QoS基于一个SLA(Service Level Agreement, 服务级别协议).

Authorization通常包含逻辑. 如果Alice是学生组的一部分那么在工作时间没有网络访问权限. 如果Bob通过一个captive portal访问网络, 那么一个带宽限制被强加来阻止他超量使用网络连接.

逻辑可以基于许多事情. Authorization决定例如可以基于组成员或者你连接的NAS或者甚至你访问资源是星期几.

如果我们采用之前的ATM示例,我们可以看到,如果Alice没有透支工具,她将受限于她可以提取的金额。

Alice_does_not_have_an_overdraft_facility

Accounting

Accounting是一种测量资源使用量的方式. 在Isaac已经确定谁是Alice并且在建立的session上强加合适的控制, 他也可以测量她的使用量. Accounting是测量使用量的不间断的过程.

这允许Isaac来跟踪Alice花费了多少时间和资源在一个建立的session上. 获取accounting数据允许Isaac来对Alice的资源进行计费, 趋势分析, 和行为监视.

当Alice想要检查她的使用量和可取出的钱, ATM提供这个功能. Isaac银行也可以监视他的账户和发现是否她经常在月底前花光. 他们然后可以提供给他一个透支机制.

check_her_usage_and_availability_of_money

RADIUS是一种协议用来提供在TCP/IP网络上的AAA. 下一节将会继续更多关于RADIUS协议的内容.