• 搜索
  • 夜间模式
    ©2025-2026  技术杂货铺 Theme by OneBlog

    技术杂货铺博客

    搜索
    标签
    # npm # authentik # ddns # wg-easy # v2ray
    技术

    Authentik与NPM配置访问

    2026.04.19 / 12 阅读 / 0 评论 / 3066 字
    技术

    Authentik与NPM配置访问

    阅读 12 评论 0 发表于2026.04.19

    通过authentik的认证体系对NPM搭建的站点进行二次保护
    1、Authentik与NPM在同一台宿主机
    需保证Authentik和NPM在同一网络,在NPM通过docker的名字进行访问,不要使用IP,如server

    高级的设置如下:
    location / {

    proxy_pass http://server:9000; 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    
    # 关键:锁定 4333
    proxy_set_header Host $host:4433;
    proxy_set_header X-Forwarded-Host $host:4433;
    proxy_set_header X-Forwarded-Port 4433;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    }
    error_page 497 https://$http_host$request_uri;

    Authentik不需做设置

    2、Authentik与NPM不在同一台宿主机
    在NPM通过ip访问Authentik,如192.168.2.195

    高级的设置如下:
    location / {

    proxy_pass http://192.168.2.195:9000; 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    
    # 关键:锁定 4333
    proxy_set_header Host $host:4333;
    proxy_set_header X-Forwarded-Host $host:4333;
    proxy_set_header X-Forwarded-Port 4333;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    }
    error_page 497 https://$http_host$request_uri;

    Authentik不需做设置

    3、设置其他站点平台
    站点具体的IP和端口

    高级的设置如下:

    放在最顶部,解决大 Cookie 导致的 500

    error_page 497 https://$http_host$request_uri;
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
    large_client_header_buffers 4 128k;

    1. 验证接口(去掉 proxy_pass 结尾的斜杠)

    location /outpost.goauthentik.io/ {

    proxy_pass http://192.168.2.195:9000; # 不要在这里加 /outpost... 否则路径会重叠
    
    proxy_set_header Host $http_host; 
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Original-URL $scheme://$http_host$request_uri;

    }

    2. 根路径拦截

    location / {

    # 这一行必须和上面的 location 对应
    auth_request /outpost.goauthentik.io/auth/nginx;
    
    # 捕捉验证失败
    error_page 401 = @goauthentik_proxy_redirect;
    
    # 你的后端应用
    proxy_pass http://192.168.2.196:8080;
    
    # 将验证后的用户信息和 Cookie 传给后端及浏览器
    auth_request_set $auth_cookie $upstream_http_set_cookie;
    add_header Set-Cookie $auth_cookie;
    
    # 获取 authentik 传回的用户信息(可选,方便后端识别用户)
    auth_request_set $authentik_username $upstream_http_x_authentik_username;
    proxy_set_header X-Authentik-Username $authentik_username;
    
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;

    }

    3. 登录跳转逻辑

    location @goauthentik_proxy_redirect {

    internal;
    # 使用当前正在访问的应用域名 (crawlab.198388.xyz:4333) 来触发 start
    return 307 $scheme://$http_host/outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri;

    }

    Authentik设置相应的Proxy Provider即可

    本文著作权归作者 [ 爱生活的懒人 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。

    发表留言
    回复

    Copyright©2025-2026  All Rights Reserved.  Load:0.010 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。