Overview
EAP 总是由另一个协议承载。请求者(验证用户的设备)和 NAS(网络访问服务器)之间最常见的传输是 IEEE-802.1X EAPOL(EAP Over Lan)、PPP(点对点协议)和 IKEv2。
对于 NAS(也称为 802.1X 术语中的身份验证器)和 RADIUS 服务器之间的链路,EAP 数据包在 253 字节边界上分段,并分为多个 EAP 消息属性。 EAP 如何通过 RADIUS 传输由以下定义RFC3579 http://www.ietf.org/rfc/rfc3579.txt.
NAS 通常不会监听 EAP 会话。对于提供隐私的 EAP 方法(例如 EAP-TLS、EAP-PEAP 和 EAP-TTLS),侦听无论如何都不会有效,因为将在请求者和 RADIUS 服务器之间建立 TLS 隧道。
验证
当 NAS 收到来自请求者的 EAP 数据包时,它将剥离封装 (EAPOL/PPP/IKEv2) 并将 EAP 数据分段为 253 字节的块。然后,它将 EAP 数据块作为多个 EAP 消息属性插入到 RADIUS 访问请求数据包中。然后,NAS 将向 RADIUS 服务器发送 RADIUS 访问请求数据包。
RADIUS 服务器使用 EAP 消息属性的存在作为其应执行 EAP 身份验证的指示,就像它使用用户密码作为其应执行 PAP 的提示和 CHAP 密码作为其应执行 CHAP 的提示一样。
RADIUS 服务器将按照接收的顺序连接 EAP 消息属性(这就是为什么代理不要重新排序 EAP 消息属性很重要),并将连接的数据传递给初始化 EAP 状态机的代码。
然后,EAP 代码将制定其响应并将其编码为 EAP 数据包,将该数据包拆分为 EAP 消息属性,并在 RADIUS 访问挑战数据包中将这些属性发送回 NAS。
状态属性也将在挑战中发送。该状态属性将包含在 NAS 的下一个访问请求中。状态属性允许 RADIUS 服务器在多轮访问请求/访问挑战之间恢复 EAP 身份验证状态。它通常用作正在进行的 EAP 会话存储的密钥。
当NAS收到Access-Challenge时,它会重新组装EAP-Message属性,将EAP数据封装在EAPOL/PPP/IKEv2中,并将封装的数据发送回请求者。
NAS 充当翻译器,进行多轮访问请求/访问挑战交换。
当 RADIUS 服务器有足够的信息来决定接受或拒绝用户时,它将发回包含 EAP-Success/EAP-Failure 的 EAP-Message。 RADIUS 服务器将在访问接受或接受拒绝数据包中将此 EAP 消息发送回 NAS。RFC3579 http://www.ietf.org/rfc/rfc3579.txt强制要求 EAP-Successes 在 Access-Accept 数据包中返回,EAP-Failures 在 Access-Reject 数据包中返回。
当需要将密钥材料分发给 NAS 和请求者时,NAS 的密钥材料在 Access-Accept 中包含的 MS-MPPE-Recv-Key 和 MS-MPPE-Send-Key RADIUS 属性中提供。在 EAP 方法的进行过程中,请求者将收到(或导出)相同的密钥材料。不同 EAP 方法如何导出此密钥材料是不同的。
当发送访问接受数据包时,通常会包含告诉 NAS 如何配置会话的属性。对于 802.1X/无线环境,返回到 NAS 的常见属性是会话超时(它设置会话时间的最大限制)和 Tunnel-Private-Group-ID 等(RFC3580 https://www.rfc-editor.org/rfc/rfc3580),它指定会话的未标记 VLAN。
总之,RADIUS 可以被视为传输和控制(对于 NAS)协议,而 EAP 可以被视为运行在 RADIUS 之上的实际身份验证/授权协议。
希望这可以帮助!