[go: up one dir, main page]

日本語
  • GitHub
  • Secret vault
  • トークン保存
  • OAuth
  • ソーシャルサインイン

GitHub アプリ vs. OAuth アプリ:適切な GitHub 接続方法を選ぶ

Logto との連携における GitHub アプリと OAuth アプリを比較します。セキュリティ、権限管理、トークン管理の主要な違いを学び、あなたのアプリケーションに合った GitHub 認証方法を選びましょう。

Ran
Ran
Product & Design

ユーザー認証に何週間も費やすのはもうやめましょう
Logto でより速く安全なアプリをリリース。数分で認証を統合し、コア製品に集中できます。
始めましょう
Product screenshot

GitHub 認証を Logto アプリケーションに組み込む際、選択肢は2つあります:GitHub アプリと GitHub OAuth アプリです。どちらも「GitHub でサインイン」機能を提供しますが、セキュリティ、トークン管理、API アクセスの点で根本的に異なる体験を提供します。このガイドでは、それぞれの違いを理解し、利用ケースに合った方法を選べるようサポートします。

背景:2つの GitHub 連携パス

Logto の現在のドキュメントでは、GitHub OAuth アプリ を設定してソーシャルサインインを行う手順を案内しています。これは基本的な認証ニーズに最適な、よりシンプルで分かりやすい選択肢です。しかし、GitHub アプリは GitHub 自体が推奨する最新の方法であり、強化されたセキュリティ機能やより細かな制御を提供します。

イメージしやすく言えば、OAuth アプリは「家のマスターキーを誰かに渡す」ようなものです — 認可すると広範なアクセス権を得ます。一方、GitHub アプリは「部屋ごとにアクセスコードが異なるスマートロック」のようなもので、アプリが必要とする正確な権限だけをユーザーが指定して付与できます。

一目で分かる主な違い

権限管理:広範囲 vs. 細分化

  • OAuth アプリ は広範なスコープを使用します。たとえば repo を要求するとリポジトリ全体の管理権限が付与されます。
  • GitHub アプリ は必要最小限の細かな権限を選択できます(例:「Issue: 読み取り」など)。また、インストール時にユーザーがアクセスするリポジトリを個別に選択でき、一括付与の必要がありません。

トークンのセキュリティ:永続的 vs. 有効期限あり

  • OAuth アプリ は、手動で取り消さない限り失効しないトークンを発行し、リフレッシュメカニズムがありません。
  • GitHub アプリ は、有効期限1時間の短命トークンを発行し自動リフレッシュに対応 — 長時間動作するアプリにおいて大幅にセキュリティが向上します。

身元:ユーザー vs. ボット

  • OAuth アプリ は常に認可ユーザー(例:@octocat)として動作し、そのレート制限(1時間あたり5,000リクエスト)を共有します。
  • GitHub アプリ は独立したボット ID(例:@my-app[bot])として動作でき、使用量に応じて拡張性のあるレート制限が得られます — 自動化に最適です。

アクセス制御:一括 vs. 選択的

  • OAuth アプリ は全てのアクセス可能リソースに対し一度の認可が必要です。
  • GitHub アプリ はインストール時にユーザーがリポジトリを個別選択、権限変更時にウェブフック通知も受け取れるため、高い透明性と制御性を実現します。

永続性:ユーザー依存 vs. 独立

  • OAuth アプリ は認可ユーザーに紐づいて動作します。権限を失ったり組織を離れた場合、アプリは動作しなくなります。
  • GitHub アプリ は導入した開発者が組織を離れても機能し続けます — 自動化や連携サービスを中断せずに運用できます。

どちらを選ぶべき?

GitHub アプリも OAuth アプリも、Logto のソーシャルコネクタでシームレスに動作します。Logto の Secret Vault はどちらからのトークンも安全に保存しますが、体験には違いがあります:

OAuth アプリでの基本的なソーシャルサインイン

ユーザー認証だけが必要(GitHub でサインイン)で、後から GitHub API を叩かない場合は OAuth アプリが最も手軽です:

  • 設定が簡単:ユーザーは OAuth アプリを認可し、GitHub 経由でサインインします。
  • トークンは長寿命(リフレッシュなし):Logto は Secret Vault にアクセストークンを保存できますが、リフレッシュフローはなく、取り消しまで有効です。
  • ユーザーの ID(メール、名前、アバター)だけ必要で、自動 API 処理を伴わない場合に最適です。

この方法を選ぶ理由:プロトタイプやサインイン/たまにプロフィールを同期する程度のアプリで、実装を早く済ませたいとき。

GitHub アプリによる強化インテグレーション

アプリケーションが継続的な GitHub API アクセスや、バックグラウンド自動化、より厳密なセキュリティを必要とする場合は GitHub アプリを選びましょう:

  • 細かい権限管理やリポジトリ選択で、アクセス範囲が最小限かつ監査しやすくなります。
  • トークンは1時間程度の短命で、リフレッシュトークンを発行可能。Logto が両方のトークンを Secret Vault で管理し、ローテーションも自動化 — 再ログインなしでバックエンドが継続稼働します。
  • アプリ ID(ボット)でアクションの追跡が容易、拡張性の高いレート制限で大規模自動化も信頼性が向上します。

おすすめの用途:

  • ユーザーの代理で GitHub リポジトリを管理する SaaS プラットフォーム
  • コードや Issue、プルリクエストを操作する AI エージェント
  • 永続的な API アクセスが必要なアプリケーション
  • バックグラウンド自動化を行うツール

Logto で GitHub アプリを設定する

GitHub アプリのセットアップ手順は OAuth アプリと非常に似ていますが、いくつか重要な違いがあります。OAuth アプリから GitHub アプリへの移行も最小限の作業で完了できます。

GitHub アプリの作成

  1. 「GitHub Settings > Developer settings > GitHub Apps」にアクセス

  2. 「New GitHub App」をクリック

  3. 各種設定:

    • GitHub アプリ名: アプリの一意な識別子
    • ホームページ URL: アプリのウェブサイト
    • コールバック URL: Logto コネクタのコールバック URI(OAuth アプリと同じ)
    • インストール時にユーザー認証(OAuth)を要求: 有効化
    • ウェブフック: 必要に応じて設定
    • 権限: 必要最小限の権限(例:「Issue: 読み取り」など)を選択
    • ユーザー権限: ユーザー代理で動作する場合はアカウント権限を付与
  4. クライアントシークレットを生成(OAuth アプリと同じ)

integrate-github-apps.png

Logto での設定

Logto 側のコネクタ設定手順もほぼ同じです:

  1. GitHub アプリの Client ID を入力
  2. Client secret を追加
  3. GitHub API を利用した永続的アクセスが必要なら 「トークン保存による API アクセスの永続化」 を有効化
  4. 注意点 — スコープ:
    • OAuth アプリ(Logto のスコープ欄にスコープ設定が必要)とは異なり、GitHub アプリは GitHub 側の設定画面で権限を指定します。
    • Logto のスコープ欄は空で OK です
  5. リフレッシュトークンを要求(任意)
    • Logto のスコープ欄に offline_access を追加するとリフレッシュトークン対応
    • GitHub 側で自動的にリフレッシュトークンが発行され、Logto がローテーションとトークン保存を実施します
    • 注意:OAuth アプリはリフレッシュトークン非対応 — アクセストークンは期限切れになりません。GitHub アプリ統合時のみこの違いに注意。

integrate-github-connector-in-logto.png

まとめ

OAuth アプリは今も基本的な認証には有効ですが、GitHub アプリこそ GitHub 連携の今後の標準です。トークンの有効期限制御によるセキュリティ強化、細やかな権限設定、アクセス管理など、より優れた体験が得られます。

Logto ユーザーはどちらの方法もソーシャルコネクタ経由で利用可能です。選定基準は、あなたの用途次第:

  • まずは OAuth アプリでシンプルに — 認証用途だけならこれで十分
  • API アクセスや自動化、高度なセキュリティが必要なら GitHub アプリへ移行

さらに—Logto の Secret Vault と自動トークンリフレッシュ機能により、GitHub アプリのトークン管理も OAuth アプリ同様に簡単で、安全性も担保できます。AI コーディングアシスタントやプロジェクト管理プラットフォーム、開発者向け生産性ツールなど、Logto アプリで最適な GitHub 連携を選ぶための知識が整いました。

さあ始めましょう!Logto の GitHub コネクタ をチェックして、今日から GitHub 認証を統合しましょう。

追加リソース