Menu Close
Settings Close

Language and Page Formatting Options

8.5. X.509 クライアント証明書ユーザー認証

相互 SSL 認証を使用するようにサーバーを設定した場合、Red Hat Single Sign-On は、X.509 クライアント証明書を使用したログインをサポートします。

通常のワークフロー:

  • クライアントは SSL/TLS チャンネルで認証リクエストを送信します。
  • SSL/TLS ハンドシェイクの間、サーバーとクライアントは x.509/v3 証明書を交換します。
  • コンテナー (JBoss EAP) は、証明書 PKIX パスと証明書の有効期限を検証します。
  • X.509 クライアント証明書オーセンティケーターは、以下の方法を使用してクライアント証明書を検証します。

    • CRL または CRL Distribution Points を使用して、証明書失効ステータスを確認します。
    • OCSP (Online Certificate Status Protocol) を使用して、証明書失効ステータスを確認します。
    • 証明書の鍵が予想される鍵と一致するかどうかを確認します。
    • 証明書の拡張鍵が、想定された拡張鍵と一致するかどうかを検証します。
  • これらのチェックのいずれかが失敗すると、x.509 認証は失敗します。それ以外の場合は、オーセンティケーターは証明書のアイデンティティーを抽出し、これを既存ユーザーにマッピングします。

証明書が既存のユーザーにマッピングされると、認証フローに応じてさまざまな動作が行われます。

  • Browser Flowでは、サーバーはユーザーに対してアイデンティティーを確認するか、ユーザー名とパスワードを使用してサインインするよう要求します。
  • Direct Grant Flow では、サーバーはユーザーにサインインします。
重要

証明書 PKIX パスを検証するのは Web コンテナーの役割であることに注意してください。Red Hat Single Sign-On 側の X.509 オーセンティケーターは、証明書の有効期限、証明書失効ステータス、およびキーの使用を確認する追加のサポートのみを提供します。リバースプロキシーの背後にデプロイされた Red Hat Single Sign-On を使用している場合は、リバースプロキシーが PKIX パスを検証するように設定されていることを確認します。リバースプロキシーを使用せず、ユーザーが JBoss EAP に直接アクセスする場合は、以下のように PKIX パスが設定されている限り、JBoss EAPが PKIX パスが検証された状態を維持するので問題ありません。

8.5.1. 機能

サポートされる証明書アイデンティティーソース:

  • 正規表現を使用した SubjectDN の一致
  • X500 サブジェクトの email 属性
  • Subject Alternative Name Extension からの X500 サブジェクトのemail (RFC822Name General Name)
  • サブジェクトの別名エクステンションの X500 サブジェクトの他の名前。通常、この他の名前は User Principal Name (UPN) です。
  • X500 サブジェクトのコモンネーム属性
  • 正規表現を使用した IssuerDN の一致
  • 証明書のシリアル番号
  • Certificate Serial Number および IssuerDN
  • SHA-256 証明書サムプリント
  • PEM 形式の完全な証明書

8.5.1.1. 正規表現

Red Hat Single Sign-On は、正規表現をフィルターとして使用して、サブジェクト DN または発行者 DN から証明書のアイデンティティーを抽出します。たとえば、以下の正規表現は email 属性とマッチします。

emailAddress=(.*?)(?:,|$)

正規表現のフィルターは、Identity Source が、Match SubjectDN using regular expression または Match IssuerDN using regular expression のいずれかに設定されている場合にのみ適用されます。

8.5.1.1.1. 既存のユーザーへの証明書 ID のマッピング

証明書アイデンティティーマッピングは、抽出したユーザー ID を、既存のユーザーのユーザー名、メール、または値が証明書 ID とマッチするカスタム属性にマッピングできます。たとえば、Identity sourceSubject’s email に設定するか、User mapping methodUsername or email に設定すると、X.509 クライアント証明書オーセンティケーターは、ユーザー名または電子メールで既存のユーザーを検索するときに、証明書の Subject DN の email 属性を検索条件として使用します。

重要
  • レルム設定で Login with email を無効にすると、同じルールが証明書認証に適用されます。ユーザーは email 属性を使用してログインできません。
  • Certificate Serial Number and IssuerDN を ID ソースとして使用するには、シリアル番号と IssuerDN に 2 つのカスタム属性が必要です。
  • SHA-256 Certificate thumbprint は、SHA-256 証明書のサムプリントの小文字の 16 進数表記です。
  • ID ソースとしての Full certificate in PEM format の使用は、LDAP などの外部フェデレーションソースにマッピングされたカスタム属性に限定されます。Red Hat Single Sign-On は、長さの制限によりデータベースに証明書を保存できません。そのため、LDAP の場合は、Always Read Value From LDAP を有効にする必要があります。
8.5.1.1.2. 拡張証明書の検証
  • CRL を使用した失効ステータスの確認。
  • CRL/分散ポイントを使用した失効ステータスの確認。
  • OCSP/Responder URI を使用した失効ステータスの確認。
  • 証明書 KeyUsage の検証。
  • 証明書 ExtendedKeyUsage の検証。