Wie Sie festlegen, Unterschrift DigestMethod algorithm mit OpenSAML

Können wir den Algorithmus der Signatur wie folgt:

signature.setSignatureAlgorithm("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");

Ich versuche einen Weg zu finden, um die DigestMethod algorithm so. Ist es möglich über OpenSAML-APIs? Jede Eingabe wird sehr geschätzt.

UPDATE: Hinzufügen eines Beispiel-Signatur für die Klarheit. Was diese Frage betrifft, ist die nach der DigestMethod-element in es.

<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/2000/09/xmldsig#rsa-sha1" />
      <ds:Reference URI="#_884D49DAD03AD60748547F8322C11AA0">
        <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>...</ds:DigestValue>
      </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>...</ds:SignatureValue>
    <ds:KeyInfo>
      <ds:KeyName>...</ds:KeyName>
    </ds:KeyInfo>
  </ds:Signature>

UPDATE: Vladimír Antwort funktioniert. Jedoch, die Lösung scheint zu sein, thread unsicher? In meiner Anwendung, die wir bootstrap opensaml nur einmal und dann von verschiedenen threads mit unterschiedlichen Konfigurationen - wie verschiedene Signatur-algorithmen. Gibt es eine Möglichkeit, dies in einem thread-sichere Weise?

UPDATE:
Shibboleth IdP verwendet opensaml, und nach Shibboleth IdP-Wiki dies ist derzeit eine Globale Konfiguration. Also, unabhängig von IdP oder SP-Seite, diese Einschränkung sollte vorhanden sein, wenn opensaml ist zum verarbeiten von SAML-Nachrichten. Folgende ist ein Auszug aus diesem Artikel:

Änderung der IdP Signatur/digest-Algorithmus und die zugehörigen Einstellungen ist
derzeit ist eine Globale operation. Der Algorithmus geändert werden, für alle
relying parties es interagiert mit. Diese änderung nicht vornehmen, bis Sie
überprüft haben, dass alle Ihre vertrauende Parteien behandeln können Antworten mit
der neue Algorithmus(s) Sie wählen

UPDATE: Endlich einen Weg gefunden, dieses zu erhalten getan. Hinzugefügt haben Sie als Antwort.

  • Nicht, dass das, was die sha256 am Ende ist?
  • Soweit ich das verstehe Signatur-Algorithmus und DigestMethod algorithm (die in der Reference-element) sind zwei verschiedene Dinge.
InformationsquelleAutor drox | 2014-07-23
Schreibe einen Kommentar