私はこのIBM Developer Works SAML articleを読んでいます。ここでは、sha1とsha256の2つの異なるシグネチャ/ダイジェストアルゴリズムを見ることができます。私は両方がリストされ、どのメソッドによって署名されているのか不思議です。この記事では、「[IdP]は、アサーション要素の内容にハッシュアルゴリズムを適用します。それはsha256と思われますが、なぜDigestMethod sha1について言及していますか?両方のメソッドが同じコンテンツをハッシュしている場合、sha1がDigestMethodの場合、サービスプロバイダ(SP)はsha256を使用して署名を検証することをどのように知るでしょうか?SAMLトークン:なぜ複数のハッシュ/ダイジェストアルゴリズムを使用するのですか?sha256とsha1?
このStackOverflow postは正しい説明ですか?
... DigestMethodアルゴリズム要素は、親参照要素を参照します。複数のReference要素に異なるDigestMethodアルゴリズムを持たせることができます。また、すべての参照をハッシュして署名するSignatureMethodアルゴリズムを変更することもできます。
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
ID="Assertion1487321564650" IssueInstant="2017-02-17T08:52:44.650Z"
Version="2.0">
<saml2:Issuer>samlsso.sample.net</saml2:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<ds:Reference URI="#Assertion1487321564650">
<ds:Transforms>
<ds:Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue>nKYxEAMG1LY4H+LqR22KJ/vqyb8=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
m5V44OFKU1PMdibileobvVVA8NVZMKRmKAauOin2f+Kr1WQ [...] Z/5JcU/qw==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIDRzCCAi+gAwIBAgIEKa/crTANBgkq