シングル サインオン(SSO)のトラブルシューティング

ここでは、サービス プロバイダ(SP)として Google を利用している場合に、Google Workspace と SAML ベースのシングル サインオン(SSO)の統合時または使用時に表示されることがあるエラー メッセージの解決手順を説明します。

設定と有効化

「このドメインは、シングル サインオンを使用するように設定されていません。」

このエラーは通常、G Suite の Standard Edition(無償版)でシングル サインオンを設定しようとした場合に表示されます。G Suite(無償版)ではシングル サインオンはサポートされていません。SSO をサポートする Google Workspace エディションをご利用の場合は、ID プロバイダで構成を調べて、Google Workspace のドメイン名を正しく入力していることを確認してください。

「ドメインが正しく設定されていないため、このアカウントにアクセスできません。しばらくしてからもう一度試してください。」

このエラーは、Google 管理コンソールでシングル サインオンが正しく設定されていないことを意味します。問題を解決するには、次の操作を行ってください。

  1. Google 管理コンソールで、[セキュリティ] 次の操作 [サードパーティの ID プロバイダを使用したシングル サインオン(SSO)の設定] に移動し、[サードパーティの ID プロバイダで SSO を設定する] チェックボックスをオンにします。
  2. 組織のログインページの URL、ログアウト ページの URL、パスワード変更ページの URL を、該当する欄に入力します。
  3. 確認用の有効な証明書のファイルを選択してアップロードします。
  4. [保存] をクリックし、変更が反映されるまで数分待ってから、もう一度統合をテストします。

SAML レスポンスの解析

「必要な応答パラメータ SAMLResponse が見つかりませんでした。」

このエラー メッセージは、ご使用の ID プロバイダが Google に対してなんらかの有効な SAML レスポンスを提供していないことを意味します。このエラーの原因は、ID プロバイダの設定に問題がある場合がほとんどです。

  • ID プロバイダのログを調べて、有効な SAML レスポンスの送信を妨げている原因がないかどうかを確認します。
  • ID プロバイダから Google Workspace に送信される SAML レスポンスが暗号化されていないことを確認します。Google Workspace は、暗号化された SAML レスポンスを受け付けません。特に Microsoft の Active Directory フェデレーション サービス 2.0 では、送信する SAML レスポンスを暗号化するようにデフォルト設定されていることが多いためご注意ください。
「必要な応答パラメータ RelayState が見つかりませんでした。」

SAML 2.0 の仕様では、ID プロバイダがリソース プロバイダ(Google Workspace など)から RelayState URL パラメータを取得して送り返す必要があります。この値は、Google Workspace から ID プロバイダに SAML リクエストで提供され、ログインのたびにその内容が異なります。認証を完了するには、返される SAML レスポンスに正確な RelayState が含まれている必要があります。SAML 標準仕様では、ログインフロー中に ID プロバイダが RelayState を変更しないよう定められています。

  • この問題を詳しく調査するには、ログイン試行時に HTTP ヘッダーを取得します。HTTP ヘッダーから SAML リクエストと SAML レスポンスの両方の RelayState を抽出し、リクエストとレスポンスの RelayState 値が一致していることを確認します。
  • 商用またはオープンソースの SSO ID プロバイダの多くは、デフォルトで RelayState をシームレスに送信します。最適な安全性と信頼性が得られるように、既存のソリューションを使用することをおすすめします。独自のカスタム SSO ソフトウェアについては、Google でサポートを提供することはできません。

SAML レスポンスの内容

「ログイン リクエストに無効な [destination|audience|recipient] 情報が含まれていたため、このサービスにアクセスできません。ログインしてから、もう一度お試しください。」

このエラーは、SAML アサーションの destinationaudience、または recipient 要素に無効な情報が含まれていたか、何も含まれていなかったことを意味します。すべての要素が SAML アサーションに含まれている必要があります。各要素の説明と例については、次の表をご覧ください。

要素 <Audience>
説明 ACS URI の値を必要とする、目的のオーディエンスを指定する URI。注: 要素値を空白にすることはできません。
必要な値 https://www.google.com/a/<ドメイン名.com>/acs

<saml:Conditions NotBefore="2014-11-05T17:31:37Z"
NotOnOrAfter="2014-11-05T17:37:07Z">
<saml:AudienceRestriction>
<saml:Audience>https://www.google.com/a/[ドメイン名].com/acs
</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>

 

要素 <StatusResponseType> タイプの Destination 属性
説明 SAML アサーションの送信先 URI。省略可能ですが、宣言する場合は ACS URI の値が必要です。
必要な値 https://www.google.com/a/<ドメイン名.com>/acs

<saml:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="7840062d379d82598d87ca04c8622f436bb03aa1c7"
Version="2.0"
IssueInstant="2014-11-05T17:32:07Z"
Destination="https://www.google.com/a/example.com/acs"
InResponseTo="midihfjkfkpcmbmfhhoehbokhbkeapbbinldpeen">

 

要素 <SubjectConfirmationData> の Recipient 属性
 
説明
  • Subject の宛先となるエンティティを定義します。
  • 必須属性であり、ACS URI を含む必要があります。
  • 大文字と小文字が区別されます。
必要な値 https://www.google.com/a/<ドメイン名.com>/acs

<saml:Subject>
<saml:NameID SPNameQualifier="google.com/a/[ドメイン名].com"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:email">[ユーザー名]@[ドメイン名].com</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2014-11-05T17:37:07Z"
Recipient="https://www.google.com/a/[ドメイン名].com/acs"
InResponseTo="midihfjkfkpcmbmfhjoehbokhbkeapbbinldpeen"/>
</saml:SubjectConfirmation> 
</saml:Subject>

すべての必須要素について詳しくは、SSO アサーションの要件をご覧ください。

「ログイン リクエストに宛先情報が含まれていなかったため、このサービスにはアクセスできません。ログインしてから、もう一度やり直してください。」

通常このエラーは、ID プロバイダからの SAML レスポンスに読み取り可能な Recipient 値がない(または Recipient 値が正しくない)ことを意味します。Recipient 値は SAML レスポンスの重要な要素です。

  1. この問題を詳しく調査するには、ログイン試行時に HTTP ヘッダーを取得します。
  2. HTTP ヘッダーから SAML リクエストと SAML レスポンスを抽出します。
  3. SAML レスポンス内に Recipient 値が存在し、SAML リクエスト内の値と一致していることを確認します。

注: 「ログイン リクエストに無効な宛先情報が含まれていたため、このサービスにはアクセスできません。ログインしてから、もう一度やり直してください」というエラー メッセージが表示される場合もあります。

「ログイン資格情報を確認できないため、このアカウントにはアクセスできません。」

このエラーは、認証フローの署名に使用している証明書に問題があることを意味します。具体的な原因としては、SAML レスポンスの署名に使用される秘密鍵が Google Workspace に登録されている公開鍵証明書と一致していないことがよくあります。

このエラーは、SAML レスポンスに有効な Google アカウントのユーザー名が含まれていない場合に発生することもあります。Google Workspace は、SAML レスポンスの NameID という XML 要素を解析し、この要素に Google Workspace のユーザー名または完全な Google Workspace メールアドレスが含まれていることを確認します。

  • 有効な証明書が Google Workspace にアップロードされていることを確認し、必要な場合は証明書を置き換えます。Google 管理コンソールで、[セキュリティ] 次の操作 [サードパーティの ID プロバイダを使用したシングル サインオン(SSO)の設定] に移動し、[証明書を更新] をクリックします。
  • NameID 要素に完全なメールアドレスを使用している場合(マルチドメインの Google 管理コンソール環境で SSO を使用している場合)、NameID 要素の Format 属性で完全なメールアドレスの使用が指定されていることを確認します(例: Format="urn:oasis:names:tc:SAML:2.0:nameid-format:email")。
  • NameID 要素に、有効なユーザー名またはメールアドレスが入力されていることを確認します。確認するには、Google Workspace に送信している SAML レスポンスを抽出し、NameID 要素の値を調べます。
  • ID プロバイダで SAML アサーションが暗号化される場合は、この暗号化を無効にしてください。
  • 標準の ASCII 以外の文字が SAML レスポンスに含まれていないことを確認します。AttributeStatement の DisplayName、GivenName、Surname 属性にそうした文字がよく含まれていることがあります。次に例を示します。
    • <Attribute Name="http://schemas.microsoft.com/identity/claims/displayname">
      <AttributeValue>Blüte, Eva</AttributeValue> </Attribute>
    • <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname">
      <AttributeValue>Blüte</AttributeValue> </Attribute>
「ログイン資格の有効期限が切れたため、このサービスにはアクセスできません。ログインしてから、もう一度やり直してください。」

セキュリティ上の理由から、SSO ログインフローは所定の時間内に完了する必要があります。所定の時間内に完了しない場合、認証に失敗します。ID プロバイダの時刻が合っていない場合、ログイン試行のほとんど(またはすべて)が所定時間を超過するため、認証に失敗して上記のエラー メッセージが表示されます。

  • ID プロバイダのサーバーの時刻をご確認ください。通常このエラーは、ID プロバイダの時刻が合っていないために、SAML レスポンスに不正確なタイムスタンプが追加されることが原因です。
  • ID プロバイダのサーバーの時刻を信頼できるインターネット時刻サーバーと再同期します。この問題が本番環境で突然発生した場合は、前回、時刻の同期に失敗し、サーバーの時刻が不正確になったことが原因であることがほとんどです。この問題は、(可能な限り信頼性の高い時刻サーバーと)時刻を繰り返し同期させることで迅速に解決できます。
  • この問題は、前回のログイン試行の SAML を再送信している場合にも発生することがあります。ログイン試行時に取得した HTTP ヘッダーログから取得した SAML リクエストと SAML レスポンスを調べると、この問題を詳しく調査してデバッグするのに役立ちます。
「ログイン資格情報を確認できないため、このサービスにはアクセスできません。ログインしてから、もう一度やり直してください。」

セキュリティ上の理由から、SSO ログインフローは所定の時間内に完了する必要があります。所定の時間内に完了しない場合、認証に失敗します。ID プロバイダの時刻が合っていない場合、ログイン試行のほとんど(またはすべて)が所定時間を超過するため、認証に失敗して上記のエラー メッセージが表示されます。

  • ID プロバイダのサーバーの時刻をご確認ください。通常このエラーは、ID プロバイダの時刻が合っていないために、SAML レスポンスに不正確なタイムスタンプが追加されることが原因です。
  • ID プロバイダのサーバーの時刻を信頼できるインターネット時刻サーバーと再同期します。この問題が本番環境で突然発生した場合は、前回、時刻の同期に失敗し、サーバーの時刻が不正確になったことが原因であることがほとんどです。この問題は、(可能な限り信頼性の高い時刻サーバーと)時刻を繰り返し同期させることで迅速に解決できます。
この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。

さらにサポートが必要な場合

問題を迅速に解決できるよう、ログインして追加のサポート オプションをご利用ください。