企業システムでSSOを使っていると「シングルサインオンエラー」が発生して困るケースがあります。
本記事では、シングルサインオンエラーの主な原因・SAMLエラーの見方・具体的な解決方法をわかりやすく解説していきます。
SSOのトラブルを解決したい方はぜひ最後までご覧ください。
シングルサインオンエラーとは?主な原因と分類
それではまず、シングルサインオンエラーの主な原因と種類について解説していきます。
シングルサインオン(SSO)エラーとは、IdP(Identity Provider、認証サーバー)とSP(Service Provider、サービス)の間でのSSO認証フローが失敗することで発生するエラーです。
SSOエラーの主な原因は次のとおりです。
| 原因 | 内容 |
|---|---|
| メタデータ設定の誤り | IdP・SP間のメタデータ(エンティティID・証明書)の不一致 |
| 証明書の期限切れ | SAMLアサーションの署名証明書が期限切れ |
| 時刻のずれ(クロックスキュー) | IdPとSP間のシステム時刻の差 |
| ユーザー属性のマッピングエラー | 必須属性(メールアドレス等)が正しくSPに渡されない |
| ブラウザのクッキー・キャッシュの問題 | 古いセッション情報の残留 |
| URLの不一致 | ACS URL・エンティティIDの設定ミス |
エラーメッセージとSAMLレスポンスの内容を確認することが原因特定への近道です。
SAMLエラーの主な種類
SAMLベースのSSOで発生するエラーメッセージの主な種類を見ていきましょう。
「InResponseTo attribute is invalid」:リクエストIDとレスポンスのIDが一致しない(タイムアウト・リプレイ攻撃対策)。
「Response is not valid」:SAML レスポンスの署名検証に失敗(証明書の不一致・期限切れ)。
「User is not authorized」:ユーザーがSP側で認証されていない・プロビジョニングされていない。
「Audience Restriction」:レスポンスのAudience(受信者)とSPのエンティティIDが一致しない。
SAMLトレーサーを使ったデバッグ
ChromeやFirefoxのSAMLトレーサー拡張機能を使うことで、ブラウザで送受信されるSAMLメッセージを確認できます。
Chrome拡張「SAML-tracer」をインストールし、SSO認証を実行してキャプチャされたSAMLリクエスト・レスポンスを確認します。
SAMLトレーサーはSSOエラーの原因特定に最も効果的なデバッグツールです。
シングルサインオンエラーの解決方法
続いては、具体的な解決方法を確認していきます。
メタデータの再確認と更新
IdP(Okta・Azure AD・Google Workspace など)からSPへのメタデータ(XML形式)を最新のものに更新します。
エンティティID・ACS URL(Assertion Consumer Service URL)・署名証明書が正しく設定されているか確認します。
証明書の更新
SAMLアサーションの署名に使う証明書が期限切れになっていないか確認します。
期限切れの場合は新しい証明書を生成し、IdPとSP双方の設定を更新します。
証明書の有効期限を定期的に確認し、期限切れ前に更新する運用管理が重要です。
時刻同期(NTP)の確認
SAMLアサーションには有効期間(NotBefore・NotOnOrAfter)が含まれており、IdPとSPの時刻が大きくずれていると検証が失敗します。
サーバーのNTP(Network Time Protocol)設定を確認し、正確な時刻同期を維持します。
ブラウザのキャッシュ・クッキーのクリア
ユーザー側の問題の場合、ブラウザのキャッシュ・クッキーをクリアすることで解決することがあります。
プライベートブラウジング(シークレットモード)で試みると、クッキーの問題かどうかを切り分けられます。
主要なIdPごとのSSOエラーの対処
続いては、主要なIdPごとの代表的なSSO設定の確認ポイントを確認していきます。
Azure AD(Microsoft Entra ID)でのSSOエラー
Azure ADのサインインログ(「Azure ポータル→Microsoft Entra ID→サインインログ」)でエラーコードと詳細を確認します。
「AADSTS」から始まるエラーコードはMicrosoftの公式ドキュメントで意味を確認できます。
エンタープライズアプリケーションのSAML設定で「返信URL(ACS URL)・識別子(エンティティID)・ユーザー属性とクレーム」を確認します。
OktaでのSSOエラー
OktaのシステムログでSSOエラーの詳細(エラーコード・ユーザー・タイムスタンプ)を確認します。
アプリケーション設定の「Sign On」タブでSAML設定を確認し、必要に応じて「View Setup Instructions」で正しい設定値を確認します。
Google WorkspaceでのSSOエラー
Google Workspace管理コンソールのレポートでSSOエラーを確認できます。
「セキュリティ→認証→サードパーティのSSOプロファイル設定」でSAMLの設定を確認します。
まとめ
本記事では、シングルサインオンエラーの意味・主な原因(メタデータ・証明書・時刻ずれ)・SAMLトレーサーを使ったデバッグ・主要IdPごとの確認ポイントまで詳しく解説しました。
SSOエラーの原因はIdP・SP間の設定不一致・証明書問題・時刻のずれなど多岐にわたるため、SAMLトレーサーとIdPのログを組み合わせて原因を特定することが効率的です。
エラーメッセージを正確に読み取り、メタデータ・証明書・属性マッピングの設定を一つひとつ確認することがSSOエラー解決への近道です。
ぜひ本記事を参考に、SSOエラーのトラブルシューティングに役立ててみてください。