カスタム・インターセプターを使用した WAS セキュリティーとの統合

このセクションでは、SSO インターセプターを作成して、WebSphere Application Server (WAS) セキュリティーと統合する方法を説明します。

始める前に

提供されるフォーム SSO インターセプターは、フォーム・ベースのログイン・ページを使用して、ユーザーを認証します。以下に、カスタム SSO インターセプターの作成方法の例を示します。カスタム・インターセプターは、カスタム・インターセプター・クラスを使用します。

このインターセプター・クラスは、WAS にアクセスして、認証済みのユーザー資格情報を取得します。 これらの資格情報は、取得後にキャッシュされます。 その後のログインには、キャッシュされた資格情報が使用されます。

前提条件: WAS では、ユーザーは LDAP ユーザー資格情報を使用して設定される必要があります。
注: WAS ユーザーを含む Build Forge LDAP ドメインを「デフォルト」の LDAP サーバーにする必要があります。これを行うには、この Build Forge LDAP ドメインに移動し、「デフォルトの設定」を選択します。

許可サービス (AuthServlet) の保護

Build Forge では、通常、指定された Apache Tomcat アプリケーション・サーバーのアプリケーションとして、サービスを実行します。

このタスクについて

以下の説明では、Tomcat ではなく WAS を使用するように Build Forge を構成する方法を示します。 Apache Tomcat の代わりに WebSphere Application Server を使用セクションに記載された説明に従ってください。ただし、セキュリティー制約を追加するために、rbf-services.war ファイルに含まれている web.xml という名前のファイルを抽出および変更する必要がある点だけが異なります。このアプリケーションを WAS にインストールする前に、アプリケーションが war ファイルの保護されたバージョンを使用するようにアプリケーションを修正してから、このファイルを再生成する必要があります。

これを行うには、以下の手順に従ってください。

手順

  1. rbf-services.war ファイルを含むディレクトリー (Tomcat サーバー・ルートの webapps ディレクトリー) に移動します。 このファイルを一時的なロケーション (例えば、C:¥rbf) にコピーします。
  2. WAR ファイルを展開します。 コマンド行から、%IBM_JAVA_HOME%¥jar -xvf rbf-services.war コマンドを実行して、war ファイルの内容を展開します。
    注: Java が使用可能になっている必要があります。また、IBM_JAVA_HOME 環境変数がすでに作成されている必要があります。
  3. 後で使用できるように、rbf-services.war ファイルを保存しておきます。
    1. Windows の場合: copy rbf-services.war rbf-services.war.bak
    2. UNIX または Linux の場合: cp rbf-services.war rbf-services.war.bak
  4. WEB-INF ディレクトリーで web.xml ファイルを (war ファイルから展開されたファイルから) 探します。このファイルを編集して、セキュリティー・コンテキストを追加します。 例えば、ファイルの末尾の </web-app> タグのすぐ前に次の行を追加します。
    <security-constraint id="SecurityConstraint_1">
             <web-resource-collection id="WebResourceCollection_1">
                <web-resource-name>/*</web-resource-name>
                <url-pattern>/AuthServlet/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
                <http-method>PUT</http-method>
                <http-method>DELETE</http-method>
             </web-resource-collection>
             <auth-constraint id="AuthConstraint_1">
                <description>myconstraint:+:</description>
                <role-name>User</role-name>
             </auth-constraint>
             <user-data-constraint id="UserDataConstraint_1">
                <transport-guarantee>NONE</transport-guarantee>
             </user-data-constraint>
          </security-constraint>
          <login-config id="LoginConfig_1">
             <auth-method>BASIC</auth-method>
             <realm-name>full-qualified-domain</realm-name>
          </login-config>
          <security-role id="SecurityRole_1">
             <role-name>User</role-name>
          </security-role>
    注: <auth-method> は、WAS でサポートされる任意の J2EE 認証メソッドにすることができます。 最も一般的な認証メソッドは FORM ですが、これを使用するには、いくつかの構成パラメーターを追加する必要があります。 アプリケーションで FORM を構成するための説明は、WebSphere の資料を参照してください。
  5. コマンド行から次のコマンドを実行して、war ファイルを再生成します (ファイルの抽出先と同じディレクトリーから呼び出します)。
    %IBM_JAVA_HOME%¥jar -cvf  rbf-services.war

    これで、rbf-services の新しいバージョンが作成されました。このバージョンは、J2EE 制約を使用して AuthServlet を保護するように修正されています。 WAS で実行するためのインストール手順を完了し、「アプリケーション」->「新規アプリケーションのインストール (Install New Application)」とクリックして、rbf-services.war のこの新しいバージョンをインストールします。 WAS の構成中に、Build Forge が実行していないことを確認してください。

    インストールが終わったら、「アプリケーション」->「エンタープライズ・アプリケーション (Enterprise Applications)」と移動します。アプリケーション名をクリックして構成します。 「詳細プロパティー (Detail Properties)」の下で、「ユーザー/グループ・マッピングのセキュリティー・ロール (Security role to user/group mapping)」というタイトルのリンクをクリックします。 ユーザーに対して、「すべて認証対象 (All Authenticated)」チェック・ボックスを選択します。 この変更を行ったら、必ずマスター構成に保存してください。

    アプリケーション・セキュリティーも WAS で有効に設定される必要があります。 これを行うには、「セキュリティー」->「管理、アプリケーション、およびインフラストラクチャーの保護 (Secure administration, applications, and infrastructure)」と移動します。「アプリケーション・セキュリティーを有効に設定 (Enable application security)」にチェック・マークが付けられていることを確認します。

    この時点で、WAS サーバーを再始動し、続いて Build Forge サーバーを再始動します。
    注: rbf-services は、WAS 開始プロセスの一環として開始する必要があります。このため、Build Forge を開始する前に WAS を開始する必要があります。

新規 SSO 構成の作成

新規 SSO 構成を作成して、インターセプターを使用します。

手順

  1. Build Forge コンソールで、「管理」->「セキュリティー」->「SSO」と移動します。
  2. 「SSO 構成の追加」をクリックします。
  3. 構成用に、プロパティーを設定します。
    • Name - この構成の名前を入力します。
    • Java Class - com.buildforge.services.server.sso.was.WebSphereSSOInterceptor を入力します。
    • Active - 「はい」を選択します。
  4. 「保存」をクリックします。
  5. この構成がリストの最初に表示されるように移動させます。 構成名の左にあるメニューから、「最上部に移動」を選択します。

LDAP ユーザーまたは LDAP グループのローカル・ユーザーへのマッピング

LDAP ユーザーまたは LDAP グループをローカル root ユーザーなどのローカル・ユーザーにマップします。

このタスクについて

WebSphere SSO インターセプターの作成後は、以下を実行するようにインターセプターを構成できます。
  • LDAP ユーザーを root などのローカル・ユーザーにマップする
  • LDAP グループを root などのローカル・ユーザーにマップする

マッピングをセットアップするには、環境変数を定義して、インターセプターでその環境変数を参照します。

環境変数の定義

手順

  1. Build Forge コンソールで、「環境変数」をクリックします。
  2. 環境変数の名前を指定して、「環境変数の保存」をクリックします。
  3. LDAP ユーザーをローカル・ユーザーにマップするには、以下の変数を設定して保存します。
    1. ldap_user_list_mappingLDAP_user1|local_user1;LDAP_user2|local_user2;LDAP_user3|local_user3 に設定します。
    2. ldap_realm_nameLDAP_domain_name に設定します。
    例えば、以下の環境変数が設定されたとします。
    	ldap_user_list_mapping = user1|root;user2|root;user3|root
    	ldap_realm_name = bluepages.ibm.com:389

    この場合、LDAP の user1、user2、および user3 がすべてローカル root ユーザーにマップされます。

  4. 特定の LDAP グループのメンバーをローカル・ユーザーにマップするには、以下の変数を設定して保存します。
    1. ldap_group_name_mappingLDAP_group|local_user に設定します。
    2. ldap_realm_nameLDAP_domain_name に設定します。
    注: 両方のタイプのマッピングを使用した場合は、グループ・マッピングよりもユーザー・マッピングが優先されます。
    グループ・マッピングの例として、以下の環境変数が設定されたとします。
    	ldap_group_name_mapping = cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com|root
    	ldap_realm_name = bluepages.ibm.com:389

    この場合、LDAP グループ cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com のメンバーであるユーザーが、ローカル root ユーザーにマップされます。

環境変数の参照

手順

  1. Build Forge コンソールで、「管理」->「セキュリティー」->「SSO」とクリックします。
  2. WebSphere SSO インターセプターの名前をクリックします。
  3. 構成の「環境変数」プロパティーを、上で定義した環境変数に設定します。
  4. 「保存」をクリックします。
  5. この構成がリストの最初に表示されるように移動させます。 構成名の左にあるメニューから、「最上部に移動」を選択します。

SSO カスタム・インターセプターの実行

新しい構成を使用してログインできるようになりました。

このタスクについて

このカスタマイズされた SSO インターセプターにより、WAS セキュリティー技法でユーザーを認証できるようになりました。認証は、AuthServlet 要求がユーザーとして Build Forge に渡されることで行われます。

手順

  1. Web ブラウザーを開きます。アドレス http://localhost を入力します。
  2. Build Forge ログイン・フォームではなく、認証ページが表示されます。自分の資格情報を入力して、Enter キーを押します。
  3. 認証後、自動的にログインが行われることを確認してください。
  4. ログアウトすると、ログイン・フォームではなく、デフォルトの jsp ページが表示されます。 ユーザーが認証された状態が続いている場合、その後のログインは自動的に行われます。

フォーム・ベースの SSO への復帰

SSO ログイン・フォームを使用するように戻すことができます。

このタスクについて

フォーム・ログインを使用するようにシステムを再構成するには、WAS で rbf-services をアンインストールし、元の rbf-services.war ファイルを再インストールする必要があります。Build Forge で、フォーム・ベースの SSO インターセプターが有効に設定され、最初の項目としてリストされていることを確認します。 カスタム WAS インターセプターを無効に設定します。これらの変更を行うには、WAS および Build Forge を再始動する必要があります。

手順

  1. rbf-services をアンインストールし、元の rbf-services.war ファイルを再インストールします。
  2. Build Forge で、フォーム SSO インターセプターが有効に設定され、最初の項目としてリストされていることを確認します (上記の「Build Forge SSO セキュリティー構成 (Build Forge SSO security configurations)」を参照)。
  3. カスタム WAS インターセプターを無効に設定します。
  4. WAS を再始動します。
  5. Build Forge を再始動します。

フィードバック