Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.2. Identity Management での証明書マッピングルールの設定

23.2.1. スマートカードにおける認証を設定するための証明書マッピングルール

証明書マッピングルールは、Identity Management(IdM)管理者が特定のユーザーの証明書にアクセスしない場合に、シナリオで証明書を使用して認証できるため便利な方法です。通常、このようなアクセスがない理由は、証明書が外部の認証局によって発行されたためです。特別なユースケースは、IdM ドメインが信頼関係にある Active Directory (AD) の証明書システムが発行した証明書によって表されます。
証明書マッピングルールは、スマートカードを使用するユーザーが多く、IdM 環境が大きい場合にも便利です。このような場合、完全な証明書を追加すると複雑になります。ほとんどの場合、発行先と発行者は予測可能であるため、完全な証明書よりも簡単に追加できます。システム管理者は、証明書マッピングルールを作成し、特定のユーザーに証明書を発行する前に、ユーザーエントリーに証明書マッピングデータを追加できます。証明書が発行されると、完全な証明書が自分のエントリーにアップロードされていなくても、ユーザーは証明書を使用してログインできるようになります。
さらに、証明書は一定間隔で更新する必要があるため、証明書マッピングルールは管理のオーバーヘッドを軽減します。ユーザーの証明書を更新する際に、管理者がユーザーエントリーを更新する必要がありません。たとえば、マッピングが Subject および Issuer の値に基づいている場合、および新しい証明書のサブジェクトと発行者が以前の証明書と同じ場合は、マッピングは引き続き適用されます。一方で、完全な証明書を使用した場合、管理者は古い証明書に置き換わる新しい証明書をユーザーエントリーにアップロードする必要があります。
証明書マッピングを設定するには、以下を実行します。
  1. 管理者は、証明書マッピングデータ (通常は発行者と発行先)、または完全な証明書をユーザーアカウントに読み込む必要があります。
  2. 管理者は、以下のようなユーザーの IdM への正常なログインを許可する証明書マッピングルールを作成する必要があります。
    • アカウントに、証明書マッピングデータエントリーが含まれる
    • 証明書マッピングデータエントリーが、証明書の情報と一致する
    マッピングルールを構成する個々のコンポーネントの詳細と、そのコンポーネントの取得方法および使用方法は、「IdM のアイデンティティーマッピングルールのコンポーネント」および「照合ルールで使用する証明書の発行者の取得」を参照してください。

23.2.1.1. Active Directory ドメインとの信頼に対する証明書マッピングルール

本セクションでは、IdM デプロイメントが Active Directory(AD)ドメインと信頼関係にある場合に可能な、別の証明書マッピングのユースケースを簡単に説明します。
証明書マッピングルールは、信頼された AD 証明書システムが発行したスマートカード証明書を持つユーザーに対して、IdM リソースにアクセスするのに便利な方法です。AD 設定によっては、以下の状況が考えられます。

23.2.1.2. IdM における Identity マッピングルールのコンポーネント

本セクションでは、IdM の ID マッピングルール のコンポーネントと、その設定方法を説明します。各コンポーネントには、上書きできるデフォルト値があります。コンポーネントは、Web UI またはコマンドラインのいずれかで定義できます。コマンドラインで、ipa certmaprule-add コマンドを使用して、ID マッピングルールが作成されます。
ルールのマッピング
マッピングルールコンポーネントでは、1 つ以上のユーザーアカウントに証明書を関連付ける(またはマップ)します。ルールは、証明書を目的のユーザーアカウントに関連付ける LDAP 検索フィルターを定義します。
さまざまな認証局 (CA) が発行する証明書にはさまざまなプロパティーがあり、さまざまなドメインで使用される可能性があります。したがって、IdM はマッピングルールを無条件に適用せず、適切な証明書にのみ適用されます。適切な証明書は、マッチングルールを使用して定義されます。
マッピングルールのオプションを空のままにすると、証明書は、DER でエンコードされたバイナリーファイルとして userCertificate 属性で検索されることに注意してください。
--maprule オプションを使用して、コマンドラインでマッピングルールを定義します。
マッチングルール
ドメイン一覧は、ID マッピングルールの処理時に IdM がユーザーを検索する ID ドメインを指定します。このオプションを指定しないと、IdM は、IdM クライアントが属するローカルドメイン内でのみユーザーを検索します。
--domain オプションを使用してコマンドラインでドメインを定義します。
優先順位
複数のルールが証明書に適用される場合は、最も優先度が高いルールが優先されます。その他のルールはすべて無視されます。
  • 数値が低いほど、ID マッピングルールの優先度が高くなります。たとえば、優先度 1 のルールは、優先度 2 のルールよりも高く設定されています。
  • ルールに優先度の値が定義されていないと、優先度が最も低くなります。
--priority オプションを使用して、コマンドラインでマッピングルールの優先度を定義します。

例23.1 証明書マッピングルールの例

コマンドラインを使用して定義するには、EXAMPLE.ORG 組織の スマートカード CA が発行する証明書に対する認証を可能にする simple_rule という証明書マッピングルールを定義します。その証明書の Subject が、IdM のユーザーアカウント内のユーザーアカウントの certmapdata エントリーと一致している場合に限り、EXAMPLE.ORG 組織のスマートカード CA が発行する証明書の認証が可能になります。
# ipa certmaprule-add simple_rule --matchrule '<ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG' --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'

23.2.1.3. 一致するルールで使用する証明書からの発行者の取得

この手順では、証明書から発行者情報を取得して、証明書マッピングルールのマッチングルールにコピーする方法を説明します。マッチングルールで必要な発行者の形式を取得するには、openssl x509 コマンドを使用します。

前提条件

  • a.pem または. crt 形式のユーザー証明書がある。

手順

  1. 証明書からユーザー情報を取得します。以下のように openssl 証明書の表示および署名ユーティリティーを使用します。
    • リクエストのエンコードされたバージョンの出力を防ぐ -noout オプション
    • 発行者名を出力する -issuer オプション
    • 証明書を読み込む入力ファイル名を指定する -in オプション
    • RFC2253 値と共に -nameopt オプションを指定して、最初に最も具体的な相対識別名(RDN)で出力を表示します。
    入力ファイルに Identity Management 証明書が含まれる場合は、コマンドの出力で Organisation 情報を使用して発行者が定義されていることを示しています。
    # openssl x509 -noout -issuer -in idm_user.crt -nameopt RFC2253
    issuer=CN=Certificate Authority,O=REALM.EXAMPLE.COM
    入力ファイルに Active Directory 証明書が含まれる場合は、コマンドの出力で Domain Component 情報を使用して発行者が定義されていることを示しています。
    # # openssl x509 -noout -issuer -in ad_user.crt -nameopt RFC2253
    issuer=CN=AD-WIN2012R2-CA,DC=AD,DC=EXAMPLE,DC=COM
  2. 必要に応じて、証明書の発行者が、ad.example.com ドメインから展開した AD-WIN2012R2-CA であることを指定するマッチングルールに基づいて、コマンドラインで新しいマッピングルールを作成するには、証明書の発行先が、IdM のユーザーアカウント内の certmapdata エントリーと一致する必要があります。
    # ipa certmaprule-add simple_rule --matchrule '<ISSUER>CN=AD-WIN2012R2-CA,DC=AD,DC=EXAMPLE,DC=COM' --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'

追加情報

certmap コマンドの詳細は、マッチングルールおよびマッピングルールで対応している形式に関する情報や、優先順位およびドメインフィールドの説明は、sss-certmap(5) の man ページを参照してください。

23.2.2. IdM に保存されたユーザーの証明書マッピングの設定

本セクションでは、証明書認証が設定されているユーザーが IdM に保存されている場合は、システム管理者が IdM で証明書マッピングを有効にする必要がある手順を説明します。

前提条件

  • IdM にユーザーがアカウントがある。
  • 管理者が、ユーザーエントリーに追加する証明書全体または証明書マッピングデータのいずれかを所有しています。

23.2.2.1. IdM での証明書マッピングルールの追加

本セクションでは、マッピングルールおよび証明書マッピングデータエントリーで指定された条件に一致する証明書を持つ IdM ユーザーが IdM に対して認証できるように、証明書マッピングルールを設定する方法を説明します。
23.2.2.1.1. IdM Web UI での証明書マッピングルールの追加
  1. 管理者として IdM Web UI にログインします。
  2. AuthenticationCertificate Identity Mapping RulesCertificate Identity Mapping Rulesの順に移動し
  3. Add をクリックします。

    図23.1 IdM Web UI で新しい証明書マッピングルールの追加

    IdM Web UI で新しい証明書マッピングルールの追加
  4. ルール名を入力します。
  5. マッピングルールを入力します。たとえば、IdM が提示する証明書の IssuerSubject エントリーを IdM で検索し、提示された証明書に含まれるこの 2 つのエントリーで見つかった情報に基づいて認証するかどうかを決定するには、次のコマンドを実行します。
    (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
  6. マッチングルールを入力します。たとえば、EXAMPLE.ORG 組織の スマートカード CA が発行する証明書のみが IdM に対して認証できるようにするには、次のコマンドを実行します。
    <ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG

    図23.2 IdM Web UI での証明書マッピングルールの詳細入力

    IdM Web UI での証明書マッピングルールの詳細入力
  7. ダイアログボックスの下部にある Add をクリックして、ルールを追加し、ダイアログボックスを閉じます。
  8. System Security Services Daemon (SSSD) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールがすぐに読み込まれるようにする場合は、次のコマンドを実行して SSSD を再起動します。
    # systemctl restart sssd
これで、証明書マッピングルールセットが設定され、スマートカードの証明書で検出されたマッピングルールで指定されたデータの種類と、IdM ユーザーエントリーの証明書マッピングデータを比較します。一致するファイルが見つかると、一致するユーザーが認証されます。
23.2.2.1.2. コマンドラインでの証明書マッピングルールの追加
  1. 管理者の認証情報を取得します。
    # kinit admin
  2. マッピングルールを入力し、マッピングルールの基となっているマッチングルールを入力します。たとえば、提示する証明書の Issuer および Subject エントリーを IdM で検索し、提示された証明書に含まれるこの 2 つのエントリーで見つかった情報に基づいて認証するかどうかを決定し、EXAMPLE.ORG 組織の Smart Card CA が発行する証明書のみを認識するには、次のコマンドを実行します。
    # ipa certmaprule-add rule_name --matchrule '<ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG' --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'
    -------------------------------------------------------
    Added Certificate Identity Mapping Rule "rule_name"
    -------------------------------------------------------
      Rule name: rule_name
      Mapping rule: (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
      Matching rule: <ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG
      Enabled: TRUE
  3. System Security Services Daemon(SSSD)は、証明書マッピングルールを定期的に再読み取ります。新たに作成したルールがすぐに読み込まれるようにする場合は、次のコマンドを実行して SSSD を再起動します。
    # systemctl restart sssd
これで、証明書マッピングルールセットが設定され、スマートカードの証明書で検出されたマッピングルールで指定されたデータの種類と、IdM ユーザーエントリーの証明書マッピングデータを比較します。一致するファイルが見つかると、一致するユーザーが認証されます。

23.2.2.2. IdM のユーザーエントリーへの証明書マッピングデータの追加

本セクションでは、証明書マッピングデータエントリーで指定された値がすべて含まれている限り、ユーザーが複数の証明書を使用して認証できるように、証明書マッピングデータを IdM ユーザーエントリーに入力する方法を説明します。
23.2.2.2.1. IdM Web UI でユーザーエントリーへの証明書マッピングデータの追加
  1. 管理者として IdM Web UI にログインします。
  2. UsersActive users に移動し、ユーザーエントリーをクリックします。
  3. Certificate mapping data オプションを見つけ、Add をクリックします。
  4. 利用できるユーザーの証明書がある場合は、以下を実行します。
    1. コマンドラインインターフェースで、cat ユーティリティーまたはテキストエディターで証明書を表示します。
      # [root@server ~]# cat idm_user_certificate.pem
      -----BEGIN CERTIFICATE-----
      MIIFFTCCA/2gAwIBAgIBEjANBgkqhkiG9w0BAQsFADA6MRgwFgYDVQQKDA9JRE0u RVhBTVBMRS5DT00xHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0x ODA5MDIxODE1MzlaFw0yMDA5MDIxODE1MzlaMCwxGDAWBgNVBAoMD0lETS5FWEFN
      [...output truncated...]
    2. 証明書をコピーします。
    3. IdM Web UI で、Certificate の横にある Add をクリックし、開いたウィンドウに証明書を貼り付けます

      図23.3 ユーザーの証明書マッピングデータの追加: 証明書

      ユーザーの証明書マッピングデータの追加: 証明書
      または、利用できるユーザーの証明書がなく、証明書の IssuerSubject が分かっている場合は、Issuer and subject のラジオボタンにチェックを入れ、それぞれのボックスに値を入力します。

      図23.4 ユーザーの証明書マッピングデータの追加: Issuer および Subject

      ユーザーの証明書マッピングデータの追加: Issuer および Subject
  5. Add をクリックします。
  6. 必要に応じて、.pem 形式の証明書全体にアクセスできる場合は、ユーザーと証明書がリンクされていることを確認します。
    1. sss_cache ユーティリティーを使用して、SSSD キャッシュでユーザーのレコードを無効にし、ユーザーの情報を再読み込みします。
      # sss_cache -u user_name
    2. ipa certmap-match コマンドに、IdM ユーザーの証明書が含まれるファイルの名前を付けて実行します。
      # ipa certmap-match idm_user_cert.pem
      --------------
      1 user matched
      --------------
       Domain: IDM.EXAMPLE.COM
       User logins: idm_user
      ----------------------------
      Number of entries returned 1
      ----------------------------
    「IdM での証明書マッピングルールの追加」。つまり、定義された証明書マッピングデータに一致する証明書を使用して、ユーザーとして認証できることを意味します。
23.2.2.2.2. コマンドラインを使用したユーザーエントリーへの証明書マッピングデータの追加
  1. 管理者の認証情報を取得します。
    # kinit admin
  2. 利用できるユーザーの証明書がある場合は、ipa user-add-cert コマンドを使用して証明書をユーザーアカウントに追加します。
    # CERT=`cat idm_user_cert.pem | tail -n +2 | head -n -1 | tr -d '\r\n'\`
    # ipa user-add-certmapdata idm_user --certificate $CERT
    または、利用できるユーザーの証明書がなく、ユーザーの証明書の Issuer および Subject を知っている場合は、以下を実行します。
    # ipa user-add-certmapdata idm_user --subject "O=EXAMPLE.ORG,CN=test" --issuer "CN=Smart Card CA,O=EXAMPLE.ORG"
    --------------------------------------------
    Added certificate mappings to user "idm_user"
    --------------------------------------------
      User login: idm_user
      Certificate mapping data: X509:<I>O=EXAMPLE.ORG,CN=Smart Card CA<S>CN=test,O=EXAMPLE.ORG
  3. 必要に応じて、.pem 形式の証明書全体にアクセスできる場合は、ユーザーと証明書がリンクされていることを確認します。
    1. sss_cache ユーティリティーを使用して、SSSD キャッシュでユーザーのレコードを無効にし、ユーザーの情報を再読み込みします。
      # sss_cache -u user_name
    2. ipa certmap-match コマンドに、IdM ユーザーの証明書が含まれるファイルの名前を付けて実行します。
      # ipa certmap-match idm_user_cert.pem
      --------------
      1 user matched
      --------------
       Domain: IDM.EXAMPLE.COM
       User logins: idm_user
      ----------------------------
      Number of entries returned 1
      ----------------------------

23.2.3. ユーザーエリアの AD ユーザーエントリーの証明書マッピングの設定(Whole 証明書を含む)

本セクションでは、IdM デプロイメントが Active Directory(AD)を信頼し、そのユーザーが AD に保存され、AD のユーザーエントリーに証明書全体が含まれる場合に、IdM で証明書マッピングを有効にするのに必要な手順を説明します。

前提条件

  • IdM にユーザーアカウントがない。
  • ユーザーに、証明書を含む AD のアカウントがある。
  • IdM 管理者が、IdM 証明書マッピングルールが基になっているデータにアクセスできます。

23.2.3.1. IdM Web UI を使用して、AD ユーザーエントリーに完全な証明書が含まれるユーザーに証明書マッピングルールの追加

IdM Web UI に証明書マッピングルールを追加するには、以下を実行します。
  1. 管理者として IdM Web UI にログインします。
  2. AuthenticationCertificate Identity Mapping RulesCertificate Identity Mapping Rulesの順に移動し
  3. Add をクリックします。

    図23.5 IdM Web UI で新しい証明書マッピングルールの追加

    IdM Web UI で新しい証明書マッピングルールの追加
  4. ルール名を入力します。
  5. マッピングルールを入力します。認証のために IdM に提示された証明書全体を、AD で利用可能な証明書全体と比較するには、次のコマンドを実行します。
    (userCertificate;binary={cert!bin})
  6. マッチングルールを入力します。たとえば、AD .EXAMPLE.COM ドメインの AD-ROOT-CA が発行する証明書のみを認証できるようにするには、次のコマンドを実行します。
    <ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com

    図23.6 AD に保存されている証明書を使用するユーザーの証明書マッピングルール

    AD に保存されている証明書を使用するユーザーの証明書マッピングルール
  7. Add をクリックします。
  8. System Security Services Daemon(SSSD)は、証明書マッピングルールを定期的に再読み取ります。新たに作成したルールがすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

23.2.3.2. ユーザーワイドの AD ユーザーエントリー用の証明書マッピングルールの追加に、コマンドラインでの Whole 証明書が含まれます。

コマンドラインを使用して証明書マッピングルールを追加するには、以下を実行します。
  1. 管理者の認証情報を取得します。
    # kinit admin
  2. マッピングルールを入力し、マッピングルールの基となっているマッチングルールを入力します。AD で利用可能な証明書と比較する、認証用に提示される証明書全体を取得して、AD .EXAMPLE.COM ドメインの AD-ROOT-CA により発行された証明書のみを認証できるようにするには、次のコマンドを実行します。
    # ipa certmaprule-add simpleADrule --matchrule '<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com' --maprule '(userCertificate;binary={cert!bin})' --domain ad.example.com
    -------------------------------------------------------
    Added Certificate Identity Mapping Rule "simpleADrule"
    -------------------------------------------------------
      Rule name: simpleADrule
      Mapping rule: (userCertificate;binary={cert!bin})
      Matching rule: <ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
      Domain name: ad.example.com
      Enabled: TRUE
  3. System Security Services Daemon(SSSD)は、証明書マッピングルールを定期的に再読み取ります。新たに作成したルールがすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

23.2.4. AD がユーザーアカウントにユーザー証明書をマッピングするように設定されている場合には、証明書マッピングの設定

本セクションでは、IdM デプロイメントが Active Directory (AD) を信頼し、そのユーザーが AD に保存され、AD のユーザーエントリーに証明書マッピングデータが含まれる場合に、IdM で証明書マッピングを有効にするのに必要な手順を説明します。

前提条件

  • IdM にユーザーアカウントがない。
  • ユーザーに altSecurityIdentities 属性を含む AD のアカウントがある(IdM の certmapdata 属性に相当する AD 属性)。
  • IdM 管理者が、IdM 証明書マッピングルールが基になっているデータにアクセスできる。

23.2.4.1. 信頼できる AD ドメインがユーザー証明書をマッピングするように設定されている場合には、Web UI を使用した証明書マッピングルールの追加

信頼された AD ドメインがユーザー証明書をマッピングするように設定されている場合には、証明書マッピングルールを追加します。
  1. 管理者として IdM Web UI にログインします。
  2. AuthenticationCertificate Identity Mapping RulesCertificate Identity Mapping Rulesの順に移動し
  3. Add をクリックします。

    図23.7 IdM Web UI で新しい証明書マッピングルールの追加

    IdM Web UI で新しい証明書マッピングルールの追加
  4. ルール名を入力します。
  5. マッピングルールを入力します。たとえば、提示する証明書の Issuer および Subject エントリーを AD DC で検索し、提示された証明書に含まれるこの 2 つのエントリーで見つかった情報に基づいて認証するかどうかを決定するには、次のコマンドを実行します。
    (altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500})
  6. マッチングルールを入力します。たとえば、AD .EXAMPLE.COM ドメインの AD-ROOT-CA が発行する証明書のみを認証できるようにするには、次のコマンドを実行します。
    <ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
  7. ドメインを入力します。
    ad.example.com

    図23.8 AD がマッピング用に設定されている場合の証明書マッピングルール

    AD がマッピング用に設定されている場合の証明書マッピングルール
  8. Add をクリックします。
  9. System Security Services Daemon(SSSD)は、証明書マッピングルールを定期的に再読み取ります。新たに作成したルールがすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

23.2.4.2. 信頼できる AD ドメインがユーザー証明書をマッピングするように設定されている場合には、コマンドラインで証明書マッピングルールを追加

コマンドラインを使用して証明書マッピングルールを追加するには、以下を実行します。
  1. 管理者の認証情報を取得します。
    # kinit admin
  2. マッピングルールを入力し、マッピングルールの基となっているマッチングルールを入力します。たとえば、提示する証明書の Issuer および Subject エントリーを AD で検索し、AD.EXAMPLE.COM ドメインの AD-ROOT-CA により発行された証明書のみを許可するには、次のコマンドを実行します。
    # ipa certmaprule-add ad_configured_for_mapping_rule --matchrule '<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com' --maprule '(altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500})' --domain=ad.example.com
    -------------------------------------------------------
    Added Certificate Identity Mapping Rule "ad_configured_for_mapping_rule"
    -------------------------------------------------------
      Rule name: ad_configured_for_mapping_rule
      Mapping rule: (altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500})
      Matching rule: <ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
      Domain name: ad.example.com
      Enabled: TRUE
  3. System Security Services Daemon(SSSD)は、証明書マッピングルールを定期的に再読み取ります。新たに作成したルールがすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

23.2.4.3. AD 側での証明書マッピングデータの確認

altSecurityIdentities 属性は、IdM の certmapdata ユーザー属性と同等の Active Directory(AD)です。信頼されている AD ドメインが、ユーザー証明書をユーザーアカウントにマッピングするように設定した場合に、IdM システム管理者が、AD のユーザーエントリーで altSecurityIdentities 属性が正しく設定されていることを確認する必要があります。
AD に保存されているユーザーの適切な情報が AD に含まれていることを確認するには、ldapsearch コマンドを使用します。
たとえば、ad_user のユーザーエントリーに altSecurityIdentities 属性が設定されており、ad_user が AD の認証に使用する証明書が ad.example.com ドメインの AD-ROOT-CA により発行され、発行先が <S<>DC=com,DC=example,DC=ad,CN=Users,CN=ad_user であることを一致しているのが、adserver.ad.example.example.com サーバーに設定されていることを確認する場合は、以下を行います。
$ ldapsearch -o ldif-wrap=no -LLL -h adserver.ad.example.com \
-p 389 -D cn=Administrator,cn=users,dc=ad,dc=example,dc=com \
-W -b cn=users,dc=ad,dc=example,dc=com "(cn=ad_user)" \
altSecurityIdentities
Enter LDAP Password:
dn: CN=ad_user,CN=Users,DC=ad,DC=example,DC=com
altSecurityIdentities: X509:<I>DC=com,DC=example,DC=ad,CN=AD-ROOT-CA<S>DC=com,DC=example,DC=ad,CN=Users,CN=ad_user

23.2.5. AD ユーザーエントリーに証明書またはマッピングデータが含まれない場合に、証明書マッピングの設定

本セクションでは、IdM デプロイメントが Active Directory(AD)を信頼し、そのユーザーが AD に保存され、AD のユーザーエントリーに証明書全体または証明書マッピングデータが含まれる場合に、IdM で証明書マッピングを有効にするのに必要な手順を説明します。

前提条件

  • IdM にユーザーアカウントがない。
  • ユーザーのアカウントがある AD に、証明書全体または altSecurityIdentities 属性、IdM の certmapdata 属性に相当する AD 属性はありません。
  • IdM 管理者が、IdM の AD ユーザーの user ID override に追加する AD ユーザー証明書全体がある。

23.2.5.1. AD ユーザーエントリーに証明書またはマッピングデータが含まれていない場合に、Web UI を使用した証明書マッピングルールの追加

AD ユーザーエントリーに、証明書またはマッピングデータが含まれていない場合に証明書マッピングルールを追加するには、以下を行います。
  1. 管理者として IdM Web UI にログインします。
  2. AuthenticationCertificate Identity Mapping RulesCertificate Identity Mapping Rulesの順に移動し
  3. Add をクリックします。

    図23.9 IdM Web UI で新しい証明書マッピングルールの追加

    IdM Web UI で新しい証明書マッピングルールの追加
  4. ルール名を入力します。
  5. マッピングルールを入力します。認証するために IdM に提示された証明書全体を、IdM の AD ユーザーエントリーのユーザー ID オーバーライドエントリーに保存されている証明書と比較できるようにするには、次のコマンドを実行します。
    (userCertificate;binary={cert!bin})
  6. マッチングルールを入力します。たとえば、AD .EXAMPLE.COM ドメインの AD-ROOT-CA が発行する証明書のみを認証できるようにするには、次のコマンドを実行します。
    <ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
  7. ドメイン名を入力します。たとえば、ad.example.com ドメインでユーザーを検索するには、次のコマンドを実行します。

    図23.10 AD に証明書やマッピングデータが保存されていないユーザーの証明書マッピングルール

    AD に証明書やマッピングデータが保存されていないユーザーの証明書マッピングルール
  8. Add をクリックします。
  9. System Security Services Daemon(SSSD)は、証明書マッピングルールを定期的に再読み取ります。新たに作成したルールがすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

23.2.5.2. AD ユーザーエントリーに証明書やマッピングデータが含まれていない場合に、コマンドラインで証明書マッピングルールを追加

AD ユーザーエントリーに、証明書またはマッピングデータが含まれていない場合に、コマンドラインを使用して証明書マッピングルールを追加するには、次のコマンドを実行します。
  1. 管理者の認証情報を取得します。
    # kinit admin
  2. マッピングルールを入力し、マッピングルールの基となっているマッチングルールを入力します。IdM の AD ユーザーエントリーのユーザー ID オーバーライドエントリーに保存されている証明書と比較する、認証用に提示される証明書全体を取得して、AD .EXAMPLE.COM ドメインの AD-ROOT-CA により発行された証明書のみを認証できるようにするには、次のコマンドを実行します。
    # ipa certmaprule-add simpleADrule --matchrule '<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com' --maprule '(userCertificate;binary={cert!bin})' --domain ad.example.com
    -------------------------------------------------------
    Added Certificate Identity Mapping Rule "simpleADrule"
    -------------------------------------------------------
      Rule name: simpleADrule
      Mapping rule: (userCertificate;binary={cert!bin})
      Matching rule: <ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
      Domain name: ad.example.com
      Enabled: TRUE
  3. System Security Services Daemon(SSSD)は、証明書マッピングルールを定期的に再読み取ります。新たに作成したルールがすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

23.2.5.3. Web UI を使用した AD ユーザーの ID オーバーライドへの証明書の追加

AD のユーザーエントリーに、証明書またはマッピングデータがない場合に、Web UI を使用して証明書を AD ユーザーの ID オーバーライドに追加するには、次のコマンドを実行します。
  1. 管理者として IdM Web UI にログインします。
  2. IdentityID ViewsDefault Trust View に移動します。
  3. Add をクリックします。

    図23.11 IdM Web UI で新しいユーザー ID オーバーライドの追加

    IdM Web UI で新しいユーザー ID オーバーライドの追加
  4. User to override フィールドに、ユーザー名をuser_name @domain_nameの形式で入力します。
  5. ユーザーの証明書を Certificate フィールドにコピーアンドペーストします。

    図23.12 AD ユーザーのユーザー ID オーバーライドの設定

    AD ユーザーのユーザー ID オーバーライドの設定
  6. 必要に応じて、ユーザーと証明書がリンクされていることを確認します。
    1. sss_cache ユーティリティーを使用して、SSSD キャッシュでユーザーのレコードを無効にし、ユーザーの情報を再読み込みします。
      # sss_cache -u ad_user@ad.example.com
    2. AD ユーザーの証明書が含まれるファイルの名前で、ipa certmap-match コマンドを入力します。
      # ipa certmap-match ad_user_cert.pem
      --------------
      1 user matched
      --------------
       Domain: AD.EXAMPLE.COM
       User logins: ad_user@ad.example.com
      ----------------------------
      Number of entries returned 1
      ----------------------------
      この出力では、に証明書マッピングデータが追加され、対応するマッピングルールが存在することを確認しますつまり、定義された証明書マッピングデータに一致する証明書を使用して、 として認証できることを意味します。

23.2.5.4. コマンドラインでの AD ユーザーの ID オーバーライドに証明書を追加

AD のユーザーエントリーに、証明書またはマッピングデータがない場合に、コマンドラインを使用して証明書を AD ユーザーの ID オーバーライドに追加するには、次のコマンドを実行します。
  1. 管理者の認証情報を取得します。
    # kinit admin
  2. ipa idoverrideuser-add-cert コマンドを使用して、ユーザーの証明書をユーザーアカウントに追加します。
    # CERT=`cat ad_user_cert.pem | tail -n +2 | head -n -1 | tr -d '\r\n'\`
    # ipa idoverrideuser-add-cert ad_user@ad.example.com --certificate $CERT
  3. 必要に応じて、ユーザーと証明書がリンクされていることを確認します。
    1. sss_cache ユーティリティーを使用して、SSSD キャッシュでユーザーのレコードを無効にし、ユーザーの情報を再読み込みします。
      # sss_cache -u ad_user@ad.example.com
    2. AD ユーザーの証明書が含まれるファイルの名前で、ipa certmap-match コマンドを入力します。
      # ipa certmap-match ad_user_cert.pem
      --------------
      1 user matched
      --------------
       Domain: AD.EXAMPLE.COM
       User logins: ad_user@ad.example.com
      ----------------------------
      Number of entries returned 1
      ----------------------------
      この出力では、に証明書マッピングデータが追加され、対応するマッピングルールが存在することを確認しますつまり、定義された証明書マッピングデータに一致する証明書を使用して、 として認証できることを意味します。

23.2.6. Several Identity Mapping Rules Into One の組み合わせ

複数の ID マッピングルールを 1 つのルールに結合するには、個々のマッピングルールの前に | (or)文字を追加し、括弧 () を使用して区切ります。以下に例を示します。
$ ipa certmaprule-add ad_cert_for_ipa_and_ad_users \ --maprule='(|(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})(altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500}))' \ --matchrule='<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com' \ --domain=ad.example.com
上記の例では、--maprule オプションのフィルター定義には、以下の基準が含まれます。
--maprule オプションのフィルターの定義では、論理演算子 | (or)が使用できるため、複数の基準を指定できます。この場合、ルールは、1 つ以上の基準を満たすユーザーアカウントをすべてマップします。
$ ipa certmaprule-add ipa_cert_for_ad_users \
  --maprule='(|(userCertificate;binary={cert!bin})(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})(altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500}))' \
  --matchrule='<ISSUER>CN=Certificate Authority,O=REALM.EXAMPLE.COM' \
  --domain=idm.example.com --domain=ad.example.com
上記の例では、--maprule オプションのフィルター定義には、以下の基準が含まれます。
--maprule オプションのフィルター定義は論理演算子 |(or)を受け付けるため、複数の基準を指定することができます。この場合、ルールは、1 つ以上の基準を満たすユーザーアカウントをすべてマップします。