本番環境 Admin Panel Setup Guide
本番環境 Admin Panel Setup Guide
🚀 Web公開ときの管理画面セットアップ
📋 前提条件
- GitHubリポジトリが公開されている
- GitHub Pagesが有効になっている
- カスタムドメイン(
tensornetwork-qec.jp
)が設定されている
🔧 Step 1: GitHub OAuth App作成
- GitHub.com にログイン
- Settings → Developer settings → OAuth Apps に移動
- New OAuth App をクリック
- 以下の情報を入力:
Application name: Research Website Admin
Homepage URL: https://tensornetwork-qec.jp
Application description: Content management for research website
Authorization callback URL: https://api.netlify.com/auth/done
- Register application をクリック
- Client ID をメモ(これは公開情報なので安全)
- Client Secret も生成されるが、これは秘密情報として管理
🌐 Step 2: Netlify(無料)でOAuth Proxy設定
GitHub Pagesだけでは OAuth認証ができないため、Netlifyを認証プロキシとして使用:
- Netlify.com にアカウント作成(無料)
- New site from Git をクリック
- GitHub を選択してリポジトリを接続
-
Build settings:
Build command: bundle exec jekyll build Publish directory: _site Base directory: (空白)
- Deploy site をクリック
🔑 Step 3: Netlify環境変数設定
- Netlify dashboard → Site settings → Environment variables
-
以下の変数を追加:
GITHUB_CLIENT_ID: (Step 1で取得したClient ID) GITHUB_CLIENT_SECRET: (Step 1で取得したClient Secret)
🔐 Step 4: OAuth App設定を更新
GitHub OAuth App設定に戻って:
-
Authorization callback URL を更新:
https://あなたのnetlifyサイト名.netlify.app/admin/auth/
(例:
https://fumikobayashi-research.netlify.app/admin/auth/
)
🎯 Step 5: 管理画面アクセス
公開後の管理画面アクセス:
- 本番サイト:
https://tensornetwork-qec.jp/admin/
- Netlifyサイト:
https://あなたのサイト名.netlify.app/admin/
🔄 認証フロー
- 管理画面にアクセス
- Login with GitHub をクリック
- GitHubでの認証画面に移動
- 認証後、管理画面にリダイレクト
- リポジトリへの書き込み権限で編集可能
🛡️ セキュリティ注意事項
- リポジトリ権限:
- プライベートリポジトリの場合:オーナーのみアクセス可能
- パブリックリポジトリの場合:コラボレーター権限が必要
- OAuth App管理:
- Client Secretは絶対に公開しない
- 定期的にTokenをローテーション
- アクセス制限:
- 必要な人のみをリポジトリコラボレーターに追加
🧪 代替案: GitHub Pages + 外部認証サービス
より高度なセキュリティが必要な場合:
- Auth0(有料)
- Firebase Authentication(Googleアカウント連携)
- Supabase(オープンソース代替)
🔧 トラブルシューティング
認証エラー
Error: Unable to authenticate
解決策:
- GitHub OAuth App設定を確認
- Callback URLが正しいか確認
- Netlify環境変数が設定されているか確認
保存エラー
Error: API rate limit exceeded
解決策:
- 少し時間をおいて再試行
- GitHubのAPIレート制限(5000/時間)を確認
アクセス権限エラー
Error: Repository access denied
解決策:
- GitHubリポジトリのコラボレーター権限を確認
- OAuth Appのスコープ設定を確認
✅ 最終チェックリスト
- GitHub OAuth App作成完了
- Netlifyサイトデプロイ完了
- 環境変数設定完了
- Callback URL設定完了
- 管理画面アクセステスト完了
- データ保存テスト完了
これで安全にWeb公開環境で管理画面を使用できます! 🎉