web-dev-qa-db-ja.com

Webサービス認証-ベストプラクティス?

認証にSOAPヘッダー(プレーンクライアント資格情報を含む)に依存している本番環境のWebサービスはSOAPです。WSは、。を使用する異種環境で使用されます。 NET/Java/PHP/Python/C++クライアントは、Webアプリまたはデスクトップアプリの両方です。

これらのWSのv2を検討しており、WSのベストプラクティス SOAP認証?(適度に安全でありながら、処理が簡単)と見なされるものは何か疑問に思っています。幅広いプラットフォーム)。

21

さまざまなプラットフォームでこれを処理する最も簡単な方法は、トランスポート層にHTTP基本認証とHTTPSを使用することです。 WS-Securityは、ニーズが単純なユーザー名/パスワードを超えている場合に適していますが、サポートはプラットフォーム間でかなり異なります。 HTTP認証は、すべての適切なSOAP実装でサポートされています。

15
Dave Dunkin

すべてを自分でロールする必要があり、HTTPSを使用できない場合は、WS-SecurityのハッシュベースのUsernameToken部分をお勧めします。ライブラリにハッシュ関数がある限り、実装は非常に安全で、かなり簡単です。

Webサービスを実行している場合、認証にHTTPを使用することはありません。

WS-Securityは全体として大きすぎます。

4
David Norman

私が過去にこれに取り組んだ方法は、標準のWS- *機能を使用することです。

認証機能を使用する代わりに、メッセージヘッダーの整合性機能をオンに設定します。これには、ダイアログの両側が公開鍵と秘密鍵のペアにアクセスでき、ヘッダーのユーザー名フィールドの改ざんを検出する必要があります。したがって、メッセージを送信してユーザーIDを設定した人は誰でも、秘密鍵にアクセスできることを確認できます。

これにより、キーが適切に管理されている場合、妥当なレベルの整合性が提供されます。

2
James Anderson