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. Java SE JDK のインストールディレクトリをポイントするように、%JAVA_HOME% 環境変数を設定します。
    例: /usr/jdk/jdk6.0/

課題

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

チェックが必要な項目: 

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

  1. Solaris 10 マシンで Key Distribution Center (KDC) を設定し、Kerberos サーバーを開始します。
  2. クライアントマシンで Kerberos 構成を設定します。
  3. JDK 6.0 が使用可能であることを確認します。
    • JDK 6.0 のインストールディレクトリをポイントするように、JAVA_HOME 環境変数を設定します。
    • パス変数に %JAVA_HOME%\bin (Windows) または $JAVA_HOME/bin (Solaris/Linux) を記述します。
    • 次のコマンドを入力して、JDK バージョン 1.6.0 が使用可能であることを確認します。
      % java -version

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

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

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

第 II 部:  Java SE 1.5 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 部:  より強力な暗号化アルゴリズム (Java SE 6.0) を使用したセキュアな通信

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

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

  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 プリンシパルを設定する方法について次のドキュメントを参照してください。

  1. Administering Kerberos Principals
  2. System Administration Guide: Security Services

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

  1. Windows Server 2003 Active Directory サーバーの作成方法
  2. Microsoft Kerberos
  3. Interoperability with Microsoft Windows 2000 Active Directory and Kerberos Services

この課題では、正しい 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, 2013, Oracle and/or its affiliates. All rights reserved.