GitLab.comグループ用のSCIMの設定
オープンスタンダードの System for Cross-domain Identity Management(SCIM) を使って自動的に設定することができます:
- ユーザーの作成。
- ユーザーの削除(SCIM ID の無効化)。
GitLab SAML SSO SCIM はユーザーの更新をサポートしていません。
SCIMがGitLabグループで有効になっている場合、そのグループのメンバーシップはGitLabとIDプロバイダ間で同期されます。
内部GitLabグループSCIM APIは RFC7644プロトコルの一部を実装しています。アイデンティティプロバイダは内部GitLabグループSCIM APIを使ってSCIMアプリを開発することができます。
GitLab の設定
前提条件:
- グループ・シングル・サインオンが設定されている必要があります。
GitLab SAML SSO SCIM を設定するには:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- 設定]、[SAML SSO] の順に選択します。
- Generate a SCIM token(SCIMトークンの生成)」を選択します。
- IDプロバイダの設定については、保存します:
- トークンを保存します。
- SCIM API エンドポイント URLフィールドからの URL。
ID プロバイダの設定
以下のいずれかを ID プロバイダとして設定できます:
Azure Active Directoryの設定
前提条件:
- GitLabが設定されていること。
Azure Active Directory用のシングルサインオンのセットアップ中に作成した SAML アプリケーションを SCIM 用にセットアップする必要があります。例については、設定例を参照してください。
Azure Active Directory を SCIM 用に設定するには:
- アプリでProvisioningタブを開き、Get started を選択します。
- Provisioning Modeを Automaticに設定します。
- 以下の値を使用して、管理者資格情報を入力します:
- テナント URLフィールドには、GitLab のSCIM API エンドポイント URLを使用します。
- GitLabであなたのSCIMトークンをSecret Tokenフィールドに入力してください。
- Test Connection を選択します。テストが成功したら、設定を保存してから続行するか、トラブルシューティング情報をご覧ください。
- Save を選択します。
保存後、[Settings]と [Mappings] セクションが表示されます。
- 必要に応じて、[設定] で通知メールを設定し、[障害発生時にメール通知を送信する] チェックボックスを選択します。
-
マッピング]では、以下をお勧めします:
- Provision Azure Active Directory Users] を有効にしておき、[Provision Azure Active Directory Users] リンクを選択して属性マッピングを設定します。
- マッピングリストの下にある[詳細オプションを表示]チェックボックスを選択します。
- customappssoリンクの属性リストを編集を選択します。
-
id
がプライマリで必須フィールドであることを確認し、externalId
も必須フィールドであることを確認します。 - Save を選択します。
- Provisioning]タブに戻り、必要に応じて未保存の変更を保存します。
- 属性マッピングの編集]を選択します。
-
マッピング] を選択します:
- Provision Azure Active Directory Groups]を選択します。
- Attribute Mapping ページで、Enabledトグルをオフにします。オンにしたままでも SCIM ユーザーのプロビジョニングは壊れませんが、Azure Active Directory でエラーが発生し、混乱したり誤解を招いたりする可能性があります。
- Save を選択します。
- Provisioning]タブに戻り、必要に応じて未保存の変更を保存します。
- 属性マッピングの編集]を選択します。
- Provisioning Status]トグルをオンにします。Provisioning画面の下部に同期の詳細とエラーが表示され、監査イベントへのリンクも表示されます。
id
およびexternalId
にマップされたフィールドを変更すると、さまざまなエラーが発生することがあります。これには、プロビジョニングエラー、重複ユーザー、既存ユーザーがGitLabグループにアクセスできなくなるなどがあります。属性マッピングの設定
Azure Active Directory for SCIM の設定中に、属性マッピングを設定します。設定例を参照してください。
次の表は、GitLab で動作することが知られている属性マッピングです。
ソース属性 | ターゲット属性 | マッチングの優先順位 |
---|---|---|
objectId | externalId | 1 |
userPrincipalName | emails[type eq "work"].value | |
mailNickname | userName |
各属性マッピングには
- Azure Active Directory 属性(ソース属性)。
-
customappsso
属性(ターゲット属性)。 - 一致する優先順位。
各属性に対して
- 編集する属性を選択します。
- 必要な設定を選択します。
- Okを選択します。
SAML 設定が推奨 SAML 設定と異なる場合は、マッピング属性を選択し、それに従って変更します。特に、objectId
source 属性をexternalId
target 属性にマッピングする必要があります。
マッピングが表に記載されていない場合は、Azure Active Directory のデフォルトを使用します。必要な属性のリストについては、内部グループ SCIM APIドキュメントを参照してください。
Okta の設定
Okta 用のシングルサインオンのセットアップ中に作成された SAML アプリケーションは、SCIM 用にセットアップする必要があります。
前提条件:
- OktaLifecycle Management製品を使用する必要があります。OktaでSCIMを使用するには、この製品層が必要です。
- GitLabが設定されていること。
- Okta セットアップノートに記載されているOkta用SAMLアプリケーションのセットアップ。
- Okta SAML設定は、特にNameID設定など、設定手順と完全に一致しています。
OktaをSCIM用に設定するには:
- Oktaにサインインします。
- 右上の「Admin」を選択します。このボタンは管理者エリアからは表示されません。
- Application]タブで[Browse App Catalog]を選択します。
- GitLabを検索し、GitLabアプリケーションを見つけて選択します。
- GitLabアプリケーションの概要ページで、Addを選択します。
- Application Visibilityで両方のチェックボックスを選択します。現在、GitLabアプリケーションはSAML認証に対応していないため、アイコンはユーザーに表示されません。
- Doneを選択してアプリケーションの追加を完了します。
- Provisioningタブで、Configure API integration を選択します。
-
API インテグレーションを有効にする]を選択します。
- Base URL には、GitLab SCIM 設定ページのSCIM API エンドポイント URLからコピーした URL を貼り付けます。
- API Token には、GitLab SCIM 設定ページのYour SCIM tokenからコピーした SCIM トークンを貼り付けます。
- 設定を確認するには、Test API Credentials を選択します。
- Save を選択します。
- APIインテグレーションの詳細を保存すると、左側に新しい設定タブが表示されます。アプリへ」を選択します。
- 編集]を選択します。
- ユーザーの作成]と[ユーザーの停止]の両方の[有効]チェックボックスを選択します。
- Save を選択します。
- Assignmentsタブでユーザーを割り当てます。割り当てられたユーザーはGitLabグループで作成・管理されます。
ユーザーアクセス
GitLab 14.0から導入された、SAML SSOまたはSCIMプロビジョニングによって作成されたGitLabユーザーは、以下のように表示されます。 エンタープライズバッジで表示されます。
同期プロセス中、すべての新規ユーザー:
- GitLabアカウントを受け取ります。
- 招待メールでグループに歓迎されます。ドメインが認証されている場合、メール確認を回避することができます。
次の図は、SCIM アプリにユーザーを追加したときに起こることを説明しています:
プロビジョニング中
- GitLabユーザーアカウントが存在するかどうかをチェックする際には、プライマリメールとセカンダリメールの両方が考慮されます。
- 重複するユーザー名は、ユーザーを作成する際にサフィックス
1
を追加することで処理されます。例えば、test_user
が既に存在する場合、test_user1
が使わtest_user1
れます。既に存在するtest_user1
場合test_user1
、GitLabはサフィックスをインクリメントして未使用のユーザー名を探します。4回試しても未使用のユーザー名が見つからない場合は、ランダムな文字列がユーザー名に付加されます。
それ以降、新規ユーザーも既存ユーザーもグループにアクセスできるようになります:
- ID プロバイダのダッシュボードから。
- リンクに直接アクセスする方法。
ロール情報については、グループ SAMLページを参照してください。
SCIM for GitLab グループで作成されたユーザーのパスワード
GitLabはすべてのユーザーアカウントにパスワードを要求します。SCIM for GitLabグループを通して作成されたユーザーのパスワードをGitLabが生成する方法の詳細については、統合認証を通して作成されたユーザーの生成パスワードをご覧ください。
SCIM と SAML アイデンティティをリンクします。
グループSAMLが設定されていて、既存のGitLab.comアカウントがある場合、ユーザーはSCIMとSAMLアイデンティティをリンクすることができます。同期がアクティブになると、既存のユーザーに対してプロビジョニングエラーが発生する可能性があります。
SCIM と SAML アイデンティティをリンクするには、以下の手順に従います:
- GitLab.com ユーザーアカウントのプライマリメールアドレスを、アイデンティティプロバイダのユーザープロファイルのメールアドレスと一致するように更新します。
- SAML アイデンティティをリンクします。
アクセスを削除
アクセス権を削除するために、ID プロバイダ上でユーザーを削除または無効化します:
- トップレベルのグループ。
- すべてのサブグループとプロジェクト。
アイデンティティ・プロバイダが設定されたスケジュールに基づいて同期を実行した後、ユーザーのメンバーシップは取り消され、ユーザーはアクセスできなくなります。
SCIM を有効にしても、SAML ID を持っていない既存のユーザは自動的に削除されません。