3

従来の .NET ASP アプリケーションを拡張しています (アップグレードできません)。これには、CXF (java) から呼び出される SOAP Web サービスがあります。.NET 側に WSE3 拡張機能をインストールして構成したので、SOAP UI を使用して ASP の外部から単純なサービスを呼び出すことができるようになりました。すべて正常に動作しているようです - ユーザー名と平文のパスワードで認証している特定のユーザーのアクセスをブロックできます。ただし、soap-ui で WSS-Password-Type を「PasswordDigest」に設定すると、次のメッセージが表示されます。

セキュリティ トークンを認証または承認できませんでした ---> WSE562: 着信ユーザー名トークンにパスワード ハッシュが含まれています。組み込みの UsernameTokenManager は、このタイプの UsernameToken をサポートしていません。UsernameTokenManager.AuthenticateToken メソッドの詳細については、ドキュメントを参照してください。

このサービスは ESB によって外部から呼び出されるため、認証方式を選択する選択肢はあまりありません。「PasswordDigest」をサポートするサービスが必要です。それを実装する方法はありますか?

カスタム UsernameTokenManager を実装できることはわかっていますが、ハッシュ値のみを取得しながらユーザーパスワードを返す必要があります。それは私を助けません。

参考までに、私が行っているリクエストを以下に示します。

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
   <soap:Header>
      <wsse:Security soap:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
         <wsse:UsernameToken wsu:Id="UsernameToken-22">
            <wsse:Username>user</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">xHxNY51954nB9l3ulEp8fRX8HdE=</wsse:Password>
            <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">TEU+Z/yfS0oDTOxMZG+AXA==</wsse:Nonce>
            <wsu:Created>2012-07-02T11:39:17.695Z</wsu:Created>
         </wsse:UsernameToken>
      </wsse:Security>
   </soap:Header>
   <soap:Body>
      <tem:HelloWorld/>
   </soap:Body>
</soap:Envelope>
4

0 に答える 0