サインインの制限
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
サインインの制限を使用して、WebインターフェースおよびHTTP(S)経由のGitの認証制限をカスタマイズします。
設定
サインイン制限設定にアクセスするには、次の手順に従います:
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > 一般を選択します。
- サインインの制限セクションを展開します。
パスワード認証が有効
WebインターフェースおよびHTTP(S)経由のGitのパスワード認証を制限できます:
- Web interface(Webインターフェース): この機能が無効になっている場合、標準サインインタブが削除され、外部認証プロバイダーを使用する必要があります。
- Git over HTTP(S)(Git over HTTP(S)): この機能が無効になっている場合は、パーソナルアクセストークンまたはLDAPパスワードを使用して認証する必要があります。
外部認証プロバイダーの停止が発生した場合、GitLab Railsコンソールを使用して、標準のWebサインインフォームを再度有効にします。この設定は、管理者アカウントのパーソナルアクセストークンで認証中に、アプリケーション設定REST APIを介して変更することもできます。
SSO識別子を使用するユーザーのパスワード認証を無効にする
パスワード認証が有効になっている場合でも、SSOユーザーがパスワードでサインインする機能を制限することが望ましい場合があります。**SSO識別子を使用するユーザーのパスワード認証を無効にします。**を選択して、SSOユーザーが常に外部プロバイダーでサインインするようにします。
これにより、WebインターフェースとHTTP(S)経由のGitの両方のパスワード認証が制限されます。
管理者モード
管理者の場合は、管理者アクセスなしでGitLabで作業したい場合があります。管理者アクセス権を持たない別のユーザーアカウントを作成するか、管理者モードを使用することができます。
管理者モードでは、デフォルトでは、アカウントに管理者アクセス権はありません。メンバーになっているグループやプロジェクトへのアクセスは継続できます。ただし、管理タスクの場合、(特定の機能を除き)認証する必要があります。
管理者モードが有効になっている場合、インスタンス上のすべての管理者に適用されます。
管理者モードがインスタンスに対して有効になっている場合、管理者は以下を行います:
- メンバーであるグループおよびプロジェクトへのアクセスを許可されます。
- 管理者エリアにアクセスできません。
インスタンスの管理者モードを有効にする
管理者は、API、Railsコンソール、またはUIから管理者モードを有効にできます。
APIを使用して管理者モードを有効にする
インスタンスエンドポイントに次のリクエストを行います:
curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab.example.com>/api/v4/application/settings?admin_mode=true"<gitlab.example.com>をインスタンスのURLに置き換えます。
詳細については、APIコールを介してアクセスできる設定のリストを参照してください。
Railsコンソールを使用して管理者モードを有効にする
- 提供形態: GitLab Self-Managed
Railsコンソールを開き、以下を実行します:
::Gitlab::CurrentSettings.update!(admin_mode: true)UIを使用して管理者モードを有効にする
UIから管理者モードを有効にするには:
- 左側のサイドバーの下部で、管理者を選択します。
- 設定 > 一般を選択します。
- サインインの制限を展開します。
- 管理者モードを有効にするを選択します。
- 変更を保存を選択します。
セッションの管理者モードをオンにする
現在のセッションの管理者モードをオンにして、潜在的に危険なリソースにアクセスするには:
- 左側のサイドバーで、自分のアバターを選択します。
- 管理者モードにするを選択します。
- URLに
/adminが含まれるUIの任意の部分にアクセスしてみてください(管理者アクセスが必要です)。
管理者モードステータスが無効またはオフになっている場合、管理者は明示的にアクセス権が付与されていない限り、リソースにアクセスできません。たとえば、管理者がプライベートグループまたはプロジェクトを開こうとすると、そのグループまたはプロジェクトのメンバーでない限り、404エラーが発生します。
管理者は2要素認証を有効にする必要があります。2FA、OmniAuthプロバイダー、およびLDAP認証は管理者モードでサポートされています。管理者モードステータスは現在のユーザーセッションに保存され、次のいずれかになるまでアクティブなままです:
- 明示的に無効になっている。
- 6時間後に自動的に無効になる。
セッションで管理者モードが有効になっているかどうかを確認する
アクティブなセッションのリストに移動します:
- 左側のサイドバーで、自分のアバターを選択します。
- プロファイルの編集を選択します。
- 左側のサイドバーで、アクティブなセッションを選択します。
管理者モードがオンになっているセッションには、Signed in on date of session with Admin Mode(に管理者モードでサインイン)というテキストが表示されます。
セッションの管理者モードをオフにする
現在のセッションの管理者モードをオフにするには:
- 左側のサイドバーで、自分のアバターを選択します。
- 管理者モードを終了するを選択します。
既知の問題
管理者モードは6時間後にタイムアウトになり、このタイムアウト制限を変更することはできません。
次のアクセス方法は管理者モードによって保護されていません:
- Gitクライアントアクセス(公開キーを使用したSSH、またはパーソナルアクセストークンを使用したHTTPS)。
つまり、管理者モードによって制限されている管理者は、追加の認証手順なしでGitクライアントを使用できます。
GitLabREST APIまたはGraphQL APIを使用するには、管理者は、パーソナルアクセストークンを作成するか、OAuthトークンをadmin_modeスコープで作成する必要があります。
admin_modeスコープを持つパーソナルアクセストークンを持つ管理者が管理者アクセス権を失った場合、そのユーザーはadmin_modeスコープを持つトークンをまだ持っていても、管理者としてAPIにアクセスできません。詳細については、エピック2158を参照してください。
また、GitLab Geoが有効になっている場合、セカンダリノード上にある間は、プロジェクトと設計のレプリケーションステータスを表示できません。プロジェクト(イシュー367926 )と設計(イシュー355660)が新しいGeoフレームワークに移行すると、修正が提案されます。
トラブルシューティング管理者モード
必要に応じて、次の2つの方法のいずれかを使用して、管理者として管理者モードを無効にできます:
API:
curl --request PUT --header "PRIVATE-TOKEN:$ADMIN_TOKEN" "<gitlab-url>/api/v4/application/settings?admin_mode=false"::Gitlab::CurrentSettings.update!(admin_mode: false)
2要素認証
この機能が有効になっている場合、すべてのユーザーが2要素認証を使用する必要があります。
2要素認証が必須として構成された後、ユーザーは、設定可能な猶予時間(時間単位)の間、2要素認証の強制設定をスキップできます。
不明なサインインのメール通知
有効にすると、GitLabは不明なIPアドレスまたはデバイスからのサインインをユーザーに通知します。詳細については、メール通知(不明なサインインの場合)を参照してください。
サインイン情報
ログインしていないすべてのユーザーは、値が空でない場合、設定されたホームページのURLで表されるページにリダイレクトされます。
すべてのユーザーは、値が空でない場合、サインアウト後に設定されたサインアウトページのURLで表されるページにリダイレクトされます。
サインインページにヘルプメッセージを追加するには、サインインページと登録ページをカスタマイズします。
トラブルシューティング
Railsコンソールで標準Webサインインフォームを再度有効にする
- 提供形態: GitLab Self-Managed
サインイン制限として無効になっている場合は、標準のユーザー名とパスワードベースのサインインフォームを再度有効にします。
(SSOまたはLDAP設定による)設定された外部認証プロバイダーが停止に直面しており、GitLabへの直接サインインアクセスが必要な場合は、Railsコンソールを使用してこの方法を使用できます。
Gitlab::CurrentSettings.update!(password_authentication_enabled_for_web: true)
