チュートリアル: GitLab.comグループのSAML SSOを設定する
このチュートリアルでは、OktaやMicrosoft Entra IDなどのアイデンティティプロバイダ(IdP)を使用して、GitLab.comグループのSAMLシングルサインオン(SSO)を設定する方法について説明します。完了すると、グループのメンバーはIdP経由でGitLabにサインインできます。
このチュートリアルでは、次のことを行います:
- IdPアプリケーションを介してSAMLを設定します。
- GitLabグループでSAML SSOを設定します。
- SAML接続をテストします。
- 設定を検証するためにユーザーアカウントをリンクします。
はじめる前
前提条件:
- GitLab.comのGitLab PremiumまたはUltimateプランのグループのオーナーロールが必要です。
- IdPへの管理者アクセス権が必要です。
- IdPに少なくとも1つのテストユーザーアカウントが必要です。
- シングルサインオンの概念を理解しておく必要があります。
完了までの時間: 20~30分
ステップ1: GitLabの情報を収集する
IdPで何かを設定する前に、IdPがGitLabグループと通信する方法を伝えるGitLabからの接続詳細をいくつか取得する必要があります。
GitLabの情報を収集するには:
- 上部のバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > SAML SSOを選択します。
- これらの値を書き留めます:
- 識別子
- アサーションコンシューマサービスURL
- GitLabシングルサインオンURL
ステップ2: IdPアプリケーションを作成する
GitLabの詳細が準備できたので、IdPでアプリケーションを作成します。このアプリケーションは、GitLabの情報をIdPにマップし、2つのシステム間のユーザー情報フローを設定します。
IdPアプリケーションを作成するには:
- 管理者としてOktaにサインインします。
- 管理コンソールで、アプリケーション > アプリケーションを選択します。
- Create App Integrationを選択します。
- Sign-in methodセクションで、SAML 2.0を選択します。
- Nextを選択します。
- 一般設定タブで、アプリケーションの名前を入力します。例:
GitLab SAML。 - Nextを選択します。
- Configure SAMLタブで、手順1の値を使用してフィールドに入力します:
- Single sign-on URL: アサーションコンシューマーサービスURLを入力します。
- Use this for Recipient URL and Destination URLチェックボックスをオンにします。
- Audience URI (SP Entity ID): 識別子を入力します。
- 名前識別子を設定します:
- Application username (NameID): カスタムを選択し、
user.getInternalProperty("id")を入力します。 - Name ID Format: Persistentを選択します。
- Application username (NameID): カスタムを選択し、
- **Attribute Statements (optional)**セクションで、この属性を追加します:
- 名前:
email - 値:
user.email
- 名前:
- Application Login Page設定までスクロールします:
- Login page URL: GitLabシングルサインオンのURLを入力します。
- Nextを選択します。
- Feedbackタブで、ユースケースに適したオプションを選択します。
- Finishを選択します。
SAMLアプリケーションがOktaに作成されます。
SAML属性と詳細な設定オプションの詳細については、SAML SSOのドキュメントを参照してください。
- Microsoft Entra管理センターにサインインします。
- アイデンティティ > アプリケーション > Enterprise applicationsを選択します。
- 新しいアプリケーションを選択します。
- Create your own applicationを選択します。
- ダイアログで、フィールドに入力します:
- Name: アプリケーションの名前を入力します。このチュートリアルでは、
GitLab SAMLを使用します。 - **Integrate any other application you don’t find in the gallery (Non-gallery)**を選択します。
- Name: アプリケーションの名前を入力します。このチュートリアルでは、
- Createを選択します。
エンタープライズアプリケーションがMicrosoft Entra IDに作成されます。
- エンタープライズアプリケーションで、左側のサイドバーからSingle sign-onを選択します。
- シングルサインオン方式としてSAMLを選択します。
- Basic SAML Configurationセクションで、編集を選択します。
- 手順1の値を使用してフィールドに入力します:
- Identifier (Entity ID): 識別子を入力します。
- Reply URL (Assertion Consumer Service URL): アサーションコンシューマーサービスURLを入力します。
- Sign on URL: GitLabシングルサインオンのURLを入力します。
- Saveを選択します。
- User Attributes & Claimsセクションで、編集を選択します。
- Add new claimを選択し、フィールドに入力します:
- Name:
emailを入力します。 - Source attribute:
user.mailを選択します。
- Name:
- Saveを選択します。
- **Unique User Identifier (Name ID)**クレームを編集します:
- 既存のUnique User Identifierクレームを選択します。
- Source attribute:
user.objectidを選択します。 - Name identifier format: Persistentを選択します。
- Saveを選択します。
SAML属性と詳細な設定オプションの詳細については、SAML SSOのドキュメントを参照してください。
ステップ3: 接続の詳細を収集する
ここで、GitLabが認証リクエストをIdPに送信するために必要な情報を取得します。
接続の詳細を収集するには:
Okta SAMLアプリで、Sign Onタブを選択します。
右側で、View SAML setup instructionsを選択します。
**Identity Provider Single Sign-On URL(アイデンティティプロバイダのシングルサインオンURL)**をメモします。
証明書フィンガープリントを生成します:
- X.509 Certificateフィールドで、テキストをコピーしてローカルに保存します。
- ターミナルを開き、証明書ファイルを保存したディレクトリに移動します。
- このコマンドを実行して、証明書フィンガープリントを生成します:
# Replace `<certificate_filename>` with the actual filename of your downloaded certificate. # You might need to install OpenSSL or use an alternative method to generate the fingerprint. openssl x509 -noout -fingerprint -sha256 -in <certificate_filename>.crtSHA256 Fingerprint=の後のフィンガープリント値をコピーします。フィンガープリントはA1:B2:C3:D4:E5:F6:...のようになります。
- エンタープライズアプリケーションで、Single sign-onを選択します。
- SAML Signing Certificateセクションで、Thumbprintの値を書き留めます。サムプリントは
A1B2C3D4E5F6...のようになります。 - Set up GitLab SAMLセクションで、Login URLを書き留めます。このセクションの名前は、エンタープライズアプリケーションの名前に基づいています。
ステップ4: GitLabでSAML SSOを設定する
接続を完了するために必要なものがすべて揃っています。GitLabに戻り、接続の詳細を入力して、グループのSAML認証をオンにします。
SAMLを設定するには:
- GitLabグループに戻ります。
- 設定 > SAML SSOを選択します。
- 設定セクションで、フィールドに入力します:
- アイデンティティプロバイダのシングルサインオンURL: 手順3のURLを入力します。
- 証明書のフィンガープリント: 手順3のフィンガープリントを入力します。
- このグループのSAML認証を有効にしますチェックボックスを選択します。
- デフォルトのメンバーシップロールドロップダウンリストから、最小アクセスを選択します。
- 変更を保存を選択します。
基本的なSAML接続が設定されました。
デフォルトのメンバーシップロールは、任意のロールに設定できます。すべての新しいユーザーには、SAMLを介して最初にサインインするときに、このロールが割り当てられます。デフォルトを最小アクセスに設定し、後でユーザーを昇格させると、ユーザーが過剰なアクセス権を持つリスクが軽減されます。
ステップ5: SAML設定をテストする
チームを招待する前に、接続が正しく機能することを確認してください。
SAML設定をテストするには:
- 設定 > SAML SSOページで、SAML構成の確認を選択します。GitLabはIdPにリダイレクトされます。
- IdP認証情報でサインインします。
- IdPがGitLabにリダイレクトすることを確認します。
エラーが表示される場合は、トラブルシューティングガイドを参照してください。
ステップ6: ユーザーアカウントをリンクして、完全なフローをテストする
設定は問題ありません。次に、チームメンバーがIdPを介してGitLabに最初に接続するときと同様に、テストアカウントをリンクして、ユーザーの視点からエクスペリエンスをテストします。
ユーザーアカウントのリンクをテストするには:
- GitLabからサインアウトします。
- 別のブラウザまたはシークレットウィンドウで、テストGitLabアカウントにサインインします。
- 手順1で書き留めたGitLabシングルサインオンURIにアクセスします。
- 許可するを選択します。
- プロンプトが表示されたら、IdP認証情報でサインインします。
- GitLabグループにリダイレクトされたことを確認します。
おつかれさまでした。SAMLアイデンティティをGitLabアカウントに正常にリンクしました。
ステップ7: オプション: SSO強制を有効にする
作業用のSAML設定があります。オプションの最後の手順として、SSO強制を有効にすることができます。SSO強制では、すべてのグループメンバーがIdPを介して認証を行う必要があり、セキュリティが強化されます。ただし、他の認証方法によるアクセスは防止されます。
SSO強制を有効にするには:
- 上部のバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > SAML SSOを選択します。
- このグループのWEBアクティビティーにSSOのみの認証を適用しますを選択します。
- 変更を保存を選択します。
強制を有効にすると、すべてのグループメンバーは、グループリソースにアクセスする前にIdP経由でサインインする必要があります。
次の手順
GitLabグループのSAML SSOが正常に設定されました。次に実行できることを次に示します:
- 自動的にユーザーを同期するには、SCIMプロビジョニングを設定します。
- IdPグループに基づいてGitLabグループメンバーシップを管理するには、グループ同期を設定するを設定します。
- 新しいユーザーに対してバイパスユーザーメール確認を行うドメインを確認します。
- 高度なセキュリティオプションについては、SSO強制ドキュメントを確認してください。
トラブルシューティング
このチュートリアルで問題が発生した場合は、次のリソースを参照してください: