正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

チュートリアル: GitLab.comグループのSAML SSOを設定する

このチュートリアルでは、OktaやMicrosoft Entra IDなどのアイデンティティプロバイダ(IdP)を使用して、GitLab.comグループのSAMLシングルサインオン(SSO)を設定する方法について説明します。完了すると、グループのメンバーはIdP経由でGitLabにサインインできます。

このチュートリアルでは、次のことを行います:

  1. IdPアプリケーションを介してSAMLを設定します。
  2. GitLabグループでSAML SSOを設定します。
  3. SAML接続をテストします。
  4. 設定を検証するためにユーザーアカウントをリンクします。

はじめる前

前提条件:

  • GitLab.comのGitLab PremiumまたはUltimateプランのグループのオーナーロールが必要です。
  • IdPへの管理者アクセス権が必要です。
  • IdPに少なくとも1つのテストユーザーアカウントが必要です。
  • シングルサインオンの概念を理解しておく必要があります。

完了までの時間: 20~30分

ステップ1: GitLabの情報を収集する

IdPで何かを設定する前に、IdPがGitLabグループと通信する方法を伝えるGitLabからの接続詳細をいくつか取得する必要があります。

GitLabの情報を収集するには:

  1. 上部のバーで、検索または移動先を選択して、グループを見つけます。
  2. 設定 > SAML SSOを選択します。
  3. これらの値を書き留めます:
    • 識別子
    • アサーションコンシューマサービスURL
    • GitLabシングルサインオンURL

ステップ2: IdPアプリケーションを作成する

GitLabの詳細が準備できたので、IdPでアプリケーションを作成します。このアプリケーションは、GitLabの情報をIdPにマップし、2つのシステム間のユーザー情報フローを設定します。

IdPアプリケーションを作成するには:

  1. 管理者としてOktaにサインインします。
  2. 管理コンソールで、アプリケーション > アプリケーションを選択します。
  3. Create App Integrationを選択します。
  4. Sign-in methodセクションで、SAML 2.0を選択します。
  5. Nextを選択します。
  6. 一般設定タブで、アプリケーションの名前を入力します。例: GitLab SAML
  7. Nextを選択します。
  8. Configure SAMLタブで、手順1の値を使用してフィールドに入力します:
    • Single sign-on URL: アサーションコンシューマーサービスURLを入力します。
    • Use this for Recipient URL and Destination URLチェックボックスをオンにします。
    • Audience URI (SP Entity ID): 識別子を入力します。
  9. 名前識別子を設定します:
    • Application username (NameID): カスタムを選択し、user.getInternalProperty("id")を入力します。
    • Name ID Format: Persistentを選択します。
  10. **Attribute Statements (optional)**セクションで、この属性を追加します:
    • 名前: email
    • : user.email
  11. Application Login Page設定までスクロールします:
    • Login page URL: GitLabシングルサインオンのURLを入力します。
  12. Nextを選択します。
  13. Feedbackタブで、ユースケースに適したオプションを選択します。
  14. Finishを選択します。

SAMLアプリケーションがOktaに作成されます。

SAML属性と詳細な設定オプションの詳細については、SAML SSOのドキュメントを参照してください。

  1. Microsoft Entra管理センターにサインインします。
  2. アイデンティティ > アプリケーション > Enterprise applicationsを選択します。
  3. 新しいアプリケーションを選択します。
  4. Create your own applicationを選択します。
  5. ダイアログで、フィールドに入力します:
    • Name: アプリケーションの名前を入力します。このチュートリアルでは、GitLab SAMLを使用します。
    • **Integrate any other application you don’t find in the gallery (Non-gallery)**を選択します。
  6. Createを選択します。

エンタープライズアプリケーションがMicrosoft Entra IDに作成されます。

  1. エンタープライズアプリケーションで、左側のサイドバーからSingle sign-onを選択します。
  2. シングルサインオン方式としてSAMLを選択します。
  3. Basic SAML Configurationセクションで、編集を選択します。
  4. 手順1の値を使用してフィールドに入力します:
    • Identifier (Entity ID): 識別子を入力します。
    • Reply URL (Assertion Consumer Service URL): アサーションコンシューマーサービスURLを入力します。
    • Sign on URL: GitLabシングルサインオンのURLを入力します。
  5. Saveを選択します。
  6. User Attributes & Claimsセクションで、編集を選択します。
  7. Add new claimを選択し、フィールドに入力します:
    • Name: emailを入力します。
    • Source attribute: user.mailを選択します。
  8. Saveを選択します。
  9. **Unique User Identifier (Name ID)**クレームを編集します:
    • 既存のUnique User Identifierクレームを選択します。
    • Source attribute: user.objectidを選択します。
    • Name identifier format: Persistentを選択します。
  10. Saveを選択します。

SAML属性と詳細な設定オプションの詳細については、SAML SSOのドキュメントを参照してください。

ステップ3: 接続の詳細を収集する

ここで、GitLabが認証リクエストをIdPに送信するために必要な情報を取得します。

接続の詳細を収集するには:

  1. Okta SAMLアプリで、Sign Onタブを選択します。

  2. 右側で、View SAML setup instructionsを選択します。

  3. **Identity Provider Single Sign-On URL(アイデンティティプロバイダのシングルサインオンURL)**をメモします。

  4. 証明書フィンガープリントを生成します:

    1. X.509 Certificateフィールドで、テキストをコピーしてローカルに保存します。
    2. ターミナルを開き、証明書ファイルを保存したディレクトリに移動します。
    3. このコマンドを実行して、証明書フィンガープリントを生成します:
       # 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>.crt
  5. SHA256 Fingerprint=の後のフィンガープリント値をコピーします。フィンガープリントはA1:B2:C3:D4:E5:F6:...のようになります。

  1. エンタープライズアプリケーションで、Single sign-onを選択します。
  2. SAML Signing Certificateセクションで、Thumbprintの値を書き留めます。サムプリントはA1B2C3D4E5F6...のようになります。
  3. Set up GitLab SAMLセクションで、Login URLを書き留めます。このセクションの名前は、エンタープライズアプリケーションの名前に基づいています。

ステップ4: GitLabでSAML SSOを設定する

接続を完了するために必要なものがすべて揃っています。GitLabに戻り、接続の詳細を入力して、グループのSAML認証をオンにします。

SAMLを設定するには:

  1. GitLabグループに戻ります。
  2. 設定 > SAML SSOを選択します。
  3. 設定セクションで、フィールドに入力します:
    • アイデンティティプロバイダのシングルサインオンURL: 手順3のURLを入力します。
    • 証明書のフィンガープリント: 手順3のフィンガープリントを入力します。
  4. このグループのSAML認証を有効にしますチェックボックスを選択します。
  5. デフォルトのメンバーシップロールドロップダウンリストから、最小アクセスを選択します。
  6. 変更を保存を選択します。

基本的なSAML接続が設定されました。

デフォルトのメンバーシップロールは、任意のロールに設定できます。すべての新しいユーザーには、SAMLを介して最初にサインインするときに、このロールが割り当てられます。デフォルトを最小アクセスに設定し、後でユーザーを昇格させると、ユーザーが過剰なアクセス権を持つリスクが軽減されます。

ステップ5: SAML設定をテストする

チームを招待する前に、接続が正しく機能することを確認してください。

SAML設定をテストするには:

  1. 設定 > SAML SSOページで、SAML構成の確認を選択します。GitLabはIdPにリダイレクトされます。
  2. IdP認証情報でサインインします。
  3. IdPがGitLabにリダイレクトすることを確認します。

エラーが表示される場合は、トラブルシューティングガイドを参照してください。

設定は問題ありません。次に、チームメンバーがIdPを介してGitLabに最初に接続するときと同様に、テストアカウントをリンクして、ユーザーの視点からエクスペリエンスをテストします。

ユーザーアカウントのリンクをテストするには:

  1. GitLabからサインアウトします。
  2. 別のブラウザまたはシークレットウィンドウで、テストGitLabアカウントにサインインします。
  3. 手順1で書き留めたGitLabシングルサインオンURIにアクセスします。
  4. 許可するを選択します。
  5. プロンプトが表示されたら、IdP認証情報でサインインします。
  6. GitLabグループにリダイレクトされたことを確認します。

おつかれさまでした。SAMLアイデンティティをGitLabアカウントに正常にリンクしました。

ステップ7: オプション: SSO強制を有効にする

作業用のSAML設定があります。オプションの最後の手順として、SSO強制を有効にすることができます。SSO強制では、すべてのグループメンバーがIdPを介して認証を行う必要があり、セキュリティが強化されます。ただし、他の認証方法によるアクセスは防止されます。

SSO強制を有効にするには:

  1. 上部のバーで、検索または移動先を選択して、グループを見つけます。
  2. 設定 > SAML SSOを選択します。
  3. このグループのWEBアクティビティーにSSOのみの認証を適用しますを選択します。
  4. 変更を保存を選択します。

強制を有効にすると、すべてのグループメンバーは、グループリソースにアクセスする前にIdP経由でサインインする必要があります。

次の手順

GitLabグループのSAML SSOが正常に設定されました。次に実行できることを次に示します:

トラブルシューティング

このチュートリアルで問題が発生した場合は、次のリソースを参照してください: