-
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
memoissue started as noteissue started as notespeclanguage or system specificationlanguage or system specification
Description
目的
マルチテナント公開サービスの認証基盤として GitHub App + OAuth 認証フローを設計・実装する。
前提
- GitHub App を使うと webhook 登録が自動化される(ユーザーが URL やシークレットを知る必要がない)
- GitHub App は審査なしで作成可能(Marketplace 公開時のみ審査が必要)
- OAuth フローは Cloudflare Workers 上に実装可能(追加インフラ不要)
設計メモ
GitHub App で得られるもの
- ユーザーが「Install」ボタンを押すだけで webhook 自動設定
- App レベルで1つの webhook secret → テナントごとのシークレット管理不要
installation.idでテナント識別が可能
権限スコープ(最小権限)
- webhook イベント受信(メイン)
- リポジトリメタデータ読み取り
- コード変更権限は不要
OAuth 認証フロー
- GitHub App の OAuth 機能を利用してユーザー認証
- トークンはサーバー側(DO ストレージ / Workers KV Encrypted)に保管
- クライアントにトークンを返さない
作業量見積もり
- GitHub App 登録(画面設定): 〜30分
- 権限スコープ設計: 〜1時間
- OAuth フロー実装: 1〜2日
- Marketplace 公開: 後回しでOK
refs
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
memoissue started as noteissue started as notespeclanguage or system specificationlanguage or system specification