Tinyauth

リバースプロキシ

tinyauthをリバースプロキシの背後で操作する方法

tinyauthは基本的にリバースプロキシの背後で動作するように設計されています。クライアントの実際のIPアドレスとプロトコルを正しく識別するため server.trust_proxyを設定する必要があります。

# config.yaml
server:
  trust_proxy: true
  • server.trust_proxy:リバースプロキシヘッダを信頼するかどうかを設定します。デフォルトは falseはい。
    • true:すべてのプロキシヘッダを信頼します。完全に信頼できるネットワークでのみ使用してください。
    • false:プロキシヘッダを信頼していません。
    • '127.0.0.1':指定されたIPアドレスのプロキシのみを信頼します。
    • 1 または 2:指定されたホップ数だけのプロキシを信頼します。
Caution

server.trust_proxyを正しく設定しないと、IP スプーフィングの脆弱性が発生する可能性があります。本番環境では true 代わりに、特定のプロキシIPアドレス範囲を指定することをお勧めします。


Nginx

Nginxをリバースプロキシとして使用する場合の設定例です。

本番環境では server.trust_proxyにプロキシのIPアドレスを直接指定することをお勧めします。

# config.yaml
server:
  # Nginx가 같은 호스트에서 실행되는 경우
  trust_proxy: '127.0.0.1'
# /etc/nginx/conf.d/tinyauth.conf
server {
    listen 443 ssl;
    server_name auth.example.com;

    ssl_certificate     /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/key.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $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;
    }
}

Caddy

Caddyをリバースプロキシとして使用する場合の設定例です。 Caddyは自動的に HTTPS 証明書を発行し、 X-Forwarded-* ヘッダーを設定してください。

Docker ネットワーク上 Caddyが実行されると、 Caddy コンテナのIP帯域を指定します。

# config.yaml
server:
  # Docker 브릿지 네트워크 대역
  trust_proxy: '172.18.0.0/16'
# Caddyfile
auth.example.com {
    reverse_proxy localhost:8080
}