Git運用におけるトークン認証の要件

by Matthew Langlois

2020年7月、私たちは、認証されたすべてのGit操作に、トークンベースの認証(例えば、個人用アクセストークン、OAuthトークン、GitHub Appインストールトークンなど)の使用を義務付ける意向を発表しました。2021年8月13日より、GitHub.comでのGit操作の認証時にアカウントのパスワードを受け付けなくなります。

影響を受けるワークフロー

  • コマンドラインによるGitへのアクセス
  • Gitを使用するデスクトップアプリケーション(GitHub Desktopは影響を受けません
  • パスワードを使って GitHub.com の Git リポジトリに直接アクセスするすべてのアプリケーション/サービス

以下のお客様は、今回の変更による影響を受けません。

  • アカウントで二要素認証を有効にしている場合は、すでにトークンまたは SSH ベースの認証を使用する必要があります。
  • GitHub Enterprise Server をご利用の場合、オンプレミスでの提供については変更を発表していません。
  • GitHub App を管理している場合、GitHub Apps はパスワード認証をサポートしていません。

背景

APIでの認証について同様の変更を発表した際の動機を以下のように説明しました。

近年、GitHub のお客様は、GitHub.com の 2 要素認証、サインインアラート、認証済みデバイス、漏洩したパスワードの使用防止、WebAuthn のサポートなど、数多くのセキュリティ強化の恩恵を受けてきました。これらの機能により、攻撃者が複数のウェブサイトで再利用されているパスワードを使ってGitHubアカウントにアクセスしようとすることが難しくなります。このような改善にもかかわらず、歴史的な理由により、二要素認証を有効にしていないお客様は、GitHubのユーザー名とパスワードだけで、GitやAPIの操作を引き続き認証することができました。

2021年8月13日以降は、Git操作の認証にアカウントのパスワードを受け付けなくなり、GitHub.com上で認証されたすべてのGit操作に対して、パーソナルアクセストークン(開発者向け)やOAuthまたはGitHub Appインストールトークン(インテグレーター向け)などのトークンベースの認証の使用が必要になります。また、引き続きSSH鍵を使用することも可能です。

トークンは、パスワードによる認証に比べて、多くのセキュリティ上の利点があります。

  1. ユニーク - トークンはGitHubに固有のもので、使用ごとやデバイスごとに生成することができます。
  2. 取り消し可能 - トークンはいつでも個別に取り消すことができ、影響を受けない認証情報を更新する必要はありません。
  3. 制限付き - トークンは、ユースケースに必要なアクセスのみを許可するように範囲を狭めることができます。
  4. ランダム - トークンは、定期的に覚えたり入力したりする必要のある単純なパスワードのように、 辞書やブルートフォース(総当たり攻撃)の対象にはなりません。

本日中に行うべきこと

  • 開発者の方は、現在GitHub.comでのGit操作の認証にパスワードを使用している場合、混乱を避けるために、2021年8月13日までにHTTPS(推奨)またはSSHキーによる個人アクセストークンの使用を開始する必要があります。古いサードパーティの統合機能を使用しているという警告が表示された場合は、クライアントを最新バージョンにアップデートしてください。
  • インテグレータの場合、混乱を避けるために、2021年8月13日までにウェブまたはデバイスの認証フローを使用して統合機能を認証する必要があります。詳細は、Authorizing OAuth Apps および開発者ブログのアナウンスをご覧ください。

2ファクタ認証を有効にする

自分のアカウントでパスワードを使った認証ができないようにしたい場合は、アカウントの二要素認証を有効にしましょう。これにより、Git やサードパーティとの統合によるすべての認証操作に、個人用アクセストークンを使用する必要があります。

ブラウンアウト

認証方法の変更を確実にご理解いただくために、2回のブラウンアウトを実施し、パスワード認証のサポートを一時的に停止します。ブラウンアウトは以下の日程で実施されます。

タイムライン

  • 本日 - GitHub.comでのGit操作の認証にパスワードを使用している場合、まもなく認証方法やサードパーティ・クライアントの更新を促すメールが届きます。
  • 2021年6月30日および7月28日 - 影響を受けるお客様に認証方法の更新を促すため、すべてのGit操作に対して一時的にトークン(またはSSHキー)による認証が必要となります(下記参照)。
  • 2021年8月13日 - 認証済みのすべてのGit操作に対して、トークン(またはSSHキー)による認証が必要になります。

ご不明な点がございましたら、関連するAPIパスワード認証のブログ記事アカウントを安全に保つことについての詳細GitHubサポートへのお問い合わせをご覧ください。