> <samlp:LogoutRequest ID="_36167d94-d868-4c04-aee3-8bbd4ed91317"
> Version="2.0" IssueInstant="2017-01-05T16:21:55.704Z"
> Destination="https://werain.me/"
> xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"><Issuer
> xmlns="urn:oasis:names:tc:SAML:2.0:assertion">urn:federation:MicrosoftOnline</Issuer><NameID
> Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
> xmlns="urn:oasis:names:tc:SAML:2.0:assertion">4948f6ce-4e3b-4538-b284-1461f9379b48</NameID><samlp:SessionIndex>_eafbb730-b590-0134-a918-00d202739c81</samlp:SessionIndex></samlp:LogoutRequest>
私の場合、ログアウトリクエストは次のようになります。ログアウト リクエストを確認する必要がある場合、次のような文字列を作成する必要がありますか (つまり、生の文字列値)
SAMLRequest=<samlp:LogoutRequest ID="_36167d94-d868-4c04-aee3-8bbd4ed91317" ... </samlp:LogoutRequest>&SigAlg=http://www.w3.org/2000/09/xmldsig#rsa-sha1
次に、上記の文字列の署名を確認するか、値を指定する必要encode
がSAMLRequest
ありますSigAlg
すなわち
SAMLRequest=Base64 encode value or raw logout request&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1
この混乱の理由は、SAML 仕様がhereから抽出されたと述べているためです
SAML プロトコル メッセージ (base64 でエンコードされたバージョンではない) を構成する未加工のエンコードされていない XML の連結で構成される文字列、
ただし、OneSAML Base64 エンコード バージョンのリクエスト (ログアウト リクエスト) で署名を作成します。こちらをご覧ください
署名を検証するために使用する必要がある正しい実装が何であるかわかりません。
注: HTTP リダイレクト バインディング。