文章目录
authentik 相关文档
## 项目地址:
https://github.com/goauthentik/authentik
## 官方文档
https://docs.goauthentik.io/docs/
## 大佬的博客
https://ecwuuuuu.com/post/authentik-tutorial-5-setup-migration/
## 下述docker-compose.yml 所含4个容器介绍
PostgreSQL、Redis:数据库相关
authentik-server:
authentik-worker:
docker compose 方式部署
## 1、准备文件
mkdir -p /opt/devops/authentik
cd /opt/devops/authentik
wget https://goauthentik.io/docker-compose.yml
## 2、准备配置文件(.env 环境变量文件)
# 生成密码和密钥并将其写入您的.env文件
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
# 启用错误报告
echo "AUTHENTIK_ERROR_REPORTING__ENABLED=true" >> .env
# 配置电子邮件(这里以阿里企业邮为例)将下述内容写入 .env
cat >> /opt/devops/authentik/.env <<"EOOF"
# 设置SMTP发件箱,这里以阿里企业邮为例
AUTHENTIK_EMAIL__HOST=smtp.qiye.aliyun.com
AUTHENTIK_EMAIL__PORT=465
AUTHENTIK_EMAIL__USERNAME=xxxx@wsfnk.com
AUTHENTIK_EMAIL__PASSWORD=xxxxxxx
AUTHENTIK_EMAIL__USE_TLS=false
AUTHENTIK_EMAIL__USE_SSL=true
AUTHENTIK_EMAIL__TIMEOUT=10
AUTHENTIK_EMAIL__FROM=xxxx@wsfnk.com
# 不修改默认的 HTTP/HTTPS 9000/9443 端口
#COMPOSE_PORT_HTTP=80
#COMPOSE_PORT_HTTPS=443
#定义了使用哪个版本
AUTHENTIK_TAG=2025.4.1
EOOF
## 3、下载image,并启动
docker compose pull
docker compose up -d
初始化 authentik
## 初始化链接(浏览器访问下面地址)
http://<your server's IP or hostname>:9000/if/flow/initial-setup/
# 默认管理员账户 akadmin
A、配置nginx反向代理(Tips: 域名解析自行配置)
## 1、准备文件
mkdir -p /opt/devops/nginx
cd /opt/devops/nginx
mkdir conf certs
cat > /opt/devops/nginx/docker-compose.yml <<EOF
services:
nginx:
image: nginx
ports:
- "0.0.0.0:80:80"
- "0.0.0.0:443:443"
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf:ro
- ./certs:/etc/nginx/certs:ro
restart: always
EOF
## 2、上传证书文件
[root@authetik ~]# ls -lh /opt/devops/nginx/certs/
total 12K
-rw-r--r-- 1 root root 1.7K May 31 18:00 wsfnk.com.key
-rw-r--r-- 1 root root 4.7K May 31 18:00 wsfnk.com.pem
## 3、准备nginx配置文件
cat > /opt/devops/nginx/conf/nginx.conf <<"EOOF"
events {
worker_connections 1024;
}
http {
upstream authentik {
server 192.168.60.24:9443;
keepalive 10;
}
map $http_upgrade $connection_upgrade_keepalive {
default upgrade;
'' '';
}
server {
listen 80;
# listen [::]:80;
server_name sso.wsfnk.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
http2 on; # 这是新的 HTTP/2 启用方式
# listen [::]:443 ssl;
server_name sso.wsfnk.com;
# TLS certificates
ssl_certificate /etc/nginx/certs/wsfnk.com.pem;
ssl_certificate_key /etc/nginx/certs/wsfnk.com.key;
add_header Strict-Transport-Security "max-age=63072000" always;
# Proxy site
# Location can be set to a subpath if desired, see documentation linked below:
# https://goauthentik.io/docs/installation/configuration#authentik_web__path
location / {
proxy_pass https://authentik;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade_keepalive;
}
}
}
EOOF
## 4、下载image,并启动
cd /opt/devops/nginx
docker compose pull
docker compose up -d
## 5、浏览器访问 https://sso.wsfnk.com 就能访问刚才的authentik应用了
B、检测邮箱配置是否正常
## 官方文档
https://docs.goauthentik.io/docs/troubleshooting/emails
## 测试方式(进 work 容器去发送邮件)
# ak test_email [...]
docker compose exec worker ak test_email aaa@wsfnk.com
C、上传icon等图标,替换为自有品牌
## 上传报错 官方解决文档
https://docs.goauthentik.io/docs/troubleshooting/image_upload
## 修正权限
cd /opt/devops/authentik
chown -R 1000:1000 media/
chown -R 1000:1000 custom-templates/
chmod -R ug+rwx media/
chmod -R ug+rx certs/
## 将logo 或者 icon 上传到 media目录 后,按下图所示编辑
D、更改 登录、应用程序授权 页面的提示语句
## 就是修改 "流程与阶段" 中的 流程
编辑默认的身份认证流程:default-authentication-flow
编辑默认的显示应用授权提示信息:default-provider-authorization-explicit-consent
E、配置自助找回密码
## 明确 找回密码工作逻辑
进入找回页面 > 通过 用户名或者邮箱 找回 > 发送密码重置链接到 用户的邮箱
## 创建 两个阶段(不提供图了,去阶段创建就行)
创建阶段> 类型选择 Identification Stage > 取名为 找回密码身份验证 (勾选 用户名+邮箱)
创建阶段> 类型选择 Email Stage > 取名为 找回密码邮件发送 (选择全局邮件配置)> 主题设置为 统一认证SSO平台 找回密码 (模版不变:Password Reset)
## 创建 找回密码 流程(不提供图了,去流程创建就行)
创建流程> 名称和标题 找回密码 > Slug 为 recover-your-password > 指定为 恢复 (其他不动)
## 将 找回密码 流程 与 4个阶段进行绑定
次序1 优先级10 找回密码身份验证
次序2 优先级20 找回密码邮件发送
次序3 优先级30 default-password-change-prompt
次序4 优先级40 default-password-change-write
## 让登录页出现 找回密码按钮(编辑 默认身份认证 流程)
流程 > 进入 default-authentication-flow > 进入阶段绑定 > 编辑阶段 default-authentication-identification > 在流程设置 恢复流程 处 选择 找回密码(见下图3)
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论