SSL を使用した JAX-RS 2.0 クライアントの保護

Secure Sockets Layer (SSL) トランスポート層セキュリティーを使用することにより、Java™ API for RESTful Web Services (JAX-RS) アプリケーションと、そのアプリケーションを呼び出すクライアントの間の通信を保護することができます。

始める前に

このタスクでは、以下のステップが完了していることを前提としています。
  • アプリケーション・サーバーに対して、またはネットワーク・デプロイメント・マネージャーに統合されたアプリケーション・サーバーに対して、セル・プロファイルを定義済みである。 セル・プロファイルの作成に関する説明を参照し、フェデレーテッド・アプリケーション・サーバー・ノードとデプロイメント・マネージャーを含むセル・プロファイルを作成する方法を学習した。
  • JAX-RS 2.0 アプリケーションをアプリケーション・サーバーにインストール済みである。

このタスクについて

JAX-RS 2.0 クライアント・プログラムは、JAX-RS 2.0 リソースとの間での要求および応答を保護するために SSL を使用するトランスポート・セキュリティーを利用することができます。

トランスポート・レベル・セキュリティーのために SSL チャネルを使用するように JAX-RS 2.0 アプリケーションを構成している場合、JAX-RS 2.0 クライアントは SSL 接続を使用して REST リソースを呼び出すことができます。例えば、ご使用の JAX-RS 2.0 アプリケーションが基本認証を使用するように構成されている場合、ユーザー資格情報をセキュア接続でトランスポートするために SSL を使用します。

このシナリオの例を示すために、セル内にアプリケーション・サーバーが 1 つ存在し、そのサーバー上に JAX-RS 2.0 リソースがデプロイされているとします。 このサーバー上の JAX-RS 2.0 リソースでは SSL を使用する必要があります。 JAX-RS 2.0 クライアントを使用して、SSL を使用する必要のあるこれらのいずれかのセキュア・リソースを呼び出すことができます。 JAX-RS 2.0 クライアントは、HttpURLConnection よりも、また JAX-RS プロバイダーとの統合よりも高水準の API であり、この製品で提供されています。

重要: WebSphere® Application Server 環境で実行されているアプリケーション内から JAX-RS 2.0 リソースを呼び出す場合 (例えば、ダウンストリーム呼び出しを行う場合)、SSL の追加構成は不要です。アプリケーション・サーバーの SSL ランタイムおよび構成が使用されるため、このリソースに対して SSL 接続を構成する必要はありません。

JAX-RS のクライアントとの SSL を構成するには、以下のステップに進みます。

手順

  1. WebSphere Application Server traditional 管理コンソールで SSL プロパティーを構成します。 詳しくは、 Secure Sockets Layer 構成の作成を参照してください。
  2. JAX-RS アプリケーションに対してセキュリティーを有効にし、REST リソースを呼び出す際にトランスポートに SSL チャネルを使用するようにアプリケーションを構成します。

    アプリケーションを開発またはデプロイするときに、web.xml ファイルを編集し、リソースに対して SSL の使用を必須とするセキュリティー制約を追加します。アプリケーションに対する SSL の有効化についての詳細は、Web コンテナー内での JAX-RS アプリケーションの保護に関する情報を参照してください。

    security-constraint エレメント内の以下のエレメントは、アプリケーションに対して SSL を強制するように指定します。
    <user-data-constraint id="UserDataConstraint_1">
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
     </user-data-constraint>
  3. クライアント・アプリケーションを開発する際にクライアント SSL を 使用可能にするには、クライアント・アプリケーション・コードにクライアント・プロパティーを追加します。

    クライアント・プロパティーのキーを com.ibm.ws.jaxrs.client.ssl.config に、その値を true に設定します。参考として以下のコード・スニペットを参照してください。

    ClientBuilder cb = ClientBuilder.newBuilder();
    cb.property("com.ibm.ws.jaxrs.client.ssl.config", "NodeDefaultSSLSettings");
    ヒント: このプロパティー値は、設定したサーバー SSL 別名と同じものにします。詳細については、「アプリケーション・サーバー」->「サーバー n」(ここで、n は、アプリケーション・サーバーに割り当てた番号) ->「Web コンテナー・トランスポート・チェーン」->「WCInboundDefaultSecure」->「SSL インバウンド・チャネル (SSL_2)」にアクセスして、「SSL 構成」フィールドを確認します。
  4. 管理コンソールを使用して、WebSphere Application Server traditional にご使用のクライアント・アプリケーションをデプロイします。
  5. WebSphere Application Server traditional 管理コンソールでクライアント・アプリケーションを開始します。 アプリケーションを開始するには、「アプリケーション」->「アプリケーション・タイプ」->「WebSphere エンタープライズ・アプリケーション」->「開始」を選択します。

タスクの結果

クライアントとターゲット・サーバー間に SSL を使用するセキュア接続を定義し、JAX-RS アプリケーションとクライアント間の通信における整合性および機密性が実現しました。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_impl_securejaxrs2
ファイル名:twbs_jaxrs_impl_securejaxrs2.0_clientssl.html