一、安装docker
二、下载authelia代码
# 下载代码并切换到本地运行例子
git clone https://github.com/authelia/authelia.git
cd authelia/examples/compose/local
三、配置相关参数
- 打开configuration.yml查看配置
- 具体参数详解可查看: https://www.authelia.com/docs/configuration/
1、访问控制
access_control:
default_policy: deny
rules:
- domain: public.example.com
policy: bypass
- domain: traefik.example.com
policy: one_factor
- domain: secure.example.com
policy: two_factor
- default_policy 设置默认的策略
- rules 设置规则,设置不同网络地址下的策略
常见的policy:
- deny:是拒绝用户访问资源
- bypass:跳过所有身份验证并允许任何人使用该资源
- one_factor:需要用户名密码登录才能访问资源
- two_factor:需要用户完成额外验证才能访问资源,如谷歌身份验证器等
2、session配置
session:
name: authelia_session
secret: unsecure_session_secret
expiration: 3600 # 1 hour
inactivity: 300 # 5 minutes
domain: example.com # Should match whatever your root protected domain is
redis:
host: redis
port: 6379
- name: 会话 cookie 的名称,运行多个实例时有用
- secret: Redis 中用于加密会话数据的密钥
- expiration: cookie 到期和会话被销毁的时间
- inactivity:用户处于非活动状态下,会话被销毁的时间
- domain:生效的域
- redis:存储session的redis配置
3、身份验证设置(存储用户名及密码)
authentication_backend:
disable_reset_password: false
file: {}
ldap: {}
- disable_reset_password 是否可以重置密码
- file: 用户存储在 YAML 文件中,并带有其密码的散列版本
- ldap: 用户存储在远程服务器中
4、规则配置
regulation:
max_retries: 3
find_time: 2m
ban_time: 5m
- max_retries: 在用户可能被禁止之前失败的登录尝试次数
- find_time: max_retries的持续时间段
- ban_time: 禁止时间
5、服务器配置
server:
host: 0.0.0.0
port: 9091
path: ""
read_buffer_size: 4096
write_buffer_size: 4096
enable_pprof: false
enable_expvars: false
disable_healthcheck: false
tls:
key: ""
certificate: ""
- Authelia 使用的 http 服务器模块设置
6、存储配置
storage:
mysql:
host: 127.0.0.1
port: 3306
database: authelia
username: authelia
password: mypassword
timeout: 5s
- mysql: mysql的存储配置。 用于存储用户首选项、身份验证日志等
四、启动和运行
1、根据访问控制的规则配置设置hosts
- 这里推荐一款软件:SwitchsHosts。 一键设置hosts,十分方便
2、启动项目
docker-compose up -d