diff options
Diffstat (limited to 'README.ja.md')
| -rw-r--r-- | README.ja.md | 48 |
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を介して暗号化されていることを確認してください。 + ## はじめに ### 前提条件 |
