クライアント証明書を使用したログイン

クライアント証明書を使用したログイン機能の構成には、2 つの選択肢があります。

WebSphere Application Server を使用して Build Forge をホストする場合のログイン

このタスクについて

WebSphere Application Server を使用して Build Forge をホストする場合、変更を行った上で使用可能なオプションがあります。 この方法を使用する場合には、WebSphere が認証を実行した後に認証済みのプリンシパルを取得する WebSphereSSOInterceptor が必要です。

この方法を使用する場合は、以下の手順で変更を行ってください。

手順

  1. WebSphere Application Server のコンテナー管理認証が jas への要求を認証できるように、Build Forge の WAR ファイルを保護します。 この保護をセットアップする方法については、カスタム・インターセプターを使用した WebSphere Application Server セキュリティーとの統合を参照してください。
  2. jas Web アプリケーション用にクライアント証明書認証のマッピングをサポートするように WebSphere Application Server を構成します。 このサポートは、以下の項目を構成することによってセットアップします。
    • クライアント証明書用の SSL
    • クライアント証明書用の jas Web アプリケーション
    • クライアント証明書用の Web サーバー
    • クライアント証明書用の LDAP サーバーのマッピング

    WebSphere Application Server を構成する際のガイドとなる WebSphere Portal でクライアント証明書認証を構成する方法については、http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp?topic=/com.ibm.wp.ent.doc/wpf/certauth.html を参照してください。 ステップ 1 から 3 に従ってください。この手順では、カスタム・インターセプターを使用した WebSphere Application Server セキュリティーとの統合で変更する web.xml ファイルについて言及しています。${WAS_INSTALL_ROOT}/profiles/${PROFILE_NAME}/installedApps/${CELL_NAME}/jas_war.ear/jas.war/WEB-INF/web.xml にあるファイルに変更を行います。

カスタム Build Forge SSO インターセプターに基づくログイン

このタスクについて

この方法を使用する場合は、シングル・サインオン・フレームワークについてで説明しているとおり、カスタム SSO インターセプターを追加する必要があります。

手順

  1. 以下のように、カスタム SSO インターセプターが要求属性から X509 証明書を受け取るようにします。
    X509Certificate[] certs = 
    (X509Certificate[])request.getAttribute("javax.net.ssl.peer_certificates");
  2. カスタム SSO インターセプターがサブジェクト DN の一部を LDAP 属性にマップするようにします。 通常は、証明書の共通名 (CN) を、LDAP ディレクトリー内のユーザー ID にマップします。 Build Forge SSO インターセプターの authenticateRequest メソッドで結果を返します。
    responseAttributes.setStatus(HttpServletResponse.SC_OK);
    principal = mapCert(certs);  /* Custom method to map from certificate to 
                                    Build Forge LDAP principal. */
    result = new Result(Result.UseridOnlyOID, domain, principal); /* Specify 
                   the domain name of the LDAP server the principal exists in. */
    return result;

フィードバック