authentik实践之一、部署及 基本管理

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目录 后,按下图所示编辑

file

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)

file

file

file

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1485.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2025/6/2作者: 辣条①号

目标:网络规划设计师、系统工程师、ceph存储工程师、云计算工程师。 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录