apache - 使用 freeRadius 和 Apache 进行单点登录?

标签 apache freeradius

我已经看到这个问题的答案了

Setup FreeRadius + ldap + single sign-on

答案很有帮助,但是 Apache 的情况怎么样,如何将凭据传递给 Apache?或者如何配置 Apache 只接受已通过 freeradius 身份验证的用户?

详细信息:

我正在使用 ieee802.1x 和 freeradius 对有线网络中的用户(连接到 Nortel 交换机的客户端)进行身份验证,它会起作用,但是当用户请求授权网页时,它会要求他提供该凭据第二次:

有没有办法配置 freeRADIUS 和 Apache,让使用 802.1x 的授权用户获取网页(需要身份验证),而无需要求他们再次输入(类似于单点登录)?简而言之,我们可以将凭据从 freeradius 传递到 Apache 吗? freeRADIUS 网站上有对我有帮助的教程吗?

最佳答案

简短回答
不,不像你所描述的那样。

长答案
您的用户向网络层提供的用于验证其端口访问权限的凭据不可用于用户的 Web 浏览器。如果没有它们,网络浏览器就无法自动将它们提供给您的网络服务器,这就是为什么您的用户必须再次提供它们才能登录您的网站。

选项
如果我们允许自己发挥一点创意,您可能需要使用一些技术选项来提供您正在寻求的登录功能。

  1. 客户端证书
    802.1x 和 Apache 都支持使用客户端证书来验证用户。在此方案中,您将为每个用户生成一个通用用户证书,该证书将用于 802.1x 身份验证和 Web 服务器身份验证。证书可能必须在两个不同的系统中配置,但对于用户来说,如果他们连接到网络,他们就不需要做任何其他事情来使用您的网络服务器进行身份验证。

  2. 专用浏览器插件
    可以想象,您可以开发一个特殊的浏览器插件和相关应用程序来控制接受用户名和密码,然后将它们提供给 802.1x 身份验证系统和网站。该控制应用程序的安全性会受到质疑。

  3. 基于 IP 的身份验证
    如果您为网络上的每个用户分配一个 IP 地址,则可以允许访问 IP 范围并编写自定义模块来查询 IP 地址并将其与用户关联。它本质上是通过 IP 地址进行身份验证,其中 IP 地址充当用户名的代理。它要求您设置 RADIUS 服务器来跟踪在任何给定时间为哪些用户分配了哪些 IP。

链接
对于证书设置,您可以使用下面的链接来指导您。对于其他两项,它们是概念性/理论性的。您必须编写一些代码或找到一些预先实现的代码来执行他们所描述的操作。

关于apache - 使用 freeRadius 和 Apache 进行单点登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24836795/

相关文章:

android - 如何从 Android 应用程序向 Mikrotik 发送登录凭据

python - 无法加载静态数据,Apache、Windows 上的 Django Rest_framework

Apache Camel - Node.js 的问题

python - 奇怪的 `UnicodeEncodeError` 使用 `os.path.exists`

python - 通过两个单独的域访问 Django Web 应用程序

apache - 如何使用 IIS 在 Wamp 上设置 OpenSSL?

freeradius - 如果语句的评估不一致

java - 如何在两个不同的数据库服务器之间双向同步两个表?

mysql - querys.conf 上的 double acctupdateinterval (临时更新部分)

radius - 在 Freeradius 中为 EAP 创建证书时出错