WebSphere Application Server - Express, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

サーバー・アプリケーション内の JAAS サブジェクトからトークンを取得する Web サービス・アプリケーションの開発

サーバー・アプリケーションでは、アプリケーションは要求コ ンシューマーとして機能し、応答ジェネレーターは Java 2 Platform, Enterprise Edition (J2EE) コンテナーでデプロイされ、 実行されます。 Web サービス・セキュリティーのコンシューマー・コンポーネントは、現行のスレッドの Java Authentication and Authorization Service (JAAS) サブジェクトで受け取るセキュリティー・トークンを保管します。 コンテナーでローカル・スレッドとして保守される JAAS サブジェクトからセキュリティー・トークンを 検索することができます。

このタスクについて

WebSphere Application Server バージョン 6 以降では、セキュリティー・ハンドラーは セキュリティー・トークンの伝搬を担います。これらのセキュリティー・トークンは、SOAP セキュリティー・ヘッダーに組み込まれ、 ダウンストリーム・サーバーに渡されます。 セキュリティー・トークンは com.ibm.wsspi.wssecurity.auth.token.Token インターフェースのインプリメンテーション・クラスでカプセル化されます。セキュリティー・トークン・ データは、サーバー・アプリケーションまたはクライアント・アプリケーションのいずれかから検索することができます。

以下のステップを実行して、サーバー・アプリケーションからセキュリティー・トークン・データを 検索します。

プロシージャー

  1. WSSubject ユーティリティー・クラスを使用して、現行スレッドの JAAS サブジェクトを取得します。 管理コンソールの「グローバル・セキュリティー」パネルで Java 2 セキュリティーを使用可能にする場合、 アプリケーション・コードが javax.security.auth.AuthPermission("wssecurity.getCallerAsSubject") 許可を付与されていない場合は、 JAAS サブジェクトへのアクセスは拒否されます。次のコード・サンプルで、JAAS サブジェクトの取得方法を示します。
    javax.security.auth.Subject subj;
    try {
    subj = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();
    } catch (com.ibm.websphere.security.WSSecurityException e) {
      …
    }
  2. サブジェクトから専用クレデンシャル・セットを取得します。 詳しくは、インフォメーション・センターを介して、 アプリケーション・プログラミング・インターフェース (API) com.ibm.websphere.security.auth.WSSubject クラスを参照してください。 インフォメーション・センター内のこの情報にアクセスするには、「参照」>「Developer」>「API Documentation」>「Application Programming Interfaces」とクリックします。「Application Programming Interfaces」の項目で、 「com.ibm.websphere.security.auth」>「WSSubject」とクリックします。
    重要: Java 2 セキュリティーが使用可能である場合、AccessController クラスを使用して、 J2EE コンテナーでセキュリティー・オブジェクトを操作することによって発生するセキュリティー違反を 回避する必要がある場合があります。
    次のコード・サンプルで、 AccessController クラスを設定し、専用クレデンシャルを取得する方法を示します。
    Set s = (Set) AccessController.doPrivileged(
    new PrivilegedAction() {
    public Object run() {
    return subj.getPrivateCredentials();
    }
       });
    
  3. 専用クレデンシャルでターゲットとするトークン・クラスを検索します。 java.util.Iterator インターフェースを使用して、ターゲットとするトークン・クラスを検索することができます。 次の例は、セキュリティー・ヘッダーで、特定のトークン ID 値を持つユーザー名トークンを検索する方法について示しています。 他のメソッド呼び出しを使用して、セキュリティー・トークンを検索することもできます。 詳しくは、 com.ibm.wsspi.wssecurity.auth.token.Token インターフェースまたはカスタム・トークン・クラスの アプリケーション・プログラミング・インターフェース (API) の資料を参照してください。
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    Iterator it = s.iterator();
    while (it.hasNext()) {
      Object obj = it.next();
      if (obj != null &&
    obj instanceOf com.ibm.wsspi.wssecurity.auth.token.UsernameToken) {
        unt =(com.ibm.wsspi.wssecurity.auth.token.UsernameToken) obj;
    if (unt.getId().equals(“…”)) break;
    else continue;
      }
    }
    

結果

これらのステップが完了すると、サーバー・アプリケーションで JAAS サブジェクトからセキュリティー・トークンが検索されます。



関連概念
セキュリティー・トークン
関連タスク
アプリケーション内の JAAS サブジェクトからトークンを取得する Web サービス・クライアントの開発
システム・リソースおよび API の保護 (Java 2 セキュリティー)
Java 2 セキュリティー・ポリシー・ファイルの構成
JAX-RPC を使用したメッセージ・レベルでの Web サービス・アプリケーションの保護
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 11:31:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/twbs_retrievetokensrvr.html