外部ユーザー

ユーザーが内部プロジェクトや非公開プロジェクトにのみアクセスしたい場合、外部ユーザーを 作成することができます。この機能は、例えば、請負業者があるプロジェクトで作業しており、そのプロジェクトにのみアクセスできるようにしたい場合に便利です。

外部ユーザー

  • 個人ネームスペースにプロジェクト、グループ、スニペットを作成できません。
  • プロジェクト(フォークを含む)、サブグループ、スニペットは、明示的にアクセス権が付与されたトップレベルグループ内でのみ作成できます。
  • 公開プロジェクトと、明示的にアクセス権が与えられているプロジェクトにのみアクセスできます。
  • 公開グループと、明示的にアクセスを許可されたグループにのみアクセスすることができます。
  • 公開スニペットのみにアクセスできます。

プロジェクトやグループにユーザーをメンバーとして追加することで、アクセスを許可することができます。通常のユーザーと同じように、プロジェクトやグループのロールが与えられ、権限テーブルで言及されているすべての権限が与えられます。例えば、外部ユーザーをゲストとして追加し、プロジェクトが内部または非公開である場合、そのユーザーはコードにアクセスすることはできません。ユーザーの権限レベルだけでなく、プロジェクトの可視性と権限の設定も常に考慮する必要があります。

note
ユーザーが Ultimate 階層のGuest ロールを持っていない限り、外部ユーザーもライセンスシートにカウントされます。

管理者は、次のいずれかの方法でユーザーを外部ユーザーとしてフラグを立てることができます:

  • API経由
  • GitLab UIを使って:
    1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
    2. Admin Areaを選択します。
    3. 左側のサイドバーで「概要」>「ユーザー」を選択し、新しいユーザーを作成または既存のユーザーを編集します。そこに、ユーザーを外部としてフラグを立てるオプションがあります。

さらに、ユーザーを外部ユーザーとして設定することもできます:

新規ユーザーを外部ユーザーに設定します。

デフォルトでは、新規ユーザは外部ユーザとして設定されません。この動作は管理者が変更することができます:

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. 設定] > [全般]を選択します。
  4. アカウントと制限」セクションを展開します。

新規ユーザを外部ユーザとして作成するデフォルトの動作を変更する場合、内部ユーザのセットを定義することで、ユーザを絞り込むオプションがあります。内部ユーザー]フィールドでは、デフォルトの内部ユーザーを識別するためにメールアドレスの正規表現パターンを指定することができます。メールアドレスが正規表現パターンに一致する新規ユーザーは、デフォルトで外部コラボレーターではなく内部ユーザーに設定されます。

正規表現パターンのフォーマットはRubyですが、JavaScriptに変換する必要があり、大文字小文字を無視するフラグが設定されています(/regex pattern/i)。以下に例を示します:

  • .internal@domain.com で終わるメールアドレスを内部アドレスとしてマークするには\.internal@domain\.com$ を使います。
  • .ext@domain.com を含まないメールアドレスを持つユーザーを内部としてマークするには、^(?:(?!\.ext@domain\.com).)*$\r? を使用します。
caution
この正規表現は正規表現サービス拒否攻撃(ReDoS)を引き起こす可能性があるので注意してください。