Java SE認証、セキュアな通信、およびシングル・サインオンでの高度なセキュリティ・プログラミング

Java SEでは、セキュアなJavaアプリケーションやサービスを開発するための豊富なAPIと機能を提供しています。ここにリストされている課題セッションは、Java SE GSS APIを使用してユーザーを認証するアプリケーションを構築したり、他のアプリケーションやサービスとの通信をセキュアに行ったりする場合に役立ちます。また、Kerberos環境でシングル・サインオンを実現するためにアプリケーションを構成する場合にも役立ちます。さらに、Kerberos環境でより強力な暗号化アルゴリズムを使用する方法、およびSPNEGOなどのJava GSSメカニズムを使用して、アソシエーションをセキュリティ保護する方法についても学習します。

開発環境の設定

次にリストされているソフトウェアのダウンロード、インストール、および構成を行なってください。

  1. jgss-sample.zip内の課題をダウンロードして解凍します。
  2. Solaris 10マシンをインストールして設定します。これは、課題7で必要となります。
  3. 課題で使用するアカウントを使用してSolaris 10マシンでKerberosサーバーを構成します。付録Aを参照してください。
  4. JDKのインストール・ディレクトリをポイントするように、%JAVA_HOME%環境変数を設定します。

課題

このセッションには6つのレッスンが含まれています。各パートには、1つ以上のコーディング課題が含まれています。

  1. Java認証・承認サービス(JAAS)を使用したセキュアな認証
  2. Java SEでの3つの異なるセキュアな通信テクノロジを使用したセキュアな通信
  3. Kerberos環境でのシングル・サインオン用のセキュアなアプリケーションの配備
  4. より強力な暗号化アルゴリズムを使用したセキュアな通信
  5. SPNEGO Java GSSメカニズムを使用したセキュアな認証
  6. HTTP/SPNEGO認証

チェックする項目

最初の課題に進む前に、次の構成設定を確認しておく必要があります。

  1. Solaris 10マシンでKey Distribution Center (KDC)を設定し、Kerberosサーバーを開始します。
  2. クライアント・マシンでKerberos構成を設定します。
  3. JDK環境の設定:
    • JDK のインストール・ディレクトリをポイントするように、JAVA_HOME環境変数を設定します。
    • PATH環境変数に%JAVA_HOME%\bin (Windows)または$JAVA_HOME/bin (Solaris/Linux)を記述します。

リソース

Java SE API仕様

これらの課題は順番どおりに実行してください。

第I部: Java認証・承認サービス(JAAS)を使用したセキュアな認証:

  1. JAAS APIの使用
  2. Kerberos認証用のJAASの構成

第II部: Java SE Security APIを使用したセキュアな通信

  1. Java Generic Security Services (GSS) APIの使用
  2. Java Simple Authentication and Security Layer (SASL) APIの使用
  3. KerberosでのJava Secure Socket Extension (JSSE)の使用

第III部: Kerberos環境でのシングル・サインオンの配備

  1. シングル・サインオンの配備

第IV部: より強力な暗号化アルゴリズムを使用したセキュアな通信

  1. より強力なKerberos暗号化アルゴリズムを使用したセキュアな通信の構成

第V部: SPNEGO Java GSSメカニズムを使用したセキュアな認証

  1. SPNEGOなどのほかのGSSメカニズムとJava Generic Security Services (GSS) APIの使用

第VI部: HTTP/SPNEGO認証

  1. HTTP/SPNEGO認証の使用

付録A: Kerberosアカウントの設定

KerberosアカウントはKey Distribution Center (KDC)に設定します。Kerberosデータベースの各エントリにはKerberosプリンシパルが含まれています。サーバーを実行するマシンのホスト・ベースのプリンシパル(「host/j1hol-001」など)、およびサーバーにアクセスするためのクライアント・プリンシパル(「test」など)を作成する必要があります。

Solarisの場合は、Kerberosプリンシパルを設定する方法について次のドキュメントを参照してください。

Windowsの場合は、Microsoftのドキュメントを参照してください。次はその一例です。

この課題では、正しいKerberosサーバーを使用するためにオペレーティング・システムが構成されていることを前提としています。通常、この構成を行うには管理者特権が必要です。オペレーティング・システムを構成できない場合は、javaコマンドを-Djava.security.krb5.confオプションとともに使用することによって、Kerberos構成ファイルを使用できます。次の例は、課題のコマンドの1つを呼び出してkrb5.conf構成ファイルを使用する方法を示しています。

% java -Djava.security.auth.login.config=jaas-krb5.conf\
  -Djava.security.krb5.conf=krb5.conf Jaas client

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.