2要素認証
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
2要素認証(2FA)を使用すると、GitLabアカウントのセキュリティがさらに強化されます。あなたのアカウントに他のユーザーがアクセスするには、ユーザー名とパスワードに加えて、2番目の認証要素へのアクセスが必要になります。
GitLabは、次の2FA方式をサポートしています:
- ワンタイムパスワード(OTP)認証アプリ。サインイン時に、GitLabからOTP認証アプリで生成されたコードの入力を求められます。
- WebAuthnデバイス。サインイン時に、GitLabからWebAuthnデバイスの所有権の証明を求められます。これは通常、YubiKey、スマートフォン、ラップトップのような物理デバイスです。
- メールOTP。サインイン時に、GitLabからメールアドレスに送信されたコードの入力を求められます。
デバイスを設定する場合は、OTPも設定して、デバイスを紛失した場合でもアカウントにアクセスできるようにしてください。
2要素認証を有効にする
2FAを有効にするには、メールアドレスを確認し、OTP認証アプリ、WebAuthnデバイス、またはメールOTPを登録します。
OTP認証アプリの登録
OTP認証アプリへのアクセスを失うと、アカウントからロックアウトされる可能性があります。
このリスクを最小限に抑えるには、次の手順を実行します:
- 認証システムアプリでクラウドバックアップを有効にします。
- リカバリーパスワード、シークレットキー、またはリカバリー認証情報を安全な場所に保存します。
- 特定のOTP認証アプリのドキュメントを確認します。
OTP認証アプリを登録するには、次の手順を実行します:
- GitLabを設定します。
- 右上隅で、アバターを選択します。
- プロファイルを編集を選択します。
- 左側のサイドバーで、アカウントを選択します。
- 2要素認証を有効にするを選択します。
- ワンタイムパスワード認証システムセクションで、認証システムを登録を選択します。QRコードとOTPの詳細が表示されます。
- デバイスを設定します。
- 互換性のあるOTPアプリケーションをデバイスにインストールします。例:
- クラウドベース(ハードウェアデバイスを紛失した場合にアクセスを復元できるため推奨されています):
- その他(プロプライエタリ):
- その他(無料ソフトウェア)
- アプリケーションで、次のいずれかの方法を使って新しいエントリを追加します。
- GitLabに表示されたコードをデバイスのカメラでスキャンして、エントリを自動的に追加します。
- 提供された詳細を入力して、エントリを手動で追加します。
- 互換性のあるOTPアプリケーションをデバイスにインストールします。例:
- 登録を完了します:
- 現在のパスワードを入力します。
- 認証アプリから生成された6桁のPINを入力します。
- 2要素認証アプリで登録を選択します。
正しいピンを入力すると、リカバリーコードのリストが表示されます。それらをダウンロードして、安全な場所に保管してください。
OTP認証アプリがクラウドバックアップをサポートしている場合は、今すぐ機能を設定することを検討してください。詳細については、特定の認証アプリのドキュメントを参照してください。
WebAuthnデバイスの登録
WebAuthnは以下でサポートされています:
- デスクトップブラウザ:
- Chrome
- Edge
- Firefox
- Opera
- Safari
- モバイルブラウザ:
- Chrome for Android
- Firefox for Android
- iOS Safari(iOS 13.3以降)
WebAuthn互換デバイスを登録するには、次の手順を実行します:
- 物理デバイスを使用している場合は、コンピューターに接続します。
- 右上隅で、アバターを選択します。
- プロファイルを編集を選択します。
- 左側のサイドバーで、アカウントを選択します。
- 2要素認証を有効にするを選択します。
- WebAuthnデバイスセクションで、デバイスを登録するを選択します。
- 新しいデバイスをセットアップするを選択します。
- ブラウザウィンドウの指示に従います。
- デバイスによっては、ボタンを押したり、センサーに触れたりする必要があるかもしれません。
- GitLabアカウントのパスワードとデバイス名を入力します。Identity Provider経由でサインインしている場合は、このパスワードの入力は不要になることがあります。
- デバイスを登録するを選択します。
デバイスが正常にセットアップされたことを示すメッセージが表示されます。
WebAuthn互換デバイスで2FAをセットアップすると、そのデバイスは特定のコンピューター上の特定のブラウザーにリンクされます。ブラウザとWebAuthnデバイスによっては、別のブラウザまたはコンピューターでWebAuthnデバイスを使用するように設定できる場合があります。
今回初めて2FAを設定する場合は、アクセスを失った場合にアカウントへのアクセスを回復できるように、リカバリーコードをダウンロードする必要があります。
ブラウザデータをクリアすると、アカウントへのアクセスを失う可能性があります。
メールOTPの有効化
この機能の利用は機能フラグによって制御されます。詳細については、履歴を参照してください。
メールOTPを使用すると、6桁の認証コードをメールアドレスに送信して、本人確認を行うことができます。
次の場合、メールOTPを使用できないことがあります:
- グループポリシーで、他の2要素認証方式の使用が要求されている。
- アカウントが外部IDプロバイダーを使用している。
- アカウントが将来の特定の日付に自動的にイネーブルメントされるようにスケジュールされている。
アカウントでメールOTPを有効にするには、次の手順を実行します:
- 右上隅で、アバターを選択します。
- プロファイルを編集を選択します。
- 左側のサイドバーで、アカウントを選択します。
- 2要素認証の管理を選択します。
- メールによるワンタイムパスコードを有効にするを選択します。
- 現在のパスワードを入力し、メールによるワンタイムパスコード設定の更新を選択します。
Cisco Duo認証アプリの追加
- 提供形態: GitLab Self-Managed
GitLabでCisco DuoをOTPプロバイダーとして使用できます。
DUO®は、米国およびその他の特定の国におけるCisco Systems, Inc.、および/またはその関連会社の登録商標です。
前提条件:
- アカウントがCisco DuoとGitLabの両方に存在し、両方のアプリケーションで同じユーザー名が使用されている必要があります。
- Cisco Duoが設定済みで、統合キー、シークレットキー、およびAPIホスト名が必要です。
詳細については、Cisco Duo APIドキュメントを参照してください。
GitLab設定ファイルを開きます。
Linuxパッケージインストールの場合:
sudo editor /etc/gitlab/gitlab.rbセルフコンパイルインストールの場合:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.ymlプロバイダー設定を追加します。
Linuxパッケージインストールの場合:
gitlab_rails['duo_auth_enabled'] = false gitlab_rails['duo_auth_integration_key'] = '<duo_integration_key_value>' gitlab_rails['duo_auth_secret_key'] = '<duo_secret_key_value>' gitlab_rails['duo_auth_hostname'] = '<duo_api_hostname>'セルフコンパイルインストールの場合:
duo_auth: enabled: true hostname: <duo_api_hostname> integration_key: <duo_integration_key_value> secret_key: <duo_secret_key_value>設定ファイルを保存します。
Linuxパッケージインストールの場合、GitLabを再設定します。セルフコンパイルインストールの場合、GitLabを再起動します。
FortiAuthenticator認証アプリの追加
- 提供形態: GitLab Self-Managed
GitLabセルフマネージドでは、デフォルトではこの機能は利用できません。管理者がforti_authenticatorという名前の機能フラグを有効にすると、ユーザーごとにこの機能を使用できるようになります。GitLab.comとGitLab Dedicatedでは、この機能は使用できません。
GitLabでFortiAuthenticatorをOTPプロバイダーとして使用できます。ユーザーは次の条件を満たしている必要があります。
- FortiAuthenticatorとGitLabの両方に、同じユーザー名で存在すること。
- FortiAuthenticatorでFortiTokenが設定されていること。
FortiAuthenticatorのユーザー名とアクセストークンが必要です。以下に示すaccess_tokenは、FortiAuthenticatorアクセスキーです。トークンを取得するには、FortinetドキュメントライブラリにあるREST APIソリューションガイドを参照してください。FortiAuthenticatorバージョン6.2.0でテスト済みです。
GitLabでFortiAuthenticatorを設定します。GitLabサーバーで:
設定ファイルを開きます。
Linuxパッケージインストールの場合:
sudo editor /etc/gitlab/gitlab.rbセルフコンパイルインストールの場合:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.ymlプロバイダー設定を追加します。
Linuxパッケージインストールの場合:
gitlab_rails['forti_authenticator_enabled'] = true gitlab_rails['forti_authenticator_host'] = 'forti_authenticator.example.com' gitlab_rails['forti_authenticator_port'] = 443 gitlab_rails['forti_authenticator_username'] = '<some_username>' gitlab_rails['forti_authenticator_access_token'] = 's3cr3t'セルフコンパイルインストールの場合:
forti_authenticator: enabled: true host: forti_authenticator.example.com port: 443 username: <some_username> access_token: s3cr3t設定ファイルを保存します。
FortiToken Cloud認証システムの追加
- 提供形態: GitLab Self-Managed
GitLabセルフマネージドでは、デフォルトではこの機能は利用できません。管理者がforti_token_cloudという名前の機能フラグを有効にすると、ユーザーごとにこの機能を使用できるようになります。GitLab.comとGitLab Dedicatedでは、この機能は使用できません。この機能は本番環境での使用には対応していません。
GitLabでFortiToken CloudをOTPプロバイダーとして使用できます。ユーザーは次の条件を満たしている必要があります。
- FortiToken CloudとGitLabの両方に、同じユーザー名で存在すること。
- FortiToken CloudでFortiTokenが設定されていること。
FortiToken Cloudを設定するには、client_idとclient_secretが必要です。これらを取得するには、FortinetドキュメントライブラリにあるREST APIガイドを参照してください。
GitLabでFortiToken Cloudを設定します。GitLabサーバーで:
設定ファイルを開きます。
Linuxパッケージインストールの場合:
sudo editor /etc/gitlab/gitlab.rbセルフコンパイルインストールの場合:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.ymlプロバイダー設定を追加します。
Linuxパッケージインストールの場合:
gitlab_rails['forti_token_cloud_enabled'] = true gitlab_rails['forti_token_cloud_client_id'] = '<your_fortinet_cloud_client_id>' gitlab_rails['forti_token_cloud_client_secret'] = '<your_fortinet_cloud_client_secret>'セルフコンパイルインストールの場合:
forti_token_cloud: enabled: true client_id: YOUR_FORTI_TOKEN_CLOUD_CLIENT_ID client_secret: YOUR_FORTI_TOKEN_CLOUD_CLIENT_SECRET設定ファイルを保存します。
リカバリーコード
OTP認証アプリで2FAを有効にするとすぐに、生成された一連のリカバリーコードをダウンロードするように求めるプロンプトが表示されます。OTP認証アプリへのアクセスを失った場合、これらのリカバリーコードのいずれかを使用してアカウントにサインインできます。
コードをコピーして印刷するか、コードをダウンロードして安全な場所に保存することをお勧めします。ダウンロードを選択した場合、ファイル名はgitlab-recovery-codes.txtです。
- 各リカバリーコードは、アカウントへのサインインに1回のみ使用できます。
- リカバリーコードは、WebAuthnデバイスでは生成されません。
リカバリーコードの再生成または復元については、リカバリーオプションと2FAリセットを参照してください。
2要素認証でサインインする
2FAが有効になっている場合は、ユーザー名とパスワードを入力してから、2番目の認証方式を使用して本人確認を行います。サインインプロセスは、登録した2FA方式によって若干異なります。
OTP認証アプリでのサインイン
プロンプトが表示されたら、OTP認証アプリまたはリカバリーコードからPINを入力してサインインします。
WebAuthnデバイスでのサインイン
サポートされているブラウザでは、認証情報を入力した後、WebAuthnデバイスをアクティブにする(たとえば、ボタンに触れたり押したりする)ように求めるプロンプトが自動的に表示されます。
デバイスが認証リクエストに応答したことを示すメッセージが表示され、自動的にサインインされます。
メールOTPでのサインイン
プロンプトが表示されたら、メールに送信される6桁の認証コードを入力します。このコードは60分間有効です。
アクセスコードを使用できない場合は、次の操作を実行できます:
- 新しいコードをリクエストします。サインインページで、コードを再送信を選択します。
- 別の確認済みのメールアドレスにコードを送信します。サインインページで、このアカウントに関連付けられた別のアドレスにコードを送信しますを選択します。
- メールOTPトラブルシューティングを参照してください。
パーソナルアクセストークンでのサインイン
2FAが有効になっている場合、HTTPS経由のGitまたはGitLab APIでパスワードを使用して認証することはできません。代わりにパーソナルアクセストークンを使用する必要があります。
2要素認証を無効にする
OTP認証アプリとWebAuthnデバイスは、個別にも同時にも無効にできます。同時に無効にするには:
- 右上隅で、アバターを選択します。
- プロファイルを編集を選択します。
- 左側のサイドバーで、アカウントを選択します。
- 2要素認証の管理を選択します。
- 2要素認証を無効にするを選択します。
- ダイアログで、現在のパスワードを入力し、2要素認証を無効にするを選択します。
これにより、モバイルアプリケーションやWebAuthnデバイスなど、すべての2FA登録がクリアされます。
OAuth認証情報ヘルパー
次のGit認証情報ヘルパーは、OAuthを使用してGitLabに対して認証を行います。これは2要素認証に対応しています。初回認証時に、ヘルパーがWebブラウザを開き、GitLabがアプリを承認するように求めます。2回目以降の認証に操作は必要ありません。
Git Credential Manager
Git Credential Manager(GCM)では、OAuthがデフォルトで認証に使用されます。手動で設定しなくてもGCMはGitLab.comをサポートします。GitLab Self-ManagedでGCMを使用するには、GitLabサポートを参照してください。
プッシュのたびに再認証する必要がないように、GCMはキャッシュと、セッション間で永続化するさまざまなプラットフォーム固有の認証情報ストアをサポートしています。この機能は、パーソナルアクセストークンを使用するかOAuthを使用するかにかかわらず役立ちます。
Git for WindowsにはGit Credential Managerが含まれています。
Git Credential Managerは、主にGitHub, Inc.によって開発されています。これはオープンソースプロジェクトであり、コミュニティによってサポートされています。
git-credential-oauth
git-credential-oauthは、手動設定なしでGitLab.comといくつかの一般的なパブリックホストをサポートします。GitLab Self-Managedで使用するには、git-credential-oauthカスタムホストのドキュメントを参照してください。
多くのLinuxディストリビューションには、git-credential-oauthがパッケージとして含まれています。
git-credential-oauthはオープンソースプロジェクトで、コミュニティによってサポートされています。
GitLab管理者向けの情報
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
GitLabバックアップの復元後も2FAが動作し続けるように注意してください。
2FAがOTPサーバーで正しく認証されるようにするには、NTPなどのサービスを使用してGitLabサーバーの時刻を同期します。そうしないと、時刻のずれが原因で認証が常に失敗する可能性があります。
GitLabインスタンスに複数のホスト名またはFQDNからアクセスする場合、GitLab WebAuthnの実装は正常に機能しません。各WebAuthn登録は、登録時の現在のホスト名にリンクされており、他のホスト名またはFQDNには使用できません。
たとえば、ユーザーが
first.host.xyzとsecond.host.xyzからGitLabインスタンスにアクセスしようとしている場合:- ユーザーは
first.host.xyzを使用してサインインし、WebAuthnキーを登録します。 - ユーザーはサインアウトし、
first.host.xyzを使用してサインインを試みます。WebAuthn認証は成功します。 - ユーザーはサインアウトし、
second.host.xyzを使用してサインインを試みます。WebAuthnキーはfirst.host.xyzにのみ登録されているため、WebAuthn認証は失敗します。
- ユーザーは
システムまたはグループレベルで2FAを強制するには、2要素認証を適用するを参照してください。