Web サービスの認証、許可、およびセキュア・トランスポートのトラブルシューティングのヒント
Web サービスは、Web Services for Java™ Platform, Enterprise Edition (Java EE) 仕様に基づいて、開発および実装されます。Web サービスを保護する場合、 認証および許可の考慮事項についてのトラブルシューティングがいくつかあります。
これらの Web サービスは、Web Services for Java Platform, Enterprise Edition (Java EE) 仕様に基づいて、開発および実装されます。このトピックでは、Web サービスを保護する場合に考慮すべき、認証、許可、およびトランスポートの問題のトラブルシューティングについて説明します。
HTTPS トランスポート・プロトコルを使用したリモート WSDL の指定
ご使用の Java API for XML-Based Web Services (JAX-WS) クライアント・アプリケーションで、HTTPS セキュア通信を必要とする WSDL ロケーションのリモート・アドレスを指定する場合、SSL が構成されていないと、例外が発生します。 HTTPS トランスポート・プロトコルを使用して WSDL URL を指定する場合は、クライアント・インスタンスを作成する前に SSL 構成を完了する必要があります。 SSL を構成するには、com.ibm.SSL.ConfigURL システム・プロパティーを SSL 構成の名前として設定します。
@WebServiceClient(name = "SampleService", targetNamespace = "http://jaxws.sample.websphere.ibm.com/",
wsdlLocation = "https://localhost:9443/Sample/SampleServicePort?WSDL")
public class SampleService
extends Service
{
private final static URL SAMPLESERVICE_WSDL_LOCATION;
static {
URL url = null;
try {
url = new URL("https://localhost:9080/Sample/SampleService?WSDL");
} catch (MalformedURLException e) {
e.printStackTrace();
}
SAMPLESERVICE_WSDL_LOCATION = url;
}
...
}
このシステム・プロパティーの設定について詳しくは、ssl.client.props クライアント構成の資料の『クライアントの SSL 構成のセットアップ』を参照してください。
認証の要求または許可の失敗の表示
スレッド・スイッチが発生すると、認証の要求または許可の失敗が起こることがあります。 例えば、アプリケーションが新規スレッドを作成するか、サーブレットへのロー・ソケット接続が開始されることがあります。 スレッド・スイッチは Java EE 仕様では推奨されていません。これは、セキュリティー・コンテキスト情報が スレッド局在に保管されるためです。スレッド・スイッチが発生すると、認証済み ID はスレッド局在から新規スレッドに渡されません。 結果として、WebSphere® Application Server はその ID を非認証と認識します。新規スレッドを作成する必要がある場合は、 セキュリティー・コンテキストを新規スレッドに伝搬しなければなりません。ただし、このプロセスは、WebSphere Application Server ではサポートされていません。
Web Services Security が有効になっているアプリケーションが始動しない
[6/19/03 11:13:02:976 EDT] 421fdaa2 KeyStoreKeyLo E WSEC5156E: An exception
while retrieving the key from KeyStore object:
java.security.UnrecoverableKeyException: Given final block not properly padded
Web Services Security が使用可能になっているアプリケーションが、WebSphere Application Server バージョン 6.0.x とバージョン 5.0.2 間で相互運用できない
Web Services Security が使用可能になっているアプリケーションが、WebSphere Application Server バージョン 6.0.x とバージョン 5.0.2 間で相互運用できません。 アプリケーションが相互運用しようとすると、「ダイジェストの不一致」エラーが表示されます。 XML デジタル署名の正規化アルゴリズムにエラーがありますが、 バージョン 5.1 で修正されています。Web Services Security を、 WebSphere Application Server バージョン 6 とバージョン 5.0.2 間で相互運用するには、 バージョン 5.0.2 アプリケーション・サーバーを更新する必要があります。 バージョン 5.0.2 サーバーを更新するには、WebSphere Application Server サポート Web サイトにアクセスして、WebSphere Application Server バージョン 5.0.2 用の最新のフィックスパックをダウンロードしてください。