type
status
date
slug
summary
tags
category
icon
password
本文介绍了Authelia的安装,以及在Traefik中的使用。如果不需要,也可跳过本篇。
📝 Authelia介绍
Authelia 是一个开源的身份验证和授权服务器,通过 Web 门户为您的应用程序提供双因素身份验证和单点登录(SSO)。
💿 Authelia安装
下面介绍了在Unraid中安装Authelia,如果使用独立的Docker部署,请跳转到下一节Docker Compose。
Redis
默认情况下,Authelia使用内存保存会话。不配置redis会使Authelia有状态。推荐在生产环境中使用redis。
在应用中找到redis,点击安装。
- 设置自定义网络
- 设置一个强密码(稍后将由Authelia使用)
- 按如下方式添加应用数据路径
在模板中,单击“添加另一个路径、端口、变量、标签或设备”并添加以下路径:
容器路径: /bitnami/
主机路径: /mnt/user/appdata/redis/bitnami/
使用以下命令更改 redis 文件夹的权限:
chmod -R 777 /mnt/user/appdata/redis/*
MariaDB
如果您尚未安装 MariaDB(或PostgreSQL),请创建Authelia数据库容器。
- 设置自定义网络
- 设置root密码
- 设置Authelia数据库、用户和密码(稍后将由Authelia使用)。
如果您已经安装了MariaDB,可以按以下步骤为Authelia创建数据库:
- 创建Authelia用户:
- 进入数据库控制台:
- 创建数据库用户
将
YOURPASSWORD
替换为你的数据库密码,此密码将在configuration.yml中引用。- 创建数据库
- 输入下面的内容回车:
- 授权
- 输入下面的内容回车:
- 退出
YOURPASSWORD
是您为上面的用户创建的密码。Authelia
按下图创建Authelia容器
在我们允许Traefik将auth请求转发到Authelia之前,我们首先需要通过Traefik反向代理 Authelia应用程序。所以我们添加了3个标签到Authelia。
点击
添加另一个路径、端口、变量、标签或设备
,选择配置类型为标签
,如下图:依次添加其它标签,完成后启动容器。
注意
由于未配置,容器将立即关闭。这是正常的,您可以暂时将其关闭。
Docker Compose
这里也给出Docker Compose的示例。
🛠️ Authelia配置
配置文件
重要
为了避免 Authelia 重定向到循环中,您必须将此规则添加到 Authelia configuration.yml 中的访问控制部分:
其中
auth.domain
是 authelia 自身的域名。configuration.yml配置模板:
配置文件中的
secret
为随机字符串,可以用以下命令生成:使用两步验证绑定设备时,会向你的邮箱发送注册链接,这需要你有正确可用的SMTP配置。
除了邮箱通知,也可以将通知发送到文件,文件系统通知应只用于测试目的。
Authelia的地址一定要bypass,否则可能会无限循环认证。
创建用户
Authelia有两种方式获取用户信息
选项 1 - 使用简单的 YML 文件和 Authelia 可以读取的用户加密凭据。
选项 2 - 允许 Authelia 从 LDAP 数据库(如 FreeIPA 或 Active Directory)读取数据。
为了方便,我们使用使用用户数据库文件
users_database.yml
.users_database.yml
- 将文件内容复制到appdata/authelia/users_database.yml中。 您必须编辑此文件。
- 将文件调整为要登录的用户。如需帮助,请参阅此处:https://www.authelia.com/docs/configuration/authentication/file.html 例如,更改包括用户名和显示名称。
- 要生成散列密码,请打开终端输入以下内容(将“yourpassword”替换为您想要的用户密码):
启动
此时,您应该启动 Authelia 容器并读取日志。
测试您是否可以访问 Authelia 的 WebUI (https://auth.domain.com) 并可以登录。
设置2FA,在邮箱或者
notification.txt
文件中找到验证码。规则
了解规则
Authelia 配置文件中的规则部分有一些重要的注意事项需要考虑:
- 规则由Authelia从上到下阅读
- 因此,您应该将最严格的规则放在最后。
- 最后的包罗万象通配符规则将通过对您启用 Authelia 的任何内容应用默认策略来保护您,而无需特定规则。
- 有时,您可能希望允许单因素身份验证涵盖某些应用程序,而双因素身份验证涵盖其他应用程序。
- 您可以指定可以访问特定资源的用户和/或组。
- 您可以限制对 URL 的特定子文件夹(而不是整个 URL)的访问。例如,如果要保护应用程序的“管理”页面,而不是主页本身。
- 如果您愿意,您可以结合上述所有内容。
规则示例
绕过API
在上面,您可能会注意到某些规则允许API端点。当您想要保护使用API通信发送和接收数据并且不希望它受到Authelia阻碍的应用程序时,这一点很重要。
一个典型的例子是Sonarr或Radarr。这些应用程序需要 API 与其他应用程序通信,并且由于它们无法自己“登录”到 Authelia,我们需要告诉 Authelia:
1.我们想用Authelia保护 sonarr.domain.com
2.但是,我们希望绕过 Authelia 来处理进出 Sonarr API 端点的流量。
下面是规则(从上面的示例中提取):
同样,请记住层次结构。我们希望绕过高于任何限制性规则,以便 Authelia 知道绕过此端点是第一位的。
📎 参考文章
有关Authelia安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:Biliko
- 链接:https://biliko.net/article/traefik-part4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章