mysql - 将两个身份验证类型 PAP 和 EAP 与 FreeRadius 结合使用

标签 mysql authentication radius freeradius radius-protocol

我有 freeradius 服务器,它使用 MySQL 来存储数据。

以下是我的数据库

radcheck table
+-----+----------+--------------------+----+--------------+
| id  | username | attribute          | op | value        |
+-----+----------+--------------------+----+--------------+
| 474 | varun    | Cleartext-Password | := | sunshine3003 |
+-----+----------+--------------------+----+--------------+


radreply table
+----+----------+--------------+----+-------+
| id | username | attribute    | op | value |
+----+----------+--------------+----+-------+
|  1 | varun    | Fall-Through | =  | Yes   |
+----+----------+--------------+----+-------+


radgroupcheck table
+----+-----------+-----------+----+-------+
| id | groupname | attribute | op | value |
+----+-----------+-----------+----+-------+
|  1 | group1    | Auth-Type | := | PAP |
|  2 | eapgroup  | Auth-Type | := | EAP   |
+----+-----------+-----------+----+-------+


radusergroup table
+----------+-----------+----------+
| username | groupname | priority |
+----------+-----------+----------+
| varun    | eapgroup  |        1 |
| varun    | group1    |        2 |
+----------+-----------+----------+

我们有两个不同的客户端,它们使用两种不同的具有自由半径的身份验证类型,一个使用 PAP 并在 User-Password 属性中发送密码。

和另一个客户端用户EAP并在EAP-MessageMessage-Authenticator中发送密码

我想要的是,当 PAP 无法验证或当 User-Password 属性不存在时,它应该使用 EAP 作为 Auth-Type > 如果 Radius 属性中不存在 EAPMessage-Authenticator,则应回复访问拒绝或身份验证失败消息。

任何帮助将不胜感激

最佳答案

您不应该设置control:Auth-Type手动。此属性的存在使得 authorize 中的模块部分可以与服务器的其余部分通信应在 authenticate 中运行的身份验证类型。部分。

依次设置Auth-Type根据属性,您应该在授权部分依次列出 pap、eap 等模块,它们将检查请求中是否包含必需的属性并确定正确的 Auth-Type 值。

如果您想制定策略来限制某些用户使用某些类型的身份验证,请在回复列表(radgroupreply 表)中设置 Auth-Type,并检查在授权部分的末尾设置了哪个 Auth-Type。

authorize {
    eap
    pap
    sql

    if (control:Auth-Type != reply:Auth-Type) {
        reject
    }
}

关于mysql - 将两个身份验证类型 PAP 和 EAP 与 FreeRadius 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45606910/

相关文章:

css - 倾斜一个 Angular 并向对 Angular 添加边框半径

java - JpaRepository 查找或创建用户角色返回 null 并给出错误

mysql - SQL查询: How to Get tweet from following?

sql - Google 登录,数据库端

authentication - 拉拉维尔 5.5 : Use another table for authentication instead of 'users'

php - 获取用户特定半径内的坐标

php - 填充的下拉列表如何获取值?

php - 如何向数据库中插入一些与另一行相同的信息?

php - 自动登录 Laravel 5 中的帐户

python - Python OpenCV-过滤掉不在附近的轮廓