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を使用する
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > 一般を選択します。
- サインインの制限を展開します:
- 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を実施できます:
- 管理者ユーザー。
- カスタム管理者ロールが割り当てられている一般ユーザー。
- 左側のサイドバーの下部で、管理者を選択します。
- 左側のサイドバーで、設定 > 一般を選択します。
- サインインの制限セクションを展開します:
- 管理者に2FAの有効化を必須とするを選択します。
- 2要素認証の猶予期間に、時間数を入力します。次回のサインイン時に2FAを実施する場合は、
0を入力します。
- 変更を保存を選択します。
外部プロバイダーを使用してGitLabにサインインしている場合、この設定はユーザーに2FAをnot(実施しません)。2FAはその外部プロバイダーで有効にする必要があります。
グループ内のすべてのユーザーに2FAを実施する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
グループまたはサブグループ内のすべてのユーザーに2FAを実施できます。
2FAの実施は、直接および継承されたメンバーグループのメンバーの両方に適用されます。2FAがサブグループで実施されている場合、継承されたメンバー(祖先グループのメンバー)も認証要素を登録する必要があります。
前提要件:
- グループのオーナーロールを持っている必要があります。
グループに2FAを実施するには:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > 一般を選択します。
- 権限とグループ機能を展開します。
- このグループ内のすべてのユーザーは2要素認証を設定する必要がありますを選択します。
- オプション。**2FA施行の遅延 (時間)**に、猶予期間を継続する時間数を入力します。トップレベルグループとそのサブグループおよびプロジェクトに複数の異なる猶予期間がある場合、最短の猶予期間が使用されます。
- 変更を保存を選択します。
アクセストークンはAPIベースであるため、2番目の認証要素を提供する必要はありません。2FAが実施される前に生成されたトークンは引き続き有効です。
GitLabの受信メール機能は、2FAの実施に従いません。ユーザーは、最初に2FAを使用して認証しなくても、イシューの作成やマージリクエストへのコメントなどの受信メール機能を使用できます。これは、2FAが実施されている場合でも適用されます。
サブグループの2FA
デフォルトでは、各サブグループは、親グループとは異なる可能性のある2FA要件を設定できます。
継承されたメンバーには、階層の上位レベルで適用される異なる2FA要件が適用されている場合もあります。このような場合、最も制限の厳しい要件が優先されます。
サブグループが個別の2FA要件を設定できないようにするには:
- トップレベルグループの設定 > 一般に移動します。
- 権限とグループ機能セクションを展開します。
- 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を無効にするには:
- 左側のサイドバーで、検索または移動先を選択して、グループを見つけます。
- 管理 > メンバーを選択します。
- エンタープライズバッジと2FAバッジが付いているユーザーを探します。
- 追加のアクション( )を選択し、二要素認証の無効化を選択します。
エンタープライズユーザー(グループのメンバーでなくなったエンタープライズユーザーを含む)の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次に、次のいずれかで認証します:
- 正しいOTPを入力します。
- FortiAuthenticatorが有効になっている場合、デバイスプッシュ通知に応答します。
認証に成功すると、関連付けられたSSHキーを使用して、15分間(デフォルト)Git over SSH操作を実行できます。
セキュリティ上の制限事項
2FAは、侵害されたプライベートSSHキーを持つユーザーを保護しません。
OTPが検証されると、設定されたセッション時間の間、誰でもそのプライベートSSHキーを使用してGit over SSHを実行できます。