summaryrefslogtreecommitdiff
path: root/README.ja.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.ja.md')
-rw-r--r--README.ja.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/README.ja.md b/README.ja.md
index 65b7a3e..c8a3776 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -1,3 +1,43 @@
+<!-- START doctoc generated TOC please keep comment here to allow auto update -->
+<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
+**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
+
+- [Auth Proxy (認証プロキシ)](#auth-proxy-%E8%AA%8D%E8%A8%BC%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7)
+ - [なぜ作ったか](#%E3%81%AA%E3%81%9C%E4%BD%9C%E3%81%A3%E3%81%9F%E3%81%8B)
+ - [おためし](#%E3%81%8A%E3%81%9F%E3%82%81%E3%81%97)
+ - [主な機能](#%E4%B8%BB%E3%81%AA%E6%A9%9F%E8%83%BD)
+ - [セキュリティと認証の詳細](#%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%A8%E8%AA%8D%E8%A8%BC%E3%81%AE%E8%A9%B3%E7%B4%B0)
+ - [CSRF保護](#csrf%E4%BF%9D%E8%AD%B7)
+ - [パスワードの暗号化](#%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96)
+ - [認証フロー](#%E8%AA%8D%E8%A8%BC%E3%83%95%E3%83%AD%E3%83%BC)
+ - [1. Web UI(セッションベース)](#1-web-ui%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%99%E3%83%BC%E3%82%B9)
+ - [2. API(JWTベース)](#2-apijwt%E3%83%99%E3%83%BC%E3%82%B9)
+ - [セッション管理](#%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86)
+ - [Web UIセッション](#web-ui%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3)
+ - [APIセッション(JWTによるステートレス管理)](#api%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3jwt%E3%81%AB%E3%82%88%E3%82%8B%E3%82%B9%E3%83%86%E3%83%BC%E3%83%88%E3%83%AC%E3%82%B9%E7%AE%A1%E7%90%86)
+ - [はじめに](#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)
+ - [前提条件](#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6)
+ - [インストール](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
+ - [設定](#%E8%A8%AD%E5%AE%9A)
+- [`.env` ファイルの例:](#env-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BE%8B)
+ - [フロントエンドの選択](#%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89%E3%81%AE%E9%81%B8%E6%8A%9E)
+ - [PHPフロントエンドのセットアップ](#php%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)
+ - [データベース設定例](#%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E8%A8%AD%E5%AE%9A%E4%BE%8B)
+ - [PostgreSQL](#postgresql)
+ - [MySQL / MariaDB](#mysql--mariadb)
+ - [使い方](#%E4%BD%BF%E3%81%84%E6%96%B9)
+ - [APIトークン(ベアラートークン)の発行](#api%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%83%99%E3%82%A2%E3%83%A9%E3%83%BC%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E7%99%BA%E8%A1%8C)
+ - [保護されたバックエンドAPIへのプロキシ](#%E4%BF%9D%E8%AD%B7%E3%81%95%E3%82%8C%E3%81%9F%E3%83%90%E3%83%83%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%89api%E3%81%B8%E3%81%AE%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7)
+ - [管理APIエンドポイント](#%E7%AE%A1%E7%90%86api%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88)
+ - [ユーザー一覧の取得](#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E4%B8%80%E8%A6%A7%E3%81%AE%E5%8F%96%E5%BE%97)
+ - [ユーザーの作成](#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90)
+ - [ユーザーロールの更新](#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E6%9B%B4%E6%96%B0)
+ - [ユーザーステータスの更新](#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%81%AE%E6%9B%B4%E6%96%B0)
+ - [ユーザーの削除](#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E5%89%8A%E9%99%A4)
+ - [設定詳細](#%E8%A8%AD%E5%AE%9A%E8%A9%B3%E7%B4%B0)
+
+<!-- END doctoc generated TOC please keep comment here to allow auto update -->
+
# Auth Proxy (認証プロキシ)
これはGoで書かれたシンプルな認証リバースプロキシです。あらゆるバックエンドウェブサービスの前に配置できる、柔軟な認証レイヤーを提供します。
@@ -87,6 +127,14 @@ APIリクエストの場合、クライアントは`Authorization: Bearer <token
**認証の優先順位に関する注意:** APIエンドポイントが保護されている場合(`PROTECT_API=true`)、ミドルウェアはまず`Authorization: Bearer`ヘッダーを探します。このヘッダーが存在しない場合、フォールバックとして`auth_token`セッションクッキーの検証を試みます。これにより、Web UIにログインしているユーザーは、ブラウザセッションを使用してAPIに対しても認証できます。しかし、これはAPIエンドポイントが有効なJWTまたは有効なセッションクッキーのいずれかによってアクセス可能であることを意味します。
+### トランスポート層セキュリティ(HTTPS)
+
+本番環境では、このプロキシをTLS終端リバースプロキシ(Nginx, Caddy, またはクラウドライスバランサーなど)の背後で実行することが**極めて重要**です。
+
+このアプリケーション自体はHTTPS終端を処理しません。デフォルトでは、HTTPで通信します。もしセキュアなプロキシを前段に置かずにデプロイした場合、ログイン時に送信されるユーザーのパスワードのような機密データが、中間者(MITM)攻撃によって傍受される可能性があります。
+
+クライアントとこのプロキシ間のすべてのトラフィックがHTTPSを介して暗号化されていることを確認してください。
+
## はじめに
### 前提条件