X.509 クライアント証明書または HTML フォーム認証方式

X.509 クライアント証明書または HTML フォーム認証方式では、HTML フォーム認証または X.509 クライアント証明書認証のいずれかを使用してユーザを識別できます。ユーザが認証されるためには、以下の 2 つのイベントのいずれかが発生する必要があります。
casso11jp
X.509 クライアント証明書または HTML フォーム認証方式では、HTML フォーム認証または X.509 クライアント証明書認証のいずれかを使用してユーザを識別できます。ユーザが認証されるためには、以下の 2 つのイベントのいずれかが発生する必要があります。
  • X.509 クライアント証明書が確認されていること。
  • ユーザが HTML フォームで要求される認証情報を指定していること。
ユーザが保護されたリソースをリクエストすると、Web エージェントがブラウザに証明書の提示を要求します。この方式では、以下の影響があります。
状況
結果
証明書が提示されます。
証明書が処理されます。
証明書が拒否された場合
ブラウザがエラー 500 を発行します。
証明書は提示されません。
ブラウザによってフォームが表示されます。
フォームが拒否された場合
ブラウザによってフォームへの入力が再度求められます。
この方式は X.509 証明書を段階的に展開していく必要がある場合に有用です。たとえば、50,000 人のユーザを抱える企業においては、50,000 人分の証明書を同時に発行して展開することは極めて困難です。ところが、この認証方式を利用すれば適切と思われる数(1 度に 500 または 5,000)の証明書を発行していくことができます。証明書を展開していく過渡期においては、すでに証明書を保有しているユーザに対しては証明書を使ってリソースを保護し、その他の権限を持ったユーザに対しては HTML フォームの認証情報に基づいてリソースへのアクセスを許可するということができます。
注:
X509 証明書やフォーム認証など、複数の証明書ベースの認証方式を実装すると、ブラウザのキャッシュがいっぱいになって予期しない動作が起こる可能性があります。ユーザが証明書またはフォーム認証方式で保護されているレルムにあるリソースへのアクセスに証明書ベースの認証を使用しない場合、ブラウザは自動的にこの決定をキャッシュに保存します。このユーザが同じブラウザ セッションの中で、X509 証明書、X509 証明書およびベーシック、または X509 証明書およびフォームなどの必須証明書が指定された認証方式で保護されているリソースにアクセスしようとすると、「禁止されています(Forbidden)」というエラーメッセージが表示されます。
この場合、最初のリソースへのアクセス時にユーザが証明書ベースの認証の証明書を送信しないと選択し、ブラウザはその選択内容をキャッシュに保存しているため、証明書が必要なレルムにアクセスすると、ユーザのアクセスは自動的に拒否されます。
認証を受ける証明書を送信するかどうかの決定をユーザに認めない X509 証明書またはフォーム認証方式およびその他の証明書ベースの認証方式を含む証明書ベースの認証方式で保護されているレルムが混在する配置において、有効な証明書を保有しているユーザに、その証明書をリソースにアクセスするために使用するよう促します。
X.509 クライアント証明書または HTML フォームの認証方式の前提条件
X.509 クライアント証明書または HTML フォームの認証方式を設定する前に、以下の前提条件を確認してください。
  • X.509 サーバ証明書が SSL Web サーバ上にインストールされていること。
    casso11jp
    : ポリシー サーバが FIPS モードで動作している場合は、証明書が FIPS 承認アルゴリムズのみを使用して生成されていることを確認してください。
  • ネットワークがクライアント ブラウザへの SSL 接続をサポートしていること(HTTPS プロトコル)。
  • X.509 クライアント証明書がクライアント ブラウザにインストールされていること。
  • クライアント証明書とサーバ証明書の間で信頼関係が確立されていること。
  • 有効で信頼できる認証機関(CA)が証明書を発行していること。
  • 発行元 CA の公開キーがユーザのデジタル署名を検証すること。
  • クライアント証明書とサーバ証明書の有効期限が切れていないこと。
  • 公開キーがユーザのデジタル署名を検証すること。
  • HTML フォームで要求されたユーザ属性がユーザ ディレクトリにあること。
  • ポリシー サーバとユーザ ディレクトリの間にディレクトリ接続が確立されていること。
  • (Sun Java Systems)Sun Java Systems の Web サーバを使用している場合は、magnus.conf ファイル内の StackSize パラメータの値を 131072 より大きい値に増加してください。値を変更しないと、Web サーバはそのコアをダンプし、ポリシー サーバがフォームを使用して認証リクエストを行うたびに再起動します。
エージェント API のサポート
エージェント API では、列挙型 Sm_Api_Credentials_t に Sm_AuthApi_Cred_CertOrForm という値が追加されました。Sm_Api_Credentials_t は、構造体 Sm_AgentApi_Realm_t で参照されるレルムにユーザがアクセスするために必要な認証情報を指定します。この列挙型は、構造体の nRealmCredentials フィールドに適用されます。
この新しい値は、ユーザ認証に X.509 証明書またはフォームベースの認証方式が必要であることを指定します。
X.509 証明書または HTML フォーム認証方式の設定
X.509 証明書または HTML フォーム認証方式を使用して、証明書認証または HTML フォーム ベースの認証、あるいはその両方の認証を実装できます。
casso11jp
: 以下の手順では、新しいオブジェクトを作成しているとします。また、既存のオブジェクトのプロパティをコピーしてオブジェクトを作成することもできます。詳細については、「ポリシー サーバ オブジェクトの複製」を参照してください。
casso11jp
以下の手順に従います。
  1. [インフラストラクチャ]-[認証]をクリックします。
  2. [認証方式]をクリックします。
  3. [認証方式の作成]をクリックします。
    [認証方式タイプの新しいオブジェクトの作成]が選択されていることを確認します。
  4. [OK]をクリックします。
  1. 名前および保護レベルを入力します。
  2. [認証方式のタイプ]リストから[X509 クライアント証明書またはフォーム テンプレート]を選択します。
  3. サーバとターゲット情報を入力します。
  4. (オプション)[方式のセットアップ]で[認証方式データを保持する]を選択します。このオプションは、認証コンテキスト データがセッション ストアで保存されることを指定します。
  5. [サブミット]をクリックします。
    認証方式が保存され、レルムに割り当て可能になります。
: Apache Web サーバで証明書が必須またはオプションに設定されている場合は、httpd.conf ファイルで SSL Verify Depth 10 の行をコメント解除してください。