2023 年 3 月より、GitHub では、GitHub.com でコードを投稿するすべてのユーザーに、1 つ以上の形式の 2 要素認証 (2FA) を有効にすることが求められます。 該当するグループに属しているユーザーは、そのグループが登録対象として選択されると通知メールを受け取り、45 日間の 2FA 登録期間が開始されて、GitHub.com での 2FA への登録を求めるバナーが表示されます。 通知を受け取らないユーザーは、2FA を有効にする必要があるグループには含まれませんが、有効にすることを強くお勧めします。
必須の 2FA の対象について
GitHub Enterprise Cloud で自分が共同作成者であることを示すアクションを実行した場合、アカウントは必須の 2FA の対象になります。 対象となるアクションは次のとおりです。
- アプリまたはアクションの他のユーザーへの公開。
- リポジトリのリリースの作成。
- Open Source Security Foundation によって追跡されるプロジェクトなど、重要度の高い特定のリポジトリへのコントリビューション。
- 重要度の高いリポジトリの管理者または共同作成者になること
- リポジトリまたはその他のユーザーを含む組織の組織オーナーになること。
- 1 つ以上のパッケージを発行したリポジトリの管理者または共同作成者になること
- エンタープライズ管理者になること。
GitHub は、アカウントのセキュリティ機能と 2FA 要件の改善を継続的に評価しているため、これらの条件は時間が経過すると変化する可能性があります。
Note
アカウントで学生割引がアクティブになっている場合は、必須の 2FA が免除されます。
組織およびエンタープライズの必須の 2FA について
個々の開発者と広範なソフトウェア開発エコシステムの両方のセキュリティを向上させるために、GitHub 自体により必須の 2FA が必要とされています。 管理者から、組織またはエンタープライズに参加するための要件として 2FA の有効化が必要とされる場合もありますが、これらの要件はこのプログラムとは別です。 2FA を有効にしているユーザー、または有効にする必要があるユーザーを確認するには、「Enterprise の人を表示する」または「組織内のユーザが 2 要素認証を有効にしているかどうかを表示する」を参照してください。
お客様のアカウントが必須の 2FA の対象であることは、その他の個人が対象になるかどうかには影響しません。 たとえば、組織オーナーであり、アカウントが必須の 2FA の対象であっても、組織内の他のアカウントが対象かどうかには影響しません。
Note
GitHub Enterprise Managed Users とオンプレミス GitHub Enterprise Server のユーザーは、2FA を有効にする必要はありません。 必須の 2FA 有効化は、GitHub.com のパスワードを持つユーザーにのみ適用されます。
必須の 2FA を有効にできない場合について
45 日間のセットアップ期間内に 2FA を有効にせず、7 日間の猶予期間が期限切れになった場合、2FA を有効にするまで GitHub.com にアクセスできません。 GitHub.com にアクセスしようとすると、2FA を有効にするように求められます。
必須の 2FA を有効にできない場合、アカウントに属するトークンはクリティカルな自動化で使用されるため、引き続き機能します。 これらのトークンには、personal access tokens と、ユーザーに代わって動作するようにアプリケーションに発行された OAuth トークンが含まれます。 2FA を有効にしても、アカウントに対して発行されたトークンのビヘイビアーは取り消されたり変更されたりしません。 ただし、ロックされたアカウントでは、2FA を有効にするまで、新しいアプリを承認したり、新しい PAT を作成したりすることはできません。
必要な 2FA メソッドについて
プライマリ 2FA メソッドとして時間ベースのワンタイム パスワード (TOTP) アプリを設定し、バックアップとしてパスキーまたはセキュリティ キーを追加することをお勧めします。 パスキーまたはセキュリティ キーがない場合は、GitHub Mobile アプリも適切なバックアップ オプションです。 SMS はほとんどの国で信頼性がありますが、一部の脅威モデルでは対処されていない可能性のあるセキュリティ リスクがあります。
現時点では、パスキーやセキュリティ キーはプライマリ 2FA メソッドとしてサポートしていません。失われやすく、十分な範囲のデバイス間での同期がサポートされていないためです。 パスキーがより広く採用され、同期のサポートがより一般的になっているので、パスキーやセキュリティ キーをプライマリ メソッドとしてサポートするようにします。
Note
GitHub.com で Cookie を保持することをお勧めします。 _device_id
Cookie は以前にデバイスを使用したことを安全に証明するために使用されるため、Cookie を毎日ワイプするようにブラウザーを設定した場合、アカウントの回復のための検証済みデバイスがなくなります。 詳しくは、「2 要素認証クレデンシャルをなくした際のアカウントの回復」を参照してください。
TOTP アプリと必須の 2FA について
TOTP アプリは、GitHub に推奨される 2FA 要素です。 TOTP アプリの構成の詳細については、「2 要素認証を設定する」を参照してください。
モバイル デバイスにアプリをダウンロードしたくない場合は、プラットフォーム間で実行されるスタンドアロンの TOTP アプリに対して複数のオプションがあります。 デスクトップ アプリケーションの場合は KeePassXC をお勧めします。ブラウザー ベースのプラグインの場合は 1Password をお勧めします。
RFC 6238 と互換性のあるコードを生成するアプリを手動で設定することもできます。 TOTP アプリを手動で設定する方法の詳細については、「2 要素認証を設定する」を参照してください。 RFC 6238 の詳細については、IETF ドキュメントの「TOTP: 時間ベースのワンタイム パスワード アルゴリズム」を参照してください。
Note
2FA に FreeOTP を使っている場合は、脆弱な暗号化パラメーターに関する警告が表示されることがあります。 GitHub は、古いバージョンの Google Authenticator との互換性を確保するために 80 ビット シークレットを使用します。 80 ビットは HOTP RFC で推奨される 128 ビットより少ないですが、現時点ではこれを変更する予定はなく、このメッセージを無視することをお勧めします。 詳細については、IETF ドキュメントの「HOTP: HMAC ベースのワンタイム パスワード アルゴリズム」を参照してください。
SAML SSO と必須の 2FA について
必須の 2FA の対象になっている場合は、会社で既に 2FA でのシングル サインオン (SSO) が必要な場合でも、GitHub.com で 2FA に登録する必要があります。 2FA を使用した SSO は、組織またはエンタープライズ所有のリソースを保護するための強力な方法ですが、組織やエンタープライズに関係のない GitHub.com 上のユーザー所有コンテンツを保護したり、ユーザーのプロファイルと設定を保護したりすることはありません。
GitHub では、2FA を実行する必要があるのは初期認証と機密性の高いアクションに対してのみであるため、GitHub にアクセスするために毎日会社の 2FA を実行する必要がある場合でも、GitHub を使用して 2FA をもう一度実行する必要はほとんどありません。 機密性の高いアクションの詳細については、「Sudo モード」を参照してください。
メールの確認と必須の 2FA について
GitHub.com にログインしたときに、メールの確認は 2FA としてカウントされません。 アカウントのメール アドレスは、アカウントの回復の一種であるパスワードのリセットに使用されます。 攻撃者がメールの受信トレイにアクセスできる場合は、アカウントのパスワードをリセットでき、メールによるデバイスの確認チェックを通過できます。これにより、アカウント保護が 1 つの要素に減ります。 このシナリオを回避するために、2 番目の要素はメールの受信トレイとは無関係である必要があります。 2FA を有効にすると、ログイン時にメールによる確認が実行されなくなります。
サービス アカウントと必須の 2FA について
必須の 2 要素認証用に選択されたボットやサービス アカウントなど、組織内の無人または共有アクセス アカウントを、2FA に登録する必要があります。 2FA を有効にしても、サービス アカウントに対して発行されたトークンのビヘイビアーは取り消されたり変更されたりしません。 GitHub では、サービス アカウントの TOTP シークレットを共有資格情報ストレージに安全に格納することをお勧めします。 詳しくは、「2 要素認証を使用したボットとサービス アカウントの管理」を参照してください。
必須の 2FA を使用する場合のプライバシーについて
必須の 2FA の対象になっている場合、必ずしも GitHub に電話番号を提供する必要はありません。 2FA に SMS を使用する場合にのみ、電話番号を提供する必要があります。 SMS ではなく、プライマリ 2FA メソッドとして TOTP アプリを設定することをお勧めします。 詳しくは、「2 要素認証を設定する」を参照してください。
Note
利用可能な SMS オプションのリストにお使いのリージョンが表示されない場合があります。 SMS 配信の成功率はリージョンごとに監視され、配信率が低いリージョンのセットアップは禁止されます。 リストにリージョンが表示されない場合は、代わりに TOTP アプリを設定する必要があります。 SMS をサポートしているリージョンの詳細については、「SMS 認証がサポートされている国」を参照してください。