Nexgen Software Solution Company

株式会社トレンドソリューションズ
TEL:050-3524-3317

GitLabのユーザ追加とSSO

詳細

目次

  • GroupとProjectの関係
  • 通常のユーザ追加
  • GitLabのSSO設定及びプロビジョニング
  • SSO設定された場合、ユーザを特定のSub-Groupに追加するには

GroupとProjectの関係

GitLabは以下のイメージのように、GroupとProjectで構成されます。

  • TopGroupは複数作成可能
  • TopGroupの下に、SubGroupとProjectがぶら下がる
  • Projectは必ずGroupに所属

※Owner直下のGroupはTopGroupと呼びます


通常のメンバー追加

Group membersもしくはProject membaers 画面から、メンバーを招待することができます。

左側のように:

  • 招待対象のメールアドレスを指定
  • 与えたいロールを指定
  • 有効期間があれば指定

※ここで注意する必要なのは:

Groupへ招待した場合、そのメンバーがGroupにぶら下がっている全てのSubGroupとProjectに対して、同じ権限と有効期間が与えられます。


GitLabのSSO設定及びプロビジョニング

続いて、GitLabとAzure ADのSSO設定について説明します。

大きくは以下の3つのステップになります。

  • Azure AD側で、エンタープライズ アプリケーションを作成
  • 作成したエンタープライズ アプリケーションに対して、以下の設定を行う
    • ユーザーとグループの割り当て
    • シングルサインオンの設定
    • ユーザー アカウントのプロビジョニング
  • プロビジョニングの実行

Azure AD側のエンタープライズ アプリケーションの作成

GitLabとのSSO設定はギャラリーに存在しないため、独自のアプリケーションを作成します。

  • アプリの名前は任意
  • ギャラリーに存在しないので、ギャラリー以外を選択

エンタープライズ アプリケーションの設定

以下1~3の設定を完成すれば、指定されたユーザーが指定されたGitLab TopGroupへ追加されます。

1.ユーザーとグループの割り当て

Azure ADに存在するグループの追加、もしくは個別ユーザーの追加はできます。

2.シングルサインオンの設定

設定内容の詳細は GitLab公式サイト をご参考ください。

ここで注意してほしいのは1つありまして、GitLab側TopGroupのSAML SSO設定画面に「デフォルトメンバーシップロール」があります。ユーザーは指定されたTopGroupに参加するので、前述にも説明した通り、TopGroupにぶら下がっている全てのGroupとProjectにも同じ権限が与えられます。

設定画面のイメージは以下となります。

3.ユーザー アカウントのプロビジョニング

ユーザー情報をGitLabへ同期するための設定となります、詳細は 公式サイト をご参考ください。

プロビジョニングの実行

設定完了後、プロビジョニング開始ボタンを押せばすぐに同期が始まります。

同期完了後にもプロビジョニングが定期的に自動実行されるので、ユーザーの追加/削除があれば、自動的にGitLabへ反映されます。

同期後のGitLab TopGroupのメンバーを見てみると、追加したユーザーが指定されたロール(minimal access)で同期されていることがわかりました。


SSO設定された場合、ユーザを特定のSub-Groupに追加するには

メンバーをMinimal AccessロールでTopGroupへ同期後、各Group/Projectへのメンバー招待作業が必要となります。

大規模案件、もしくはプロジェクト参画メンバーの変動は多く発生する場合、手運用は大変手間かかりますので、SAML Group Links機能をご紹介したいと思います。

やり方はとても簡単で、設定手順は以下となります。

  • Azure ADエンタープライズアプリケーション側でユーザーとグループの設定を行う
    • GitLabのGroup構成に応じて、Groupを作成もしくは既存AD Groupを追加
    • 当該Groupにuserを追加
  • GitLab側で設定を行う(SAML Group Linksは複数件登録可能)
    • 対象Groupの設定画面から、SAML Group Linksをクリックし、設定画面を開き
    • Azure AD側のGroupのオブジェクトIDを「SAML Group Name」に記入
    • 「Access Level」を指定
  • Azure AD側のプロビジョニングを実施
※詳細は GitLab公式サイト をご参考ください。

例えば:

下記イメージのように、Azure ADとGitLabとそれぞれ3つのGroupがあります。

それぞれ1対1でSAML Group Linksを設定した後、AD-SG-3とGL-SG-1もリンクしてあげますと、プロビジョニングした後、user3がGL-SG-1とGL-SG-3と2つのGroupに参加させることが可能になります。

説明は以上になりますが、いかがでしたか?SAML Group Links 機能を活用することによって、複雑なメンバー設定は自動化可能になり、運用はとても楽になります、ぜひ試してみてください。

以上。