問題タブ [xml-dsig]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - xs:integer 型として多数の検証に失敗する
次の XML を検証しようとすると、次のようになります。
xmldsig-core-schema.xsd
スキーマ (インターネットで簡単に見つけることができます) に対して、次の検証エラーが発生します。
ただし、インターネットで見つけた多くの投稿により、 xs:integer タイプは無制限の文字数をサポートする必要があると思いました。それで、私の検証は間違った動作をしていますか? 私は現在、2 つの異なる検証手法を試しました。1 つ目は .NET System.Xml ライブラリ (XmlReader)、2 つ目は Notepad++ 用の XML プラグインです。どちらも同じメッセージで失敗します。どちらも間違っていますか?または、実際には xs:integer 値が取り得るサイズに制限がありますか?
wcf - ユーザー名セキュリティを備えた WCF サービスは、追加の ws-security ヘッダーを含むメッセージを受け入れる必要があります。出来ますか?
従来のユーザー名とパスワードのメッセージ セキュリティを備えた wcf サービスがあります。トランスポート レベルでは、このサービスには https があります
典型的なバインディング
しかし。ここで、この交換にクライアント署名を追加する必要があります。この署名には標準の wsse ヘッダーを使用することにしました。例:
しかし、WCF は複数の wsse ヘッダーを処理したくありません。「メッセージのセキュリティを検証中にエラーが発生しました」と表示されます。追加情報なしで、自分のコードの前にあります。
サーバー側で署名を取得し、ユーザー名の検証が機能するようにすることはできますか?
cxf - CXF WS-Security - X509IssuerSerial 検証が失敗する
CXF WS-Security と署名検証の作業中に問題が発生しました。WSS4JInInterceptor
要素の署名を検証するためにサーバー側で使用しますBody
。
-キー識別子タイプとしてBinarySecurityToken
( ) を使用すると、すべて正常に動作します。
- ( ) をキー識別子として使用すると、サーバー側での署名検証に失敗します。
これはサーバー側の設定です:DirectReference
X509IssuerSerial
IssuerSerial
この SOAPHeader で SOAPEnvelope を (クライアント側から) 送信すると:
SOAPFault を取得します。
デバッグ ログ出力では、あまり情報が得られませんでした。しかし、デバッグ中に、org.apache.wss4j.dom.processor.SignatureProcessor
この時点で失敗することがわかりました。
wss4j-ws-security-dom-2.1.0 で例外をスローするのは 197 行目です。これは、証明書と publicKey が null であることを意味します。これにより、最初から十分に考えていなかったという結論に至りました。署名を検証できる証明書がないことに気づきませんでした。また、私の結論は、X509IssuerSerial の場合、受信側 (この場合はサーバー) 側に証明書がある場合にのみ署名を検証できるということです。
誰かがより良い説明をしていますか?
c# - XmlDsigExcC14NTransform および InclusiveNamespaces を使用した XML 署名の検証に関する問題
署名を検証する必要がある XML ドキュメントがあります。SignedInfo 要素には、アルゴリズム「http://www.w3.org/2001/10/xml-exc-c14n#」を指定する要素 CanonicalizationMethod があり、次のように PrefixList 属性が設定された子要素 InclusiveNamespaces もあります。
次のコードを使用して、C14Transform オブジェクトを作成します。
属性"soapenv"
の由来はどこにありますか。PrefixList
上記の XML を (空白を無視して) 正規化すると、次のようになります ( xmlns:soapenv="..."
2 行目の部分に注意してください)。
私が抱えている問題はxmlns:soapenv="..."
、正規化時にその部分が含まれず、署名の検証が失敗することです。
プログラムで挿入することでこれを回避できますが、PrefixList コンテンツにはさまざまなバリエーションがあるため、これは面倒です。