正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

2要素認証を適用する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

2要素認証(2FA)は、ユーザーが本人確認のために2つの異なる要素を提供する必要がある認証方法です:

  • ユーザー名とパスワード。
  • アプリケーションによって生成されたコードなど、2番目の認証方法。

2FAを使用すると、不正な人物がアカウントにアクセスすることが困難になります。両方の要素が必要になるためです。

SSOを使用して実施している場合、IDプロバイダー(IdP)側で2FAをすでに実施している可能性があります。GitLabでも2FAを実施する必要はないかもしれません。

すべてのユーザーに2FAを実施する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

管理者は、次の2つの異なる方法で、すべてのユーザーに2FAを実施できます:

  • 次回のサインイン時に実施。

  • 次回のサインイン時に推奨しますが、実施する前に猶予期間を設けます。

    設定された猶予期間が経過すると、ユーザーはサインインできますが、/-/profile/two_factor_authの2FA設定エリアから移動できません。

すべてのユーザーに2FAを実施するには、UIまたはAPIを使用できます。

UIを使用する

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 設定 > 一般を選択します。
  3. サインインの制限を展開します:
    • 2要素認証を実施するを選択して、この機能フラグを有効にします。
    • 2要素認証の猶予期間に、時間数を入力します。次回のサインイン時に2FAを実施する場合は、0を入力します。

APIを使用する

アプリケーション設定APIを使用して、次の設定を変更します:

  • require_two_factor_authentication
  • two_factor_grace_period

詳細については、APIコールを通じてアクセスできる設定の一覧を参照してください。

管理者ユーザーに2FAを実施する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

管理者は、次の両方に対して2FAを実施できます:

  1. 左側のサイドバーの下部で、管理者を選択します。
  2. 左側のサイドバーで、設定 > 一般を選択します。
  3. サインインの制限セクションを展開します:
    1. 管理者に2FAの有効化を必須とするを選択します。
    2. 2要素認証の猶予期間に、時間数を入力します。次回のサインイン時に2FAを実施する場合は、0を入力します。
  4. 変更を保存を選択します。

外部プロバイダーを使用してGitLabにサインインしている場合、この設定はユーザーに2FAをnot(実施しません)。2FAはその外部プロバイダーで有効にする必要があります。

グループ内のすべてのユーザーに2FAを実施する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

グループまたはサブグループ内のすべてのユーザーに2FAを実施できます。

2FAの実施は、直接および継承されたメンバーグループのメンバーの両方に適用されます。2FAがサブグループで実施されている場合、継承されたメンバー(祖先グループのメンバー)も認証要素を登録する必要があります。

前提要件:

  • グループのオーナーロールを持っている必要があります。

グループに2FAを実施するには:

  1. 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
  2. 設定 > 一般を選択します。
  3. 権限とグループ機能を展開します。
  4. このグループ内のすべてのユーザーは2要素認証を設定する必要がありますを選択します。
  5. オプション。**2FA施行の遅延 (時間)**に、猶予期間を継続する時間数を入力します。トップレベルグループとそのサブグループおよびプロジェクトに複数の異なる猶予期間がある場合、最短の猶予期間が使用されます。
  6. 変更を保存を選択します。

アクセストークンはAPIベースであるため、2番目の認証要素を提供する必要はありません。2FAが実施される前に生成されたトークンは引き続き有効です。

GitLabの受信メール機能は、2FAの実施に従いません。ユーザーは、最初に2FAを使用して認証しなくても、イシューの作成やマージリクエストへのコメントなどの受信メール機能を使用できます。これは、2FAが実施されている場合でも適用されます。

サブグループの2FA

デフォルトでは、各サブグループは、親グループとは異なる可能性のある2FA要件を設定できます。

継承されたメンバーには、階層の上位レベルで適用される異なる2FA要件が適用されている場合もあります。このような場合、最も制限の厳しい要件が優先されます。

サブグループが個別の2FA要件を設定できないようにするには:

  1. トップレベルグループの設定 > 一般に移動します。
  2. 権限とグループ機能セクションを展開します。
  3. Allow subgroups to set up their own two-factor authentication rule(サブグループが独自の2要素認証ルールを設定できるようにする) チェックボックスをオフにします。

プロジェクトの2FA

2FAを有効または実施するグループに属するプロジェクトが、2FAを有効または実施しないグループと共有されている場合、非2FAグループのメンバーは2FAを使用せずにそのプロジェクトにアクセスできます。例:

  • グループAは2FAが有効で、実施されています。グループBは2FAが有効になっていません。
  • グループAに属するプロジェクトPがグループBと共有されている場合、グループBのメンバーは2FAなしでプロジェクトPにアクセスできます。

これを防ぐには、2FAグループのプロジェクトの共有を禁止します。

2FAが有効になっているグループまたはサブグループのプロジェクトにメンバーを追加する場合、個々に追加されたメンバーには2FAはnot(不要)です。

2FAを無効にする

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

単一のユーザーまたはすべてのユーザーに対して2FAを無効にできます。

この操作は永続的であり、元に戻すことはできません。ユーザーが2FAを再度使用するには、2FAを再度アクティブ化する必要があります。

ユーザーの2FAを無効にしても、すべてのユーザーに2FAを実施するまたはグループ内のすべてのユーザーに2FAを実施する設定は無効になりません。ユーザーが次にGitLabにサインインするときに2FAの設定を再度求められないようにするには、実施された2FA設定もすべて無効にする必要があります。

すべてのユーザー向け

強制2FAが無効になっている場合でも、すべてのユーザーに対して2FAを無効にするには、次のRakeタスクを使用します。

  • Linuxパッケージを使用するインストールの場合:

    sudo gitlab-rake gitlab:two_factor:disable_for_all_users
  • 自己コンパイルによるインストールの場合:

    sudo -u git -H bundle exec rake gitlab:two_factor:disable_for_all_users RAILS_ENV=production

単一ユーザーの場合

管理者

Railsコンソールを使用して、単一の管理者に対して2FAを無効にすることができます:

admin = User.find_by_username('<USERNAME>')
user_to_disable = User.find_by_username('<USERNAME>')

TwoFactor::DestroyService.new(admin, user: user_to_disable).execute

管理者に2FAが無効になったことが通知されます。

非管理者

RailsコンソールまたはAPIエンドポイントを使用して、非管理者の2FAを無効にできます。

自分のアカウントの2FAを無効にすることができます。

管理者の2FAを無効にするためにエンドポイントを使用することはできません。

エンタープライズユーザー

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com

トップレベルグループのオーナーは、エンタープライズユーザーの2要素認証(2FA)を無効にできます。

2FAを無効にするには:

  1. 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
  2. 管理 > メンバーを選択します。
  3. エンタープライズバッジと2FAバッジが付いているユーザーを探します。
  4. 追加のアクション ellipsis_v )を選択し、二要素認証の無効化を選択します。

エンタープライズユーザー(グループのメンバーでなくなったエンタープライズユーザーを含む)の2FAを無効にするには、APIを使用することもできます。

SSH操作によるGitの2FA

  • プラン: Premium、Ultimate
  • 提供形態: GitLab Self-Managed

デフォルトでは、この機能フラグは使用できません。管理者がtwo_factor_for_cliという名前の機能フラグを有効にすると、この機能を使用できるようになります。この機能は本番環境での使用には対応していません。この機能フラグは、2FAが有効になっている場合のGit操作のセッション時間にも影響します。

SSH操作によるGitに2FAを実施できます。ただし、代わりにED25519_SKまたはECDSA_SK SSHキーを使用する必要があります。2FAはGit操作にのみ実施され、personal_access_tokenなどのGitLab Shellからの内部コマンドは除外されます。

ワンタイムパスワード(OTP)検証を実行するには、次を実行します:

ssh git@<hostname> 2fa_verify

次に、次のいずれかで認証します:

認証に成功すると、関連付けられたSSHキーを使用して、15分間(デフォルト)Git over SSH操作を実行できます。

セキュリティ上の制限事項

2FAは、侵害されたプライベートSSHキーを持つユーザーを保護しません。

OTPが検証されると、設定されたセッション時間の間、誰でもそのプライベートSSHキーを使用してGit over SSHを実行できます。