SAML パーサー

SAML(Security Assertion Markup Language)は、IDプロバイダー(IdP)とサービスプロバイダー(SP)間で認証・認可データを交換するためのXMLベースの標準です。このツールはURLからSAMLメッセージをデコードし、Base64とDEFLATEエンコーディングを処理し、検査のためにXMLを整形出力します。

仕様

よくあるユースケース

  • エンタープライズシングルサインオン(SSO)認証フローのデバッグ
  • IDプロバイダー(Okta、Azure AD、ADFS)からのSAMLアサーションの検査
  • サービス間のSAML統合のトラブルシューティング
  • アサーション属性とNameID値の検証
  • AuthnContextとセッションパラメータの分析
  • セキュリティレビューのためのSAML設定の監査

機能

  • SAML AuthnRequestメッセージの解析(SPからIdP)
  • SAML ResponseとAssertionのデコード(IdPからSP)
  • URLクエリパラメータからSAMLRequestとSAMLResponseを抽出
  • Base64エンコーディングとDEFLATE圧縮の処理(HTTP-Redirectバインディング)
  • シンタックスハイライト付きのXML構造の整形出力
  • メッセージ概要の表示(タイプ、ID、IssueInstant、Destination、Status)
  • Issuer、Subject/NameID、Conditionsの抽出
  • AttributeStatementからアサーション属性を表示
  • 署名存在インジケーター

SAML Response URL

試してみる →

クエリ文字列にBase64エンコードされたSAML Responseを含むURL。

https://sp.example.com/acs?SAMLResponse=PHNhbWxwOlJlc3BvbnNlLz4=

ヒント

  • SAMLは2つの主要なバインディングを使用します:HTTP-Redirect(deflate+base64によるGET)とHTTP-POST(base64によるPOST)。
  • RelayStateパラメータはSSOフロー全体を通じて元のリクエストURLを保持します。
  • SAMLアサーションは署名、暗号化、またはその両方が可能です。このツールはデコードされた内容を表示します。
  • NotBeforeとNotOnOrAfter条件を確認してアサーションの時間的妥当性を検証してください。

解説 SAML パーサー

SAML(Security Assertion Markup Language)は、IDプロバイダー(IdP)とサービスプロバイダー(SP)間で認証・認可データを交換するためのXMLベースのオープン標準です。2005年にOASISによって公開されたSAML 2.0は、エンタープライズシングルサインオン(SSO)の主要プロトコルとして、従業員が一度の認証で複数のアプリケーションにアクセスできるようにします。

SAML SSOフローは次のように動作します:ユーザーがサービスプロバイダーにアクセスしようとすると、SPがAuthnRequestを生成してブラウザをIdPにリダイレクトし、IdPがユーザーを認証してAssertionを含むSAML Responseを作成し、ブラウザがこのResponseをPOSTでSPに送り返します。アサーションにはユーザーのID(NameID)、属性(メール、グループ、ロール)、条件(有効期間、オーディエンス制限)が含まれます。

SAMLメッセージはバインディングを使用して転送されます。HTTP-RedirectバインディングはDEFLATE圧縮とBase64エンコーディングを使用してXMLをURLクエリパラメータにエンコードします。HTTP-POSTバインディングはBase64のみを使用し、自動送信フォームを介して送信します。SAMLのデバッグには、これらのレイヤーをデコードして基盤となるXMLを検査する必要があります。

SAMLアサーションは署名(IdPから来たことを証明するため)、暗号化(中間者が内容を読むことを防ぐため)、またはその両方が可能です。SSOの問題をトラブルシューティングする際の最初のステップは、常にSAML Responseをデコードして、アサーションの条件、オーディエンス、タイムスタンプ、属性値を確認することです。

SAMLとOAuth 2.0/OpenID Connectは異なる目的を果たします。SAMLはブラウザリダイレクトを介して転送されるXMLベースのアサーションを使用するエンタープライズSSO向けに設計されており、ADFSやOktaのようなIDプロバイダーを持つエンタープライズ環境で最も一般的です。OAuth 2.0はJSONトークンを使用するAPI アクセスのための認可フレームワークであり、OpenID ConnectはJWTを使用してOAuthの上に認証レイヤーを追加します。OIDCはモダンなWebおよびモバイルアプリケーションでより一般的であり、SAMLは企業IT環境で引き続き主流です。

SAMLメッセージは転送のためにエンコードされているため、理解しづらい文字列として表示されることがよくあります。HTTP-POSTバインディングでは、XMLはBase64エンコードされます。HTTP-Redirectバインディングでは、XMLはまずDEFLATE圧縮され、次にBase64エンコードされ、さらにURLエンコードされます。元のXMLを読むには、これらのレイヤーを正しい順序で元に戻す必要があります。このツールは使用されたバインディングに関係なく、すべてのデコード手順を自動的に処理します。

SAMLエラーのトラブルシューティングでは、いくつかの一般的な原因を確認してください:IdPとSP間のクロックスキューによりアサーションのタイムスタンプが検証に失敗する可能性があります。Audience要素はSPで設定されたエンティティIDと正確に一致する必要があります。アサーションがNotOnOrAfter時間を過ぎている場合があります。Destination属性はSPのAssertion Consumer Service(ACS)URLと一致する必要があります。IdPの署名証明書が最近ローテーションされた場合、SPが最新の証明書を持っていない可能性があります。RelayStateパラメータもSSOフローで重要な役割を果たします。認証リダイレクトを通じてユーザーが最初にリクエストしたURLを保持し、認証成功後にSPがユーザーを最初にアクセスしようとしたページにリダイレクトできるようにします。

← すべてのツールに戻る