Das Projekt, an dem ich arbeite, umfasst einen Unternehmens-SOAP-Endpunkt (Oracle SOA). Dies verwendet SOAP 1.2
Über SoapUI habe ich einen vollständigen Satz von Anforderungen, die ich replizieren muss. Insbesondere die ausgehende Sicherheit:
Muss ein Zeitstempel-Token mit Millisekundengenauigkeit haben
Muss ein Benutzernamen-Token mit einer Nonce haben
Muss eine Signatur haben (BinarySecurityToken unter Verwendung eines einzelnen Zertifikats zum Signieren und ein Signaturelement im Sicherheitsheader für die Benutzername-Token, Zeitstempel und Text – unter Verwendung eines bestimmten Paares aus privatem Schlüssel und Zertifikat.
Muss über eine Verschlüsselung mit dem öffentlichen Schlüssel des Servers verfügen (den ich habe), und der symmetrische Schlüssel muss in einen EncryptedKey verschlüsselt werden. – Insbesondere müssen das Benutzernamen-Token und der Text verschlüsselt werden.
[*]Es gibt eingehende Sicherheit als Nun ja, die Nachricht muss mit dem öffentlichen Schlüssel des Servers entschlüsselt werden.
Das Problem:
Ich weiß nicht, wie ich das in Python reproduzieren soll. Die Testumgebung (die keine Anmeldeinformationen verwendet) funktioniert mit Zeep einwandfrei, daher weiß ich, dass die Struktur meiner Nachricht in Ordnung ist. Zeep unterstützt dies jedoch nicht muss verstanden werden, und ich kann anscheinend nicht herausfinden, wie ich XML-Teile verschlüsseln würde.
Ich habe darüber nachgedacht, Zeep-Egress-Plugins zu schreiben, um die Verschlüsselungsteile zu handhaben, aber es scheint mir, dass dies zu Ärger führen würde.
Suds-Community ist die andere hoch angesehene Option und unterstützt zusätzliche Sicherheitseinstellungen, aber ich glaube nicht, dass es so funktionieren würde erfordert SOAP 1.2, und Suds-Community scheint nur SOAP 1.1 zu unterstützen. Es scheint auch keine BinarySecurityTokens ohne py-wsse zu unterstützen, und py-wsse kann nicht von pip installiert werden.
Der andere Dienst, der dies geschrieben hat und verbraucht, verwendet Apache Axis 2 mit Rampart, aber das hilft mir nicht Policy.xml, aber es scheint keine Möglichkeit zu geben, diese Informationen in Python zu nutzen, außer die XML-Anfrage manuell zu erstellen. Idealerweise muss die Lösung Python verwenden und Mac-freundlich sein (unser Unternehmen verwendet Macs für die Entwicklung).
Das Szenario: [list] [*]Das Projekt, an dem ich arbeite, umfasst einen Unternehmens-SOAP-Endpunkt (Oracle SOA). Dies verwendet SOAP 1.2
[*]Über SoapUI habe ich einen vollständigen Satz von Anforderungen, die ich replizieren muss. Insbesondere die ausgehende Sicherheit:
Muss ein Zeitstempel-Token mit Millisekundengenauigkeit haben
[*]Muss ein Benutzernamen-Token mit einer Nonce haben
[*]Muss eine Signatur haben (BinarySecurityToken unter Verwendung eines einzelnen Zertifikats zum Signieren und ein Signaturelement im Sicherheitsheader für die Benutzername-Token, Zeitstempel und Text – unter Verwendung eines bestimmten Paares aus privatem Schlüssel und Zertifikat.
[*]Muss über eine Verschlüsselung mit dem öffentlichen Schlüssel des Servers verfügen (den ich habe), und der symmetrische Schlüssel muss in einen EncryptedKey verschlüsselt werden. – Insbesondere müssen das Benutzernamen-Token und der Text verschlüsselt werden.
[/list]
[*]Es gibt eingehende Sicherheit als Nun ja, die Nachricht muss mit dem öffentlichen Schlüssel des Servers entschlüsselt werden.
Das Problem: [list] [*]Ich weiß nicht, wie ich das in Python reproduzieren soll. Die Testumgebung (die keine Anmeldeinformationen verwendet) funktioniert mit Zeep einwandfrei, daher weiß ich, dass die Struktur meiner Nachricht in Ordnung ist. Zeep unterstützt dies jedoch nicht muss verstanden werden, und ich kann anscheinend nicht herausfinden, wie ich XML-Teile verschlüsseln würde.
[*]Ich habe darüber nachgedacht, Zeep-Egress-Plugins zu schreiben, um die Verschlüsselungsteile zu handhaben, aber es scheint mir, dass dies zu Ärger führen würde.
[*]Suds-Community ist die andere hoch angesehene Option und unterstützt zusätzliche Sicherheitseinstellungen, aber ich glaube nicht, dass es so funktionieren würde erfordert SOAP 1.2, und Suds-Community scheint nur SOAP 1.1 zu unterstützen. Es scheint auch keine BinarySecurityTokens ohne py-wsse zu unterstützen, und py-wsse kann nicht von pip installiert werden.
[/list] Der andere Dienst, der dies geschrieben hat und verbraucht, verwendet Apache Axis 2 mit Rampart, aber das hilft mir nicht Policy.xml, aber es scheint keine Möglichkeit zu geben, diese Informationen in Python zu nutzen, außer die XML-Anfrage manuell zu erstellen. Idealerweise muss die Lösung Python verwenden und Mac-freundlich sein (unser Unternehmen verwendet Macs für die Entwicklung).
Ich entwickle ein Plugin für die Checkout-Seite eines Drittanbieters, das eine ID mit der API eines anderen Drittanbieters vergleicht. Der Ablauf sieht ungefähr so aus:
Ich wollte die Parameter/Attribute an meine Soap-API übergeben. Bereitstellung eines Beispiels
Wenn ich zum Beispiel die API über Postman aufrufe, übergebe ich „separated= true “ so
JQuery Ajax Call to Soap Web Service löst eine Ausnahme als Zugriff verweigert aus. Siehe Screenshot. Es arbeitet in der SOAP -Benutzeroberfläche, so dass die SOAP -Anfrage korrekt erscheint. Bitte...
Ich habe eine SOAP-Client-Anwendung, die einen Fehler auswirft, der möglicherweise aufgrund des SOAP-Servers TLS 1.2 verwendet hat. ' redigiert ' ist falsch oder weil die Nachricht einen ungültigen...
Ich entwickle einige SAP- und Excel-Automatisierungen für eine Bank mit Python , aber die Netzwerkordner und die VM selbst unterliegen strikten Proxy-Beschränkungen .
Daher kann ich keine virtuellen...