Skip to content

GitHub App registration and OAuth authentication flow #70

@liplus-lin-lay

Description

@liplus-lin-lay

目的

マルチテナント公開サービスの認証基盤として 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    memoissue started as notespeclanguage or system specification

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions