1. ホーム
  2. xml

[解決済み] SOAPセキュリティヘッダとSOAPヘッダの違いについて

2022-02-16 09:58:08

質問事項

SOAPセキュリティヘッダー(WSSE)と一般的なSOAPヘッダーの違いは何ですか?認証情報を送信するために、シンプルなSOAPヘッダだけを使用する場合はどうすればよいですか?

なぜこれを使う必要があるのか

<soapenv:Header>
  <wsse:Security  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-1">
        <wsse:Username>login</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXX</wsse:Password>
     </wsse:UsernameToken>
  </wsse:Security>

また、これを使用してはならない。

<S:Header>
    <Username xmlns="http://ws.enterprise.com/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">
        Username text
    </Username>
</S:Header>

ありがとうございました。

どのように解決するのですか?

どちらも、ユーザー名とパスワードを渡すという機能的な必要性を満たしています。

どちらも同じようにシンプルです。

1つは オープンスタンダード (実際には小さなものが1つ セットで 認証、メッセージの機密性、非否認など、エンドツーエンドのSOAPメッセージのセキュリティニーズに対応した、よく考えられた標準のことです)。もうひとつは、あなたのアプリケーションに特化したもので、独自仕様ですが、あなたが必要とするものすべてかもしれません。

WS-Securityを使用することで考えられるメリット。

  • すでに文書化されている (手間が省ける。使用するドキュメントだけ WS-Security UsernameToken で、クライアントは グーグル 残りは)
  • すでに実装されている (消費者、場合によってはウェブサービス実装のための作業も少なくなります)。多くのライブラリフレームワーク(Java: Apache WSS4J , Apache CXF , JavaScript: Node.js , Python: サッズ )、IBMなどのJavaEEアプリサーバー ウェブスフィア オラクル ウェブロジック レッドハット JBoss AS などのエンタープライズ・プラットフォームがあります。 .NET - はすべて、この特定のオープンスタンダードでウェブサービスを保護するために、多くの場合、設定だけの技法があらかじめ組み込まれています ( WS-Security ユーザー名トークン ).
  • 成長の余地あり。これはほんの一例です 多くの関連規格 . あるクライアントをユーザー名/パスワードで認証し、他のクライアントをデジタル署名で認証したいですか?そこには関連する規格があります。必要なXML構文だけでなく、様々な攻撃ベクトルを考慮したものを発明する必要はないだろう。オープンスタンダードはすでに多くの人の目で吟味されています。

考えられるデメリット

  • 学習曲線 : 既成のものを使うということは、あなた(とあなたのクライアント)がある程度それを理解しなければならないことを意味します。
  • 一部のエッジケースには過剰な対応 . ここで少し引き伸ばします。これはプロトタイプのWebサービスであり、ビジネスやプロダクションで使用する予定はないとします。 1つのウェブサービスと1つのウェブサービスクライアントを構築するのですか?一定期間放置しておきたくない使い捨てのコード?そうです。