SAMLのトラブルシューティング
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このページには、以下の使用時に遭遇する可能性のある問題に対する解決策が記載されています:
- GitLab.comグループ向けのSAML SSO。
- GitLab Self-ManagedインスタンスレベルのSAML OmniAuthプロバイダー。
- GitLab DedicatedインスタンスのSAMLをSwitchboardで設定する。
SAMLのデバッグツール
SAMLレスポンスはbase64エンコードされています。これらをオンザフライでデコードするには、SAML-tracerブラウザ拡張機能(Firefox 、Chrome)を使用できます。
ブラウザプラグインをインストールできない場合は、代わりにSAMLレスポンスを手動で生成して取得できます。
次の点に特に注意してください:
- サインインするユーザーを識別する
NameID。ユーザーが以前にサインインしている場合、これはGitLabが保存した値と一致する必要があります。 - レスポンス署名を検証するために必要な
X509Certificateの存在。 SubjectConfirmationおよびConditionsは、設定が誤っているとエラーを引き起こす可能性があります。
SAMLレスポンスを生成する
SAMLレスポンスを使用して、Identity Providerでサインインを試行する際にアサーションリストで送信される属性名と値をプレビューします。
SAMLレスポンスを生成するには:
- ブラウザのデバッグツールのいずれかをインストールします。
- 新しいブラウザタブを開きます。
- SAMLトレーサーコンソールを開きます:
- Chrome: ページ上のコンテキストメニューでInspectを選択し、開発者コンソールでSAMLタブを選択します。
- Firefox: ブラウザのツールバーにあるSAML-tracerアイコンを選択します。
- GitLab.comグループの場合:
- グループのGitLabシングルサインオンURLにアクセスします。
- 許可するを選択するか、サインインを試行します。
- GitLab Self-Managedインスタンスの場合:
- インスタンスのホームページにアクセスします。
- サインインするには
SAML Loginボタンを選択します。
- SAMLトレーサーコンソールに、この例のSAMLレスポンスに似たSAMLレスポンスが表示されます。
- SAMLトレーサー内で、エクスポートアイコンを選択してレスポンスをJSON形式で保存します。
SAMLレスポンスを手動で生成する
概要については、GitLabサポートがアップロードした、ブラウザプラグインを使用せずにSAMLレスポンスを手動で生成する方法(Google Chromeを使用)に関するこのビデオをご覧ください。
どのブラウザを使用しても、プロセスは次のとおりです:
新しいブラウザを右クリックし、Inspectを選択してDevToolsウィンドウを開きます。
ネットワークタブを選択します。Preserve logが選択されていることを確認します。
ブラウザページに切り替えて、SAML SSOを使用してGitLabにサインインします。
DevToolsウィンドウに戻り、
callbackイベントをフィルタリングします。コールバックイベントのPayloadタブを選択し、右クリックして値をコピーします。
この値を次のコマンドに貼り付けます:
echo "<value>" | base64 --decode > saml_response.xml。saml_response.xmlをコードエディタで開きます。コードエディタにXMLの「prettifier」がインストールされている場合は、レスポンスを読みやすく自動的にフォーマットできるはずです。
SAMLサインインのRailsログを検索する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
SAMLサインインに関する詳細情報は、audit_json.logファイルで確認できます。
たとえば、system_accessを検索することで、GitLabにSAMLを使用してサインインしたユーザーのエントリを見つけることができます:
{
"severity": "INFO",
"time": "2024-08-13T06:05:35.721Z",
"correlation_id": "01J555EZK136DQ8S7P32G9GEND",
"meta.caller_id": "OmniauthCallbacksController#saml",
"meta.remote_ip": "45.87.213.198",
"meta.feature_category": "system_access",
"meta.user": "bbtest",
"meta.user_id": 16,
"meta.client_id": "user/16",
"author_id": 16,
"author_name": "bbtest@agounder.onmicrosoft.com",
"entity_id": 16,
"entity_type": "User",
"created_at": "2024-08-13T06:05:35.708+00:00",
"ip_address": "45.87.213.198",
"with": "saml",
"target_id": 16,
"target_type": "User",
"target_details": "bbtest@agounder.onmicrosoft.com",
"entity_path": "bbtest"
}SAMLグループリンクを設定している場合、ログにはグループメンバーシップが削除されたことを詳述するエントリも表示されます:
{
"severity": "INFO",
"time": "2024-08-13T05:24:07.769Z",
"correlation_id": "01J55330SRTKTD5CHMS96DNZEN",
"meta.caller_id": "Auth::SamlGroupSyncWorker",
"meta.remote_ip": "45.87.213.206",
"meta.feature_category": "system_access",
"meta.client_id": "ip/45.87.213.206",
"meta.root_caller_id": "OmniauthCallbacksController#saml",
"id": 179,
"author_id": 6,
"entity_id": 2,
"entity_type": "Group",
"details": {
"remove": "user_access",
"member_id": 7,
"author_name": "BB Test",
"author_class": "User",
"target_id": 6,
"target_type": "User",
"target_details": "BB Test",
"custom_message": "Membership destroyed",
"ip_address": "45.87.213.198",
"entity_path": "group1"
}
}GitLabがSAMLプロバイダーから受け取ったユーザーの詳細は、auth_json.logでも確認できます。例:
{
"severity": "INFO",
"time": "2024-08-20T07:01:20.979Z",
"correlation_id": "01J5Q9E59X4P40ZT3MCE35C2A9",
"meta.caller_id": "OmniauthCallbacksController#saml",
"meta.remote_ip": "xxx.xxx.xxx.xxx",
"meta.feature_category": "system_access",
"meta.client_id": "ip/xxx.xxx.xxx.xxx",
"payload_type": "saml_response",
"saml_response": {
"issuer": [
"https://sts.windows.net/03b8c6c5-104b-43e2-aed3-abb07df387cc/"
],
"name_id": "ab260d59-0317-47f5-9afb-885c7a1257ab",
"name_id_format": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
"name_id_spnamequalifier": null,
"name_id_namequalifier": null,
"destination": "https://dh-gitlab.agounder.com/users/auth/saml/callback",
"audiences": [
"https://dh-gitlab.agounder.com/16.11.6"
],
"attributes": {
"http://schemas.microsoft.com/identity/claims/tenantid": [
"03b8c6c5-104b-43e2-aed3-abb07df387cc"
],
"http://schemas.microsoft.com/identity/claims/objectidentifier": [
"ab260d59-0317-47f5-9afb-885c7a1257ab"
],
"http://schemas.microsoft.com/identity/claims/identityprovider": [
"https://sts.windows.net/03b8c6c5-104b-43e2-aed3-abb07df387cc/"
],
"http://schemas.microsoft.com/claims/authnmethodsreferences": [
"http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password"
],
"email": [
"bbtest@agounder.com"
],
"firstname": [
"BB"
],
"name": [
"bbtest@agounder.onmicrosoft.com"
],
"lastname": [
"Test"
]
},
"in_response_to": "_f8863f68-b5f1-43f0-9534-e73933e6ed39",
"allowed_clock_drift": 2.220446049250313e-16,
"success": true,
"status_code": "urn:oasis:names:tc:SAML:2.0:status:Success",
"status_message": null,
"session_index": "_b4f253e2-aa61-46a4-902b-43592fe30800",
"assertion_encrypted": false,
"response_id": "_392cc747-7c8b-41de-8be0-23f5590d5ded",
"assertion_id": "_b4f253e2-aa61-46a4-902b-43592fe30800"
}
}GitLab SAMLのテスト
SAMLのトラブルシューティングを行うには、次のいずれかを使用できます:
- Docker Composeを使用した、完全なGitLabのSAMLテスト環境。
- SAMLプロバイダーのみが必要な場合は、プラグアンドプレイのSAML 2.0 Identity ProviderでDockerコンテナを起動するクイックスタートガイド。
- GitLab Self-ManagedインスタンスでグループのSAMLを有効にすることによるローカル環境。
設定を検証する
便宜上、GitLabサポートチームが使用するいくつかの例示リソースが含まれています。これらはSAMLアプリケーションの設定の検証に役立つかもしれませんが、サードパーティ製品の現在の状態を反映している保証はありません。
フィンガープリントを計算する
idp_cert_fingerprintを設定する際は、可能な限りSHA256フィンガープリントを使用する必要があります。SHA1もサポートされていますが、推奨されません。フィンガープリントを計算するには、証明書ファイルで次のコマンドを実行します:
openssl x509 -in <certificate.crt> -noout -fingerprint -sha256<certificate.crt>を証明書ファイルの名前に置き換えます。
GitLab 17.11以降では、フィンガープリントの長さに基づいてフィンガープリントアルゴリズムが自動的に検出されます。
GitLab 17.10以前では、SHA1がデフォルトのフィンガープリントアルゴリズムです。SHA256フィンガープリントを使用するには、アルゴリズムを指定する必要があります:
idp_cert_fingerprint_algorithm: "http://www.w3.org/2001/04/xmlenc#sha256"SSO証明書の更新
Identity Providerに使用される証明書が変更されると(たとえば、証明書の更新または再発行時)、証明書フィンガープリントも更新する必要があります。証明書フィンガープリントは、Identity ProviderのUIで見つけることができます。Identity Provider UIで証明書を取得できない場合は、フィンガープリントを計算するドキュメントの手順に従ってください。
設定エラー
無効なオーディエンス
このエラーは、Identity ProviderがGitLabをSAMLリクエストの有効な送信者および受信者として認識していないことを意味します。次のことを確認してください:
- GitLabコールバックURLをIdentity Providerサーバーの承認されたオーディエンスに追加します。
issuer文字列の末尾の空白を避けます。
キー検証エラー、ダイジェスト不一致、またはフィンガープリント不一致
これらのエラーはすべて、SAML証明書という同様の原因から発生します。SAMLリクエストは、フィンガープリント、証明書、またはバリデーターのいずれかを使用して検証される必要があります。
この要件については、次の点を考慮してください:
- フィンガープリントを使用する場合は、SHA256フィンガープリントを確認します:
- 証明書ファイルを再ダウンロードします。
- フィンガープリントを計算します。
- フィンガープリントを
idp_cert_fingerprintで提供される値と比較します。値は同じである必要があります。
- 設定で証明書が提供されていない場合、フィンガープリントまたはフィンガープリントバリデーターを提供する必要があり、サーバーからのレスポンスには証明書(
<ds:KeyInfo><ds:X509Data><ds:X509Certificate>)が含まれている必要があります。 - 設定で証明書が提供されている場合、リクエストに証明書が含まれている必要はありません。この場合、フィンガープリントまたはフィンガープリントバリデーターはオプションです。
以前に説明したシナリオのいずれも有効でない場合、リクエストは言及されたエラーのいずれかで失敗します。
欠落しているクレーム、またはEmail can't be blankエラー
GitLabがアカウントを作成するか、ログイン情報を既存のアカウントと照合するために、Identity Providerサーバーは特定の情報を渡す必要があります。emailは、渡す必要がある情報量の最低限です。Identity Providerサーバーがこの情報を提供していない場合、すべてのSAMLリクエストは失敗します。
この情報が提供されていることを確認してください。
このエラーの原因となる別の問題は、Identity Providerから正しい情報が送信されているにもかかわらず、属性がOmniAuth infoハッシュ内の名前と一致しない場合です。この場合、SAML設定でattribute_statementsを設定して、SAMLレスポンスの属性名を対応するOmniAuth infoハッシュ名にマップする必要があります。
ユーザーサインインバナーエラーメッセージ
メッセージ: SAML authentication failed: SAML NameID is missing from your SAML response.
SAML authentication failed: SAML NameID is missing from your SAML response. Please contact your administrator.というエラーが表示されることがあります。
この問題は、グループSSOを使用してGitLabにサインインしようとしたときに、SAMLレスポンスにNameIDが含まれていなかった場合に発生します。
この問題を解決するには、次の手順に従います:
- 管理者に連絡して、IdPアカウントに
NameIDが割り当てられていることを確認してください。 - SAMLデバッグツールを使用して、SAMLレスポンスに有効な
NameIDが含まれていることを検証します。
メッセージ: SAML authentication failed: Extern uid has already been taken.
SAML authentication failed: Extern uid has already been taken. Please contact your administrator to generate a unique external_uid (NameID).というエラーが表示されることがあります。
この問題は、既存のGitLabアカウントをグループSSOを使用してSAML IDにリンクしようとしたときに、現在のNameIDを持つ既存のGitLabアカウントが存在する場合に発生します。
この問題を解決するには、管理者に、IdPアカウントの一意のExtern UID(NameID)を再生成するように指示してください。この新しいExtern UIDが、GitLabのNameID制約に準拠していることを確認してください。
そのGitLabユーザーをSAMLログインで使用したくない場合は、GitLabアカウントをSAMLアプリケーションからリンク解除できます。
メッセージ: SAML authentication failed: User has already been taken
サインインしているユーザーは、すでにSAMLが別のIDにリンクされているか、NameIDの値が変更されています。考えられる原因と解決策は次のとおりです:
| 原因 | 解決策 |
|---|---|
| 特定のIdentity Providerに対して、複数のSAML IDを同じユーザーにリンクしようとしました。 | サインインするIDを変更します。そうするには、再度サインインを試行する前に、このGitLabアカウントから以前のSAML IDをリンク解除します。 |
ユーザーがSSOによる識別をリクエストするたびに、NameIDが変更されます。 | NameIDがTransient形式で設定されていないこと、またはNameIDがその後のリクエストで変更されないことを確認してください。 |
メッセージ: SAML authentication failed: Email has already been taken
| 原因 | 解決策 |
|---|---|
| 同じメールアドレスを持つGitLabユーザーアカウントが存在するものの、そのアカウントがSAML IDに関連付けられていない場合。 | GitLab.comでは、ユーザーはアカウントをリンクする必要があります。GitLab Self-Managedでは、管理者はインスタンスを設定して、初回サインイン時にSAML IDをGitLabユーザーアカウントに自動的にリンクできます。 |
ユーザーアカウントは次のいずれかの方法で作成されます:
- ユーザー登録
- OAuth経由でのサインイン
- SAML経由でのサインイン
- SCIMプロビジョニング
エラー: ユーザーはすでに存在します
これら両方のエラーが同時に発生する場合、Identity Providerによって提供されるNameIDの大文字/小文字の区別が、そのユーザーの以前の値と正確に一致しなかったことが示唆されます:
SAML authentication failed: Extern UID has already been takenUser has already been taken
これは、NameIDが一貫した値を返すように設定することで防ぐことができます。個々のユーザーに対してこれを修正するには、ユーザーの識別子を変更するプロセスが含まれます。GitLab.comでは、ユーザーはSAMLをGitLabアカウントからリンク解除する必要があります。
メッセージ: Request to link SAML account must be authorized
GitLabアカウントをリンクしようとしているユーザーが、Identity ProviderのSAMLアプリケーション内でユーザーとして追加されていることを確認してください。
あるいは、SAMLレスポンスにsamlp:ResponseタグのInResponseTo属性が欠落している可能性があり、これはSAML gemによって期待されます。Identity Provider管理者は、ログインがIdentity Providerだけでなくサービスプロバイダーによって開始されることを確認する必要があります。
メッセージ: There is already a GitLab account associated with this email address.
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
ユーザーが既存のGitLab.comアカウントにSAMLを手動でリンクしようとすると、このメッセージが表示されることがあります:
There is already a GitLab account associated with this email address.
Sign in with your existing credentials to connect your organization's accountこの問題を解決するには、ユーザーは正しいGitLabパスワードを使用してサインインしていることを確認する必要があります。次の両方の場合、ユーザーはまずパスワードをリセットする必要があります:
- アカウントがSCIMによってプロビジョニングされた場合。
- 初めてユーザー名とパスワードでサインインしている場合。
メッセージ: SAML Name ID and email address do not match your user account
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
ユーザーに「SAML Name IDとメールアドレスがユーザーアカウントと一致しません。管理者に連絡してください。」というエラーが表示されることがあります。これは、次の意味をもちます。
- SAMLによって送信されたNameID値が、既存のSAML IDの
extern_uid値と一致しません。NameIDとextern_uidの両方は大文字と小文字を区別します。詳細については、ユーザーSAMLアイデンティティの管理を参照してください。 - SAMLレスポンスにメールアドレスが含まれていなかったか、またはメールアドレスがユーザーのGitLabメールアドレスと一致しませんでした。
回避策として、GitLabグループオーナーがSAML APIを使用して、ユーザーのSAML extern_uidを更新します。extern_uid値は、SAML Identity Provider(IdP)によって送信されたName ID値と一致する必要があります。IdPの設定によっては、これは生成された一意のID、メールアドレス、またはその他の値である場合があります。
エラー: Certificate element missing in response (ds:x509certificate)
このエラーは、IdPがSAMLレスポンスにX.509証明書を含めるように設定されていないことを示唆しています:
Certificate element missing in response (ds:x509certificate) and not cert provided at settingsX.509証明書をレスポンスに含める必要があります。この問題を解決するには、IdPを設定して、SAMLレスポンスにX.509証明書を含めるようにします。
詳細については、IdP上のSAMLアプリケーションの追加設定に関するドキュメントを参照してください。
その他のユーザーサインイン問題
NameIDの検証
トラブルシューティングにおいて、すべての認証済みユーザーは、https://gitlab.com/api/v4/userにアクセスし、IDの下のextern_uidを確認することで、GitLabがすでにユーザーにリンクしているNameIDをAPIを使用して検証できます。
GitLab Self-Managedでは、管理者はユーザーAPIを使用して同じ情報を確認できます。
グループでSAMLを使用する場合、適切な権限を持つロールのグループメンバーは、メンバーAPIを利用して、グループのメンバーのグループSAML ID情報を表示できます。
これは、SAMLデバッグツールでメッセージをデコードすることで、Identity Providerによって送信されたNameIDと比較できます。これらの値は、ユーザーを識別するために一致する必要があります。
ログインの「ループ」にはまる
GitLabシングルサインオンURLまたはGitLab Self-Managedの場合のインスタンスURLが、Identity ProviderのSAMLアプリで「Login URL」(または同様の名称のフィールド)として設定されていることを確認してください。
GitLab.comの場合、あるいは、ユーザーが既存のGitLab.comアカウントにSAMLをリンクする必要がある場合は、GitLabシングルサインオンURLを提供し、初回サインイン時にSAMLアプリケーションを使用しないようにユーザーに指示します。
ユーザーが404を受信する
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
ユーザーが正常にサインインした後で404を受信した場合、IP制限が設定されているか確認してください。IP制限設定は次のように設定されます:
グループのSAML SSOは有料機能であるため、サブスクリプションの期限切れにより、GitLab.comでSAML SSOを使用してサインインする際に404エラーが発生する可能性があります。すべてのユーザーがSAMLを使用してサインインしようとしている際に404を受信している場合、このSAML SSOネームスペースでアクティブなサブスクリプションが存在することを確認してください。
「設定を検証」を使用するセットアップ中に404を受信した場合は、正しいSHA-1で生成されたフィンガープリントを使用していることを確認してください。
ユーザーが初めてサインインしようとしていて、GitLabシングルサインオンURLが設定されていない場合、404が表示されることがあります。ユーザーアクセスセクションで概説されているように、グループオーナーはユーザーにURLを提供する必要があります。
トップレベルグループがメールドメインによるグループメンバーシップを制限しており、許可されていないメールドメインを持つユーザーがSSOでサインインしようとすると、そのユーザーは404を受信する可能性があります。ユーザーは複数のアカウントを持つ可能性があり、そのSAML IDが、会社のドメインとは異なるメールアドレスを持つ個人のアカウントにリンクされている可能性があります。これを確認するには、次のことを検証してください:
- トップレベルグループがメールドメインによるグループメンバーシップを制限していること。
- トップレベルグループの監査イベントで、次のこと:
- そのユーザーのSigned in with GROUP_SAML authenticationアクションを確認できます。
- 作成者名を選択することで、ユーザーのユーザー名がSAML SSO用に設定したユーザー名と同じであること。
- ユーザー名がSAML SSO用に設定したユーザー名と異なる場合は、ユーザーに個人のアカウントからSAML IDをリンク解除するように依頼します。
すべてのユーザーがIdentity Provider(IdP)にサインインした後で404を受信している場合:
assertion_consumer_service_urlを検証します:- GitLabの設定で、GitLabのHTTPSエンドポイントと一致させます。
- IdP上でSAMLアプリケーションを設定する際に、
Assertion Consumer Service URLまたは同等のものとして。
404が、ユーザーがAzure IdPで多くのグループを割り当てられていることに関連しているかどうかを検証します。IdPサーバーとGitLabの時計が同じ時間に同期されていることを検証します。
一部のユーザーがIdPにサインインした後で404エラーを受信する場合、ユーザーがグループに追加され、その後すぐに削除された場合に何が監査イベントとして返されるかをまず検証します。あるいは、ユーザーが正常にサインインできるものの、トップレベルグループのメンバーとして表示されない場合:
ユーザーがSAML Identity Providerに追加されており、設定されている場合はSCIMも確認してください。
SCIM APIを使用して、ユーザーのSCIM IDの
active属性がtrueであることを確認してください。active属性がfalseである場合、問題を解決するために次のいずれかを実行できます:SCIM Identity Providerでユーザーの同期をトリガーします。例えば、Azureには「Provision on demand」オプションがあります。
SCIM Identity Providerでユーザーを削除して再追加します。
可能であれば、ユーザーにアカウントをリンク解除させ、その後アカウントをリンクさせます。
内部SCIM APIを使用して、グループのSCIMトークンでユーザーのSCIM IDを更新します。グループのSCIMトークンがわからない場合は、トークンをリセットし、新しいトークンでSCIM Identity Providerアプリケーションを更新します。リクエスト例:
curl --request PATCH "https://gitlab.example.com/api/scim/v2/groups/test_group/Users/f0b1d561c-21ff-4092-beab-8154b17f82f2" --header "Authorization: Bearer <SCIM_TOKEN>" --header "Content-Type: application/scim+json" --data '{ "Operations": [{"op":"Replace","path":"active","value":"true"}] }'
ログイン後の500エラー
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
SAMLサインインページからリダイレクトされたときにGitLabで「500エラー」が表示される場合、次のことを示している可能性があります:
- GitLabがSAMLユーザーのメールアドレスを取得できませんでした。Identity Providerが、ユーザーのメールアドレスを含むクレームを、クレーム名
emailまたはmailを使用して提供していることを確認してください。 gitlab.rbファイルに設定されているidentity provider_cert_fingerprintまたはidentity provider_certの証明書が正しくありません。- お使いの
gitlab.rbファイルがidentity provider_cert_fingerprintを有効にするように設定されており、identity provider_certが提供されているか、またはその逆です。
ログイン後の422エラー
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
SAMLサインインページからリダイレクトされたときにGitLabで「422エラー」が表示される場合、Identity ProviderのAssertion Consumer Service (ACS) URLが誤って設定されている可能性があります。
ACS URLがhttps://gitlab.example.com/users/auth/saml/callbackを指していることを確認してください。ここでgitlab.example.comはお使いのGitLabインスタンスのURLです。
ACS URLが正しく、まだエラーがある場合は、他のトラブルシューティングセクションをレビューしてください。
許可されていないメールアドレスでの422エラー
「メールアドレスはサインアップに許可されていません。通常のメールアドレスを使用してください。」という422エラーが表示されることがあります。
このメッセージは、ドメイン許可リストまたは拒否リスト設定からドメインを追加または削除する必要があることを示している可能性があります。
前提条件:
- 管理者アクセス権が必要です。
この回避策を実装するには:
- 右上隅で、管理者を選択します。
- 設定 > 一般を選択します。
- 新規登録の制限を展開します。
- サインアップに許可されたドメインおよびサインアップに拒否されたドメインに、必要に応じてドメインを追加または削除します。
- 変更を保存を選択します。
SAML経由でサインインする際にユーザーがブロックされる
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed、GitLab Dedicated
SAML経由でサインインする際にユーザーがブロックされる最も可能性の高い理由は次のとおりです:
- 設定で
gitlab_rails['omniauth_block_auto_created_users'] = trueが設定されており、これがユーザーの初回サインインである。 required_groupsが設定されているものの、ユーザーがそのいずれかのメンバーではない。
Google Workspaceトラブルシューティングのヒント
サインイン中にGoogleからのエラーが表示される場合、SAMLアプリケーションのエラーメッセージに関するGoogle Workspaceドキュメントはデバッグに役立ちます。次の403エラーに特に注意してください:
app_not_configuredapp_not_configured_for_user
メッセージ: The member's email address is not linked to a SAML account
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
SAML SSO強制が有効になっているGitLab.comグループ(またはサブグループ、またはグループ内のプロジェクト)にユーザーを招待しようとすると、このエラーが表示されます。
グループにユーザーを招待しようとした後でこのメッセージが表示された場合:
- ユーザーがSAML Identity Providerに追加されていることを確認してください。
- ユーザーに、既存のアカウントがある場合は既存のGitLab.comアカウントにSAMLをリンクするように依頼します。それ以外の場合、ユーザーにIdentity Providerのダッシュボード経由でGitLab.comにアクセスするか、または手動でサインアップして新しいアカウントにSAMLをリンクすることで、GitLab.comアカウントを作成するよう依頼します。
- ユーザーがトップレベルグループのメンバーであることを確認してください。
さらに、サインイン後に404を受信するユーザーのトラブルシューティングを参照してください。
メッセージ: The SAML response did not contain an email address.
このエラーが表示された場合:
The SAML response did not contain an email address.
Either the SAML identity provider is not configured to send the attribute, or the
identity provider directory does not have an email address value for your userこのエラーは次の場合に表示されます:
SAML Identity Providerが、サポートされているメール属性を送信するように設定されていることを確認します:
<Attribute Name="email">
<AttributeValue>user@example.com‹/AttributeValue>
</Attribute>http://schemas.xmlsoap.org/ws/2005/05/identity/claimsおよびhttp://schemas.microsoft.com/ws/2008/06/identity/claims/のような語句で始まる属性名は、GitLab 16.7以前でデフォルトでサポートされています。
<Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/emailaddress">
<AttributeValue>user@example.com‹/AttributeValue>
</Attribute>グローバルSAMLグループメンバーシップロックが有効なサービスアカウントを追加できません
- 提供形態: GitLab Self-Managed、GitLab Dedicated
グローバルSAMLグループメンバーシップロックが有効になっている場合、管理者のみがUI経由でグループメンバーとサービスアカウントを管理できます。グループオーナーがサービスアカウントを管理する必要がある場合、代わりにグループメンバーAPIを使用できます。