Kurage X認証PHPプロキシゲートウェイ
Kurage公開WebがXログインをPHPで処理し検証済みユーザー名と内部トークンをFastAPIへ渡す共通ゲートウェイ構成。
Kurageシリーズの公開Webアプリで共通して使われる構成。kurage.exbridge.jp 上に置かれたPHPが X(旧Twitter)ログインの確定とCSRF対策を担当し、検証済みユーザー名と共有トークンを内部のFastAPIバックエンドへ渡す。ブラウザにAPIトークンを公開せず、バックエンドを保護する役割を持つ。
処理の流れ
- ブラウザが
public/kfreqai.phpやpublic/ktajp.phpなどのPHPゲートウェイへアクセスする。 - PHPがKurage共通のX認証(AIxSNS OAuth2)を確定する。
- 検証済みXユーザー名を
X-Ktajp-UserなどのヘッダーでFastAPIへ渡す。 - 同時に
.envで管理する共有トークン(例:KTAJP_PROXY_TOKEN)も渡し、バックエンドがリクエストの発信元を検証する。 - FastAPIは
0.0.0.0:ポートで待ち受け、外部にはPHPゲートウェイだけが露出する。
設計の利点
- 認証を1か所に置く: kseoのREADMEに明記されている通り、公開PHPがX認証とCSRFを持ち、FastAPI側は内部トークンだけを見る。認証ロジックが2箇所に分散しない。
- APIキー非公開: ブラウザへ内部トークンを返さないため、OllamaやDeepSeekなどの認証情報が漏れにくい。
- テナント分離: 「1テナント=1 Xアカウント」とし、プロジェクト・照査履歴・レポートなどをユーザー単位で分離する。tenant-isolation
- 内部サービス保護: 公開層と内部APIを分離し、認証済みユーザーのみがバックエンドへ到達できる。trust-boundary
採用例
- kfreqai —
public/kfreqai.phpがダッシュボードを配信(:18320等) - ktajp —
public/ktajp.php→ FastAPI :18337 - kfinanalyst —
public/kfinanalyst.php→ FastAPI :18351 - kfxai —
public/kfxai.php→ 読み取り専用API - kseo —
public/kseo.phpがX認証・CSRFを保持 - kproofread —
public/kproofread.phpが照査履歴をログイン利用者ごとに分離 - kurl2gr —
public/kurl2gr.phpが共通Xログインを確定して中継
関連する概念
- kurage-php-gateway — この構成の一般化・詳細
- kurage-platform — Kurage全体の共通プラットフォーム設計
- tenant-isolation — ユーザー単位のデータ分離
- trust-boundary — AI判断や内部APIへ権限を渡さない境界設計
- kurage-repos — 本ページの主な情報源となった公開リポジトリ群の概要
See also: kurage-sites
「Kurage X認証PHPプロキシゲートウェイ」についてもっと知りたいですか?
Kurage.AI に質問する
Kurage.AI に質問する
