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 のアイデンティティーマッピングルールのコンポーネント

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

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

その証明書の Subject は、IdM のユーザーアカウントの certmapdata エントリーと一致する場合に限り、コマンドラインを使用して、EXAMPLE.ORG 組織の Smart Card CA により発行された証明書の認証を許可する simple_rule と呼ばれる証明書マッピングルールを定義するには、次のコマンドを実行します。
# 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 コマンドを使用します。

前提条件

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

手順

  1. 証明書からユーザー情報を取得します。以下を使用して、openssl 証明書表示および署名ユーティリティーを使用します。
    • 要求のエンコードされたバージョンの出力を防ぐ -noout オプション
    • 発行者名を出力する -issuer オプション
    • 証明書を読み込む入力ファイル名を指定する -in オプション
    • 最も具体的な相対識別名 (RDN) で出力を最初に表示する RFC2253 値と共に使用する -nameopt オプション
    入力ファイルに 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 コマンドの詳細は、照合ルールおよびマッピングルールで対応している形式に関する情報、ならびに優先度およびドメインフィールドの説明が含まれます。man ページの sss-certmap(5) を参照してください。

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 をクリックします。
    IdM Web UI での新規証明書マッピングルールの追加

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

  4. ルール名を入力します。
  5. マッピングルールを入力します。たとえば、IdM に提示された任意の証明書の Issuer エントリーおよび Subject エントリーを検索し、この提示された証明書の 2 つのエントリーで見つかった情報に基づいて認証するかどうかを確認するには、以下を入力します。
    (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
  6. 照合ルールを入力します。たとえば、EXAMPLE.ORG 組織の Smart Card CA が発行する証明書のみを許可するには、次のコマンドを実行します。
    <ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG
    IdM Web UI での証明書マッピングルールの詳細の入力

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

  7. ダイアログボックスの下部にある Add をクリックしてルールを追加し、ダイアログボックスを閉じます。
  8. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、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. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、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 ユーザーの証明書マッピングデータの追加: 証明書

      または、ユーザーの証明書を自由に入手できないが、証明書の 発行者 および 発行先 が分かっている場合は、Issuer and subject のラジオボタンをオンにして、各ボックスに値を入力します。
      ユーザーの証明書マッピングデータの追加: 発行者および件名

      図23.4 ユーザーの証明書マッピングデータの追加: 発行者および件名

  5. Add をクリックします。
  6. 必要に応じて、.pem 形式の証明書全体へのアクセスがある場合は、ユーザーと証明書がリンクされていることを確認します。
    1. sss_cache ユーティリティーを使用して、SSSD キャッシュでユーザーの記録を無効にし、ユーザーの情報を強制的に再読み込みします。
      # sss_cache -u user_name
    2. IdM ユーザーの証明書が含まれるファイルの名前を使用して、ipa certmap-match コマンドを実行します。
      # 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
    または、利用できるユーザーの証明書がなく、ユーザーの証明書の SubjectSubject が分かっている場合は、次のコマンドを実行します。
    # 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. IdM ユーザーの証明書が含まれるファイルの名前を使用して、ipa certmap-match コマンドを実行します。
      # 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 ユーザーエントリーに完全な証明書が含まれるユーザー向け証明書マッピングの設定

本セクションでは、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 をクリックします。
    IdM Web UI での新規証明書マッピングルールの追加

    図23.5 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
    AD に保存されている証明書を持つユーザーに対する証明書マッピングルール

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

  7. Add をクリックします。
  8. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

23.2.3.2. コマンドラインで AD ユーザーエントリーに完全な証明書が含まれるユーザーに証明書マッピングルールの追加

コマンドラインで証明書マッピングルールを追加するには、以下を行います。
  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. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

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

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

前提条件

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

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

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

    図23.7 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 で発行された証明書のみが IdM へのユーザーを認証できるようにするには、以下を実行します。
    <ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
  7. ドメインを入力します。
    ad.example.com
    AD がマッピング用に設定されている場合の証明書マッピングルール

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

  8. Add をクリックします。
  9. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、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. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、SSSD を再起動します。
    # systemctl restart sssd

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

altSecurityIdentities 属性は、IdM の certmapdata ユーザー属性に相当する Active Directory (AD) です。ユーザー証明書をユーザーアカウントにマッピングするように信頼できる AD ドメインが設定されている場合、IdM システム管理者は altSecurityIdentities 属性が AD のユーザーエントリーで正しく設定されていることを確認する必要があります。
AD に保存されているユーザーの正しい情報が AD に含まれていることを確認するには、ldapsearch コマンドを使用します。
たとえば、adserver.ad.example.com サーバーで、ad_user のユーザーエントリーに altSecurityIdentities 属性が設定されていること、および matchrule が、ad_userを AD の認証に使用する証明書が ad.example.com ドメインの AD-ROOT-CA により発行されていること、発行先が <S<>DC=com,DC=example,DC=ad,CN=Users,CN=ad_user であることを定めていることを確認するには、次のコマンドを実行します。
$ 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 にアカウントを持っていますが、AD には証明書全体も altSecurityIdentities 属性も含まれていません。AD は IdM certmapdata 属性に相当します。
  • IdM 管理者が、IdM の AD ユーザーの user ID override に追加する AD ユーザー証明書全体を所有しています。

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

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

    図23.9 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 ドメインでユーザーを検索するには、以下を行います。
    AD に保存されている証明書やマッピングデータのないユーザーに対する証明書マッピングルール

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

  8. Add をクリックします。
  9. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、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. SSSD (System Security Services Daemon) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールが強制的にすぐに読み込まれるようにするには、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 をクリックします。
    IdM Web UI での新規ユーザー ID オーバーライドの追加

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

  4. User to override フィールドに、ユーザー名を user_name@domain_name の形式で入力します。
  5. ユーザーの証明書を Certificate フィールドにコピーします。
    AD ユーザー向けのユーザー ID オーバーライドの設定

    図23.12 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
      ----------------------------
      この出力では、証明書マッピングデータが ad_user@ad.example.com に追加され、対応するマッピングルールが存在することを確認します。これは、定義された証明書マッピングデータと一致する任意の証明書を使用して、ad_user@ad.example.com として認証できることを意味します。

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
      ----------------------------
      この出力では、証明書マッピングデータが ad_user@ad.example.com に追加され、対応するマッピングルールが存在することを確認します。これは、定義された証明書マッピングデータと一致する任意の証明書を使用して、ad_user@ad.example.com として認証できることを意味します。

23.2.6. 複数の ID マッピングルールを 1 つに統合

複数の 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 つ以上の条件を満たす全ユーザーアカウントをマッピングします。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。