第23章 Identity Management でのスマートカード認証
23.1. Identity Management サーバーのスマートカードリンクの管理
- スマートカードから証明書を抽出する必要がある場合は「スマートカードからの証明書のエクスポート」を参照してください。
23.1.1. スマートカードからの証明書のエクスポート
- スマートカードをリーダーに挿入します。
- 以下のコマンドを実行してスマートカードの証明書を表示します。出力で認証に使用する証明書を特定して、そのニックネームをメモします。
$
certutil -L -d /etc/pki/nssdb/ -h allCertificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI my_certificate CT,C,C - 証明書のニックネームを使用してファイルに証明書を抽出します。たとえば、
user.crtという名前のファイルに Base64 形式の証明書を抽出するには以下を実行します。$
certutil -L -d /etc/pki/nssdb/ -n 'my_certificate' -r | base64 -w 0 > user.crtbase64ユーティリティーは coreutils パッケージに含まれます。
23.1.2. ユーザーアカウントのスマートカード証明書へのリンク
- 完全な証明書のブロブを使用する
- Identity Management ユーザーは、「証明書とユーザーアカウントの間のリンク作成」を参照してください。また、「証明書およびユーザーアカウントの間のリンクの削除」を使用してこのリンクを削除してください。
- Active Directory ユーザーは「Active Directory のユーザーアカウントとスマートカードのリンク」を参照してください。
- 証明書マッピングを使用する: 「アイデンティティーマッピングの設定」
23.1.2.1. 証明書とユーザーアカウントの間のリンク作成
コマンドライン: 証明書とユーザーアカウントの間のリンク作成
- Identity Management の管理者としてログインします。
$
kinit admin ipa user-add-certコマンドを使用してユーザーアカウントにスマートカード証明書を追加します。以下の例を示します。$
cat cert.pem | tail -n +2 | head -n -1 | tr -d '\r\n' | ipa user-add-cert idm_user
Web UI: 証明書とユーザーアカウントの間のリンク作成
- → を選択し、対象のユーザーアカウントをクリックします。
- Certificates エントリーの横にある をクリックして証明書を入力します。
- ユーザーアカウントページの上部にある をクリックします。
その他のリソース
- 外部の証明局 (CA) が発行する証明書の追加と削除に関する詳細は、「外部 CA 発行の証明書の管理」を参照します。
23.1.2.2. 証明書およびユーザーアカウントの間のリンクの削除
コマンドライン: 証明書とユーザーアカウントの間のリンク作成
- Identity Management の管理者としてログインします。
$
kinit admin - 必要なユーザーアカウントを検索します。
$
ipa user-show idm_userUser login: idm_user First name: first_name Last name: last_name ... Certificate: MIIC3... - アカウントから証明書を削除します。
$
ipa user-remove-cert idm_user --certificate MIIC3...
Web UI: 証明書とユーザーアカウントの間のリンク削除
- → を選択し、対象のユーザーアカウントをクリックします。
- 削除する証明書の横にある をクリックして、 を選択します。
その他のリソース
23.1.2.3. Active Directory のユーザーアカウントとスマートカードのリンク
コマンドライン: Active Directory のユーザーアカウントとスマートカードのリンク
- Identity Management の管理者としてログインします。
$
kinit admin - ユーザー証明書の環境変数 (
CERT) を作成します。$
CERT=`cat cert.pem | tail -n +2 | head -n -1 | tr -d '\r\n'` - 新規 ID オーバーライドを作成してし、ユーザー証明書を ID ビューに追加します。以下の手順では、Default Trust View を使用しています。
$
ipa idoverrideuser-add 'Default Trust View' ad_user@ad.example.com --certificate $CERT
Web UI: Active Directory のユーザーアカウントとスマートカードのリンク
- → を選択し、必要な ID ビューをクリックします。
- 新規 ID オーバーライドを作成して、ユーザー証明書を ID ビューに追加します。 をクリックして、Add User ID override フォームで必要な情報を入力します。
その他のリソース
- ID ビューの管理に関する詳細は「18章ID ビュー」を参照してください。
- Default Trust View の詳細は「Active Directory 環境での ID ビューの使用」を参照してください。
23.1.2.4. アイデンティティーマッピングの設定
23.1.2.4.1. Identity Management でのアイデンティティーマッピング
- マッピングルール
- マッピングルールは、証明書を 1 つ以上のユーザーアカウントに関連付けます (または マッピングします)。このルールで、対象のユーザーアカウントと証明書を関連付ける LDAP 検索フィルターを定義します。発行した証明局 (CA) が違う証明書には、異なるプロパティーが設定されており、異なるドメインで使用される可能性があります。そのため、Identity Management は条件なしでマッピングルールを適用せず、適切な証明書にのみ適用します。照合ルール を使用して、適切な証明書を定義します。
- 照合ルール
- 照合ルールは、マッピングルールを適用する CA の証明書を選択します。
- ドメイン一覧
- ドメイン一覧は、アイデンティティーマッピングルールを処理する際に Identity Management がユーザーを検索する DNS ドメイン名を指定します。
注記
ドメインが指定されていない場合は、Identity Management により、クライアントが所属するローカルドメインのユーザーのみが検索されます。 - Priority
- 複数のルールが証明書に適用可能な場合には、最も優先順位の高いルールが先に適用され、他のルールはすべて無視されます。
- 数値が低いほど、アイデンティティーマッピングの優先度が高くなります。たとえば、優先度が 1 のルールは、2 のルールより優先順位が高くなります。
- ルールに優先順位の値が定義されていない場合には、優先順位が最も低くなります。
23.1.2.4.2. 証明書のアイデンティティーマッピングルールの作成
コマンドライン: 証明書のアイデンティティーマッピングルールの作成
- 管理者としてログインします。
$
kinit admin ipa certmaprule-addコマンドを使用してルールを作成します。アイデンティティーマッピングルールのコンポーネントを指定するには、以下のオプションを使用します。--mapruleはマッピングルールを定義します。--matchruleは照合ルールを定義します。--domainはユーザーエントリーを検索するドメインを定義します。--priorityはアイデンティティーマッピングルールの優先順位を定義します。
たとえば、マッピングルールと照合ルールのみで構成される単純なアイデンティティーマッピングルールを作成するには以下を実行します。$
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このルールは、スマートカード証明書の件名や発行者を、ユーザーアカウントのipacertmapdata属性の値とリンクします。
Web UI: 証明書のアイデンティティーマッピングルールの作成
- → を選択します。
- をクリックします。
- ルールのコンポーネントの情報を入力して を追加します。
その他のリソース
- 証明書マッピングおよび照合ルールの構文に関する詳細は sss-certmap(5) man ページを参照してください。
ipa certmaprule-addコマンドの使用方法に関する情報は--helpオプションを指定してコマンドを実行してください。- アイデンティティーマッピングの管理に関する他のコマンドは、
ipa help certmapコマンドを使用します。
23.1.2.4.3. ユーザーアカウントとスマートカード証明書のリンク
ipacertmapdata 属性に証明書の件名と発行者を保存します。
コマンドライン: ユーザーアカウントとスマートカード証明書のリンク
- 証明書にアクセスできる場合には、完全な証明書のブロブを使用します。
$
CERT=`cat cert.pem | tail -n +2| head -n -1 | tr -d '\r\n'`$ipa user-add-certmapdata idm_user --certificate $CERT-------------------------------------------- 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 - 証明書にアクセスできるが件名と発行者が分かっている場合には
--subjectおよび--issuerオプションを使用します。$
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 - マッピングの形式に精通している場合には、マッピングデータを直接指定してください。
$
ipa user-add-certmapdata idm_user 'X509:<I>O=EXAMPLE.ORG,CN=Smart Card CA<S>CN=test,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
Web UI: ユーザーアカウントとスマートカード証明書のリンク
- → をクリックして、対象のユーザーログインをクリックします。
- Certificate mapping data エントリーの横にある をクリックします。

図23.1 証明書マッピングデータの追加
- Add Certificate Mapping Data フォームで、必要な情報を入力します。以下のいずれかを指定します。
- Certificate で完全な証明書ブロブを指定します。
- Issuer and subject で件名と発行者を指定します。
- Certificate mapping data でマッピングデータを直接指定します。
その他のリソース
ipa user-add-certmapdataコマンドの詳細は--helpオプションを指定してコマンドを実行してください。
23.1.2.4.4. アイデンティティーマッピングルールの例
例23.1 Identity Management ユーザーの Active Directory の証明書
$ipa certmaprule-add ad_cert_for_ipa_users \--maprule='(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})' \--matchrule='<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com' \--domain=idm.example.com
例23.2 Active Directory ユーザーの Active Directory 証明書
$ipa certmaprule-add ad_cert_for_ad_users \--maprule='(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
例23.3 Identity Management と Active Directory ユーザー両方の Active Directory 証明書
$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 オプションの絞り込み定義には以下の条件が含まれます。
ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500}は、スマートカード証明書の件名および発行者と、Identity Management ユーザーアカウントのipacertmapdata属性値をリンクするフィルターです。altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500}は、スマートカード証明書の件名および発行者と Active Directory ユーザーアカウントのaltSecurityIdentities属性値をリンクするフィルターです。
--maprule オプションのフィルター定義では、論理演算子 | (or) が使用できるので、複数の条件を指定できます。今回の場合、このルールは 1 つ以上の条件を満たす全ユーザーアカウントをマッピングします。
例23.4 Identity Management および Active Directory ユーザーの Identity Management 証明書
$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 オプションの絞り込み定義には以下の条件が含まれます。
userCertificate;binary={cert!bin}は、Identity Management または Active Directory のユーザーエントリー (全証明書を含む) を返すフィルターです。ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500}は、スマートカード証明書の件名および発行者と、Identity Management ユーザーアカウントのipacertmapdata属性値をリンクするフィルターです。altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500}は、スマートカード証明書の件名および発行者と Active Directory ユーザーアカウントのaltSecurityIdentities属性値をリンクするフィルターです。
--maprule オプションのフィルター定義では、論理演算子 | (or) が使用できるので、複数の条件を指定できます。今回の場合、このルールは 1 つ以上の条件を満たす全ユーザーアカウントをマッピングします。
23.1.2.4.5. 証明書の発行者を照合ルールに変換する例
例23.5 Identity Management が発行する証明書の発行者の変換
# openssl x509 -in user.crt -noout -issuer
issuer= /O=REALM.EXAMPLE.COM/CN=Certificate Authority'<ISSUER>CN=Certificate Authority,O=REALM.EXAMPLE.COM'
例23.6 メールを含む証明書の発行者の変換
# openssl x509 -in expired_user.pem -noout -issuer
issuer= /C=US/ST=North Carolina/L=Raleigh/O=Red Hat/OU=QE/CN=ExampleCA/emailAddress=admin@example.com'<ISSUER>emailAddress=admin@example.com,CN=ExampleCA,OU=QE,O=Red Hat,L=Raleigh,ST=North Carolina,C=US'
23.1.2.5. その他のリソース
- スマートカードの証明書のリンクを検証するには「指定の証明書と合致するユーザーの検索」を参照してください。
- 証明書のアイデンティティーマッピングに関する詳しい情報は、アップストリームの SSSD ドキュメントの「Matching and Mapping Certificates」を参照してください。
23.1.3. 指定の証明書と合致するユーザーの検索
コマンドライン: 指定の証明書と合致するユーザーの検索
- 管理者としてログインします。
$
kinit admin - ユーザーを検索するには、以下のいずれかを指定します。
- 証明書ファイルの名前:
$
ipa certmap-match cert.pem-------------- 1 user matched -------------- Domain: IDM.EXAMPLE.COM User logins: idm_user ---------------------------- Number of entries returned 1 ---------------------------- - 証明書の内容:
$
ipa certmap-match --certificate="MII...."-------------- 1 user matched -------------- Domain: IDM.EXAMPLE.COM User logins: idm_user ---------------------------- Number of entries returned 1 ----------------------------ユーザーエントリーに完全な証明書のブロブが含まれる場合には、このコマンドは、信頼される Active Directory ドメインでユーザーも返します。$
ipa certmap-match --certificate="MII...."--------------- 2 users matched --------------- Domain: ad.domain.com User logins: ad_user Domain: IDM.EXAMPLE.COM User logins: idm_user ---------------------------- Number of entries returned 2 ----------------------------
Web UI: 指定の証明書と合致するユーザーの検索
- → → をクリックします。
- Certificate フィールドの証明書の内容を入力して をクリックします。Identity Management は、Matched Users に証明書と合致するユーザーを表示します。

図23.2 証明書と合致するユーザーの表示
その他のリソース
- 証明書のアイデンティティーマッピングのコマンドに関する詳細は、
ipa help certmapコマンドを使用します。 ipa certmap-matchコマンドの詳細は--helpオプションを指定してコマンドを実行してください。
23.1.4. その他のリソース
- Red Hat Certificate System のアプリケーション、Enterprise Security Client を使用して個人の証明書やキーを管理する情報は、Certificate System ドキュメントの「Managing Smart Cards with the Enterprise Security Client」を参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.