統合リポジトリー内のファイル・ベース・リポジトリーのクライアント証明書ログイン・サポートの使用可能化

単一の組み込みファイル・ベース・リポジトリー、またはファイル・ベース・リポジトリーと他のリポジトリーが含まれた複数リポジトリー構成で構成されたレルムでクライアント証明書ログインのサポートを使用可能にすることができます。

始める前に

統合リポジトリー構成には、ファイル・ベース・リポジトリーが含まれている必要があります。トピック『統合リポジトリー の新規構成における、単一のファイル・ベース組み込みリポジトリーの使用』を参照してください。

このタスクについて

組み込みファイル・ベース・リポジトリーのデフォルト構成では、証明書ログイン要求を無視し、空の検索結果を返し、エラーを表示しません。

組み込みファイル・ベース・リポジトリーのクライアント証明書ログインを使用可能にする場合は、以下のステップを実行して、カスタム・プロパティーを設定します。

手順

  1. 管理コンソールで、「セキュリティー」>「グローバル・セキュリティー」とクリックします。
  2. 「ユーザー・アカウント・リポジトリー」において、「使用可能なレルム定義」フィールドから「統合リポジトリー」を選択し、「構成」をクリックします。複数のセキュリティー・ドメイン環境内の特定のドメインを構成するには、「セキュリティー・ドメイン」>「domain_nameをクリックします。「セキュリティー属性」の下で「ユーザー・レルム」を 展開し、「このドメイン用にカスタマイズする」をクリックします。レルム・タイプとして「統合リポジトリー」を選択して、「構成」をクリックします。
  3. 「関連項目」の下で、「リポジトリーの管理」をクリックしてから、「InternalFileRepository」リンクをクリックします。
  4. ファイル・ベース・リポジトリーの証明書ログインを使用可能にするには、「カスタム・プロパティー」の下で、プロパティー名として certificateMapMode を入力します。 要件に従って、このプロパティーの以下のいずれかの値を指定します。
    注: プロパティー名では大/小文字が区別されますが、プロパティー値では大/小文字は区別されません。
    notSupported
    ファイル・ベース・リポジトリーで証明書ログインがサポートされないことをユーザーに通知するエラーが表示されます。
    exactDNMode
    X.509 証明書の PrincipalName 値をリポジトリー内の完全一致の識別名 (DN) にマップして、ログインを試行します。 一致するエンティティーが見つかった場合は、ログインは成功します。一致するエンティティーが見つからなかった場合は、エンティティーが見つからなかったことを示すエラーが表示されます。
    filterDescriptorMode
    マッピングに証明書フィルターを使用して、ログインを試行します。 単一の一致するエンティティーが見つかった場合は、ログインは成功します。複数の一致するエンティティーが見つかった場合は、結果があいまいな一致であるため認証は失敗し、エラーが表示されます。

    有効な値を指定しなかった場合は、ファイル・アダプターの初期化時にエラーがログに記録され、空の検索結果が返されます。

  5. certificateMapMode プロパティーの値を filterDescriptorMode に設定した場合は、別のカスタム・プロパティー certificateFilter を指定する必要があります。certificateFilter カスタム・プロパティーは、クライアント証明書内の属性をリポジトリー内のエントリーにマップするフィルターを指定します。
    注: certificateMapMode プロパティーの値を notSupported または exactDNMode に設定した場合は、このステップは不要です。
    1. 「カスタム・プロパティー」の下で、「新規」をクリックします。
    2. 新しい行に、プロパティー名として certificateFilter を入力します。 このプロパティーの値として、フィルター式を指定します。

    このフィルターの構文 (構造) は、リポジトリー属性=${クライアント証明書属性} です (例えば、uid='${SubjectCN}')。

    ファイル・リポジトリーの証明書フィルターの構文には、以下の条件が適用されます。
    • 等号 (=) の前のフィルター仕様の部分は、ファイル・ベース・リポジトリー内の PersonAccount の有効なプロパティーでなければなりません。
    • 等号 (=) の後ろのフィルター仕様の部分は、クライアント証明書内のパブリック属性の 1 つです。ドル記号 ($) と左大括弧 ({) で始まり、右大括弧 (}) で終わる必要があります。
    • すべての統合リポジトリーのストリング・プロパティーのデータを単一引用符 (') で囲む必要があります。例えば、統合リポジトリーのプロパティー cn がストリングの場合は、このプロパティーを使用する証明書フィルターは、cn='${IssuerCN}' として指定します。
    等号 (=) の後ろのフィルター仕様の部分で、以下の証明書属性値を使用できます。ストリングの大/小文字の区別は重要です。
    • ${UniqueKey}
    • {PublicKey}
    • {PublicKey}
    • {Issuer<xx>} ここで、<xx> は、発行者識別名のいずれかの有効なコンポーネントを表す文字に置き換えます。例えば、発行者共通名に ${IssuerCN} を使用できます。
    • ${NotAfter}
    • ${NotBefore}
    • ${SerialNumber}
    • ${SigAlgName}
    • ${SigAlgOID}
    • ${SigAlgParams}
    • ${Subject<xx>} ここで、<xx> は、は、サブジェクト識別名のいずれかの有効なコンポーネントを表す文字に置き換えます。例えば、サブジェクト共通名に ${SubjectCN} を使用できます。
    • ${Version}
    以下の例では、ファイル・リポジトリーの複雑な証明書フィルターを示します。
    • ((cn='${IssuerCN}') and (mobile=${SerialNumber}) and (seeAlso='${SubjectDN}'))
    • ((employeeNumber=${SerialNumber}) or (seeAlso='${SubjectDN}')

    以下の表に示すように、LDAP リポジトリーとファイル・リポジトリーとでは、証明書フィルターを指定するために使用する構文にいくつかの違いがあります。

    表 1. LDAP リポジトリーとファイル・リポジトリーでの証明書フィルター構文の違いの説明
    ファイル・リポジトリーの証明書フィルター LDAP リポジトリーの証明書フィルター
    インフィックス表記法を使用します。 接頭表記法を使用します。
    論理演算子として and および or を使用します。 論理演算子としてアンパーサンド (&) および垂直バー (|) を使用します。
    すべての統合リポジトリーのストリング・プロパティーのデータを単一引用符 (') で囲む必要があります。 統合リポジトリーのストリング・プロパティーのデータを単一引用符 (') で囲む必要がありません。
    例:
    cn='${Issuer	CN}' and mobile=${SerialNumber})
    例:
    (& (cn=${IssuerCN}) (mobile=${SerialNumber})) 
  6. 構成変更を保存し、WebSphere Application Server を再始動して、変更を有効にします。

wsadmin コマンドを使用したカスタム・プロパティーの追加

あるいは、以下のステップで示すように、wsadmin コマンドを使用して、カスタム・プロパティーを追加することもできます。

手順

  1. 以下のコマンドを入力して、wsadmin ツールを開始します。
    wsadmin –conntype none
  2. setIdMgrCustomProperty コマンドを使用して、カスタム・プロパティーを追加します。
    $AdminTask setIdMgrCustomProperty { -id InternalFileRepository -name certificateMapMode -value mode}
    $AdminTask setIdMgrCustomProperty { -id InternalFileRepository -name certificateFilter -value filter_expression}

    例えば、以下のコマンドでは、証明書の IssureCN プロパティーで指定された値の CN を持つユーザーを検索します。

    $AdminTask setIdMgrCustomProperty { -id InternalFileRepository -name certificateFilter -value “cn='${IssuerCN}'”}

    以下のコマンドでは、証明書の IssuerCN プロパティーで指定された値の CN を持ち、かつ証明書の SerialNumber プロパティーに一致する携帯電話を持つユーザーを検索します。

    $AdminTask setIdMgrCustomProperty { -id InternalFileRepository -name certificateFilter -value “cn='${IssuerCN}' and mobile=${SerialNumber}”}
  3. 構成の変更を保存します。
    $AdminConfig save
  4. WebSphere Application Server を再始動して、変更を有効にします。

タスクの結果

上記ステップを完了すると、ファイル・アダプター構成の以下のエントリーに示されているように、統合リポジトリーでファイル・ベース・リポジトリー用の証明書ログインのサポートが使用可能になっています。
<config:CustomProperties name="certificateMapMode" value="mode"/>
<config:CustomProperties name="certificateFilter" value="filter_expression"/>

証明書ログイン要求が受け付けられると、ログインは成功します。証明書ログイン要求が拒否されると、エラーが表示されます。

統合リポジトリーの下でファイル・リポジトリーのみが構成されている場合は、証明書ログイン要求の結果は、以下の表の説明のようになります。

表 2. ファイル・リポジトリーのみが含まれた統合リポジトリー構成での証明書ログインの結果
ファイル・リポジトリー 期待される結果
デフォルトの動作 (certificateMapMode カスタム・プロパティーが追加されていない) 証明書ログイン要求は無視され、空の結果が返され、エラーは表示されません。
証明書ログインがサポートされない (certificateMapMode カスタム・プロパティーの値が notSupported) CertificateMapNotSupportedException が発生します。
証明書ログインがサポートされ (certificateMapMode カスタム・プロパティーの値が exactDNMode または filterDescriptorMode)、ユーザーが見つからない EntityNotFoundException が発生します。
証明書ログインがサポートされ (certificateMapMode カスタム・プロパティーの値が exactDNMode)、証明書内の PrincipalName に一致する DN を持つエンティティーが見つかった 証明書ログインは正常に行われます
証明書ログインがサポートされ (certificateMapMode カスタム・プロパティーの値が filterDescriptorMode)、単一の一致するエンティティーが見つかった 証明書ログインは正常に行われます
証明書ログインがサポートされ (certificateMapMode カスタム・プロパティーの値が filterDescriptorMode)、複数の一致するエンティティーが見つかった CertificateMapFailedException が発生し、「複数のプリンシパルが見つかりました (Multiple principals found)」というエラー・メッセージが表示されます。

統合リポジトリーの下に複数のリポジトリーが構成されている場合は、最終的なログイン結果は、他のリポジトリーの動作および他のリポジトリーから返された結果によって異なります。以下の表に、各種構成シナリオで表示されるエラーの例を示します。

表 3. ファイル・リポジトリーおよび LDAP リポジトリーが含まれた統合リポジトリー構成での証明書ログインの結果
ファイル・リポジトリー LDAP リポジトリー 期待される結果
デフォルトの動作 証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインは正常に行われます
デフォルトの動作 証明書ログインはサポートされていますが、ユーザーが見つかりません PasswordCheckFailedException が発生します
証明書ログインはサポートされていません 証明書ログインがサポートされており、ユーザーが見つかります CertificateMapFailedException が発生します
証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインがサポートされており、ユーザーが見つかります DuplicateLogonIdException が発生します
証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインはサポートされていますが、ユーザーが見つかりません 証明書ログインは正常に行われます
証明書ログインはサポートされていますが、ユーザーが見つかりません 証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインは正常に行われます
証明書ログインはサポートされていますが、ユーザーが見つかりません 証明書ログインはサポートされていますが、ユーザーが見つかりません PasswordCheckFailedException が発生します
表 4. ファイル・リポジトリーおよびローカル・オペレーティング・システム・リポジトリーが含まれた統合リポジトリー構成での証明書ログインの結果
ファイル・リポジトリー ローカル・オペレーティング・システム・リポジトリー 期待される結果
デフォルトの動作 証明書ログインはサポートされていません CertificateMapFailedException が発生します
証明書ログインはサポートされていません 証明書ログインはサポートされていません CertificateMapNotSupportedException が発生します。
証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインはサポートされていません CertificateMapFailedException が発生します
証明書ログインはサポートされていますが、ユーザーが見つかりません 証明書ログインはサポートされていません CertificateMapFailedException が発生します
デフォルトの動作 証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインは正常に行われます
デフォルトの動作 証明書ログインはサポートされていますが、ユーザーが見つかりません PasswordCheckFailedException が発生します
証明書ログインはサポートされていません 証明書ログインがサポートされており、ユーザーが見つかります CertificateMapFailedException が発生します
証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインがサポートされており、ユーザーが見つかります DuplicateLogonIdException が発生します
証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインはサポートされていますが、ユーザーが見つかりません 証明書ログインは正常に行われます
証明書ログインはサポートされていますが、ユーザーが見つかりません 証明書ログインがサポートされており、ユーザーが見つかります 証明書ログインは正常に行われます
証明書ログインはサポートされていますが、ユーザーが見つかりません 証明書ログインはサポートされていますが、ユーザーが見つかりません PasswordCheckFailedException が発生します

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twim_filebased_cert_login
ファイル名:twim_filebased_cert_login.html