Delphi 7 のHTTPReqResp
コンポーネントを使用して、デジタル署名された SOAP XML ドキュメントを HTTPS Web サービスに送信しています。私は Eldos XML BlackBox を使用しtransformAlgorithms
、CanonicalizationMethod
、signaturemethod
、 などをすべて Web サービスが必要とするものに設定し、技術サポート担当者に確認しました。
XML BlackBox とこのXML Verifier Web サイトを使用して署名を検証しました。
どちらの方法でも、署名が正しいことを確認できます。ただし、XML ドキュメントを 経由HTTPReqResp.execute
で送信すると、返される応答はBadSignature (The signature value is invalid)
.
当初、XML エラー (不正な形式など) が原因で、別のエラー メッセージが返されました。サービスは最初にすべての標準フォーマット チェックを実行し、次に署名の検証を試みるようです。応答が返ってきたのでBadSignature
、残りの XML は正しいはずです。
ここで2つの質問があると思います。
HTTPReqResp コンポーネントは XML を変更しますか。
Web サービスが XML を変更する可能性はありますか。
サイトは Access Manager WebSEAL を使用しています。