9.4. IdM に保存されたユーザーの証明書マッピングの設定
ユーザーに設定されている証明書認証が IdM に保存されている場合に IdM で証明書マッピングを有効にするには、システム管理者は次のタスクを完了する必要があります。
- 証明書マッピングルールを設定して、マッピングルールおよび証明書マッピングデータエントリーで指定された条件に一致する証明書を持つ IdM ユーザーが IdM に対して認証できるようにします。
- IdM ユーザーエントリーに証明書マッピングデータを入力すると、証明書マッピングデータエントリーで指定された値がすべて含まれている場合に、ユーザーが複数の証明書を使用して認証できるようになります。
前提条件
- IdM にユーザーがアカウントがある。
- 管理者が、ユーザーエントリーに追加する証明書全体または証明書マッピングデータのいずれかを所有している。
9.4.1. IdM Web UI で証明書マッピングルールの追加 リンクのコピーリンクがクリップボードにコピーされました!
- 管理者として IdM Web UI にログインします。
-
AuthenticationCertificate Identity Mapping RulesCertificate Identity Mapping Rulesの順に移動します。 Addをクリックします。図9.1 IdM Web UI で新しい証明書マッピングルールの追加
- ルール名を入力します。
マッピングルールを入力します。たとえば、IdM に提示された証明書の
IssuerおよびSubjectエントリーを Idm で検索し、提示された証明書に含まれるこの 2 つのエントリーで見つかった情報に基づいて認証するかどうかを決定するには、次のコマンドを実行します。(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})マッチングルールを入力します。たとえば、
EXAMPLE.ORG組織のスマートカード CAが発行する証明書のみが IdM に対して認証できるようにするには、次のコマンドを実行します。<ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG図9.2 IdM Web UI への証明書マッピングルールの詳細の入力
-
ダイアログボックスの下部にある
Addをクリックして、ルールを追加し、ダイアログボックスを閉じます。 System Security Services Daemon (SSSD) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールがすぐに読み込まれるようにする場合は、次のコマンドを実行して SSSD を再起動します。
# systemctl restart sssd
これで、証明書マッピングルールセットが設定され、スマートカードの証明書で検出されたマッピングルールで指定されたデータの種類と、IdM ユーザーエントリーの証明書マッピングデータを比較します。一致するファイルが見つかると、一致するユーザーが認証されます。
9.4.2. IdM CLI での証明書マッピングルールの追加 リンクのコピーリンクがクリップボードにコピーされました!
管理者の認証情報を取得します。
# kinit adminマッピングルールを入力し、マッピングルールの基となっているマッチングルールを入力します。たとえば、提示する証明書内の
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: TRUESystem Security Services Daemon (SSSD) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールがすぐに読み込まれるようにする場合は、次のコマンドを実行して SSSD を再起動します。
# systemctl restart sssd
これで、証明書マッピングルールセットが設定され、スマートカードの証明書で検出されたマッピングルールで指定されたデータの種類と、IdM ユーザーエントリーの証明書マッピングデータを比較します。一致するファイルが見つかると、一致するユーザーが認証されます。
9.4.3. IdM Web UI のユーザーエントリーへの証明書マッピングデータの追加 リンクのコピーリンクがクリップボードにコピーされました!
- 管理者として IdM Web UI にログインします。
-
UsersActive usersidm_userに移動します。 -
Certificate mapping dataオプションを見つけ、Addをクリックします。 以下のいずれかのオプションを選択します。
idm_userの証明書がある場合:コマンドラインで、
catユーティリティーまたはテキストエディターを使用して証明書を表示します。[root@server ~]# cat idm_user_certificate.pem -----BEGIN CERTIFICATE----- MIIFFTCCA/2gAwIBAgIBEjANBgkqhkiG9w0BAQsFADA6MRgwFgYDVQQKDA9JRE0u RVhBTVBMRS5DT00xHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0x ODA5MDIxODE1MzlaFw0yMDA5MDIxODE1MzlaMCwxGDAWBgNVBAoMD0lETS5FWEFN [...output truncated...]- 証明書をコピーします。
IdM Web UI で、
Certificateの横にあるAddをクリックして、開いたウィンドウに証明書を貼り付けます。図9.3 ユーザーの証明書マッピングデータの追加 - 証明書
-
idm_userの証明書を自由に使用できないけれど、証明書のIssuerおよびSubjectがわかっている場合は、Issuer and subjectのラジオボタンをオンにして、2 つのそれぞれのボックスに値を入力します。
図9.4 ユーザーの証明書マッピングデータの追加 - 発行者および発行先
-
-
Addをクリックします。
検証
必要に応じて、.pem 形式の証明書全体へのアクセスがある場合は、ユーザーと証明書がリンクされていることを確認します。
sss_cacheユーティリティーを使用して、SSSD キャッシュでidm_userの記録を無効にし、idm_user情報を再読み込みします。# sss_cache -u idm_useripa 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_userに追加され、対応するマッピングルールが存在することを確認します。これは、定義した証明書マッピングデータに一致する証明書を使用して、idm_userとして認証できることを意味します。
9.4.4. IdM CLI のユーザーエントリーへの証明書マッピングデータの追加 リンクのコピーリンクがクリップボードにコピーされました!
管理者の認証情報を取得します。
# kinit admin以下のいずれかのオプションを選択します。
-
idm_userの証明書をお持ちの場合は、ipa user-add-certコマンドを使用して証明書をユーザーアカウントに追加します。
# CERT=$(openssl x509 -in idm_user_cert.pem -outform der|base64 -w0) # ipa user-add-certmapdata idm_user --certificate $CERTidm_userの証明書を持っていないが、ユーザーの証明書の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
-
検証
必要に応じて、.pem 形式の証明書全体へのアクセスがある場合は、ユーザーと証明書がリンクされていることを確認します。
sss_cacheユーティリティーを使用して、SSSD キャッシュでidm_userの記録を無効にし、idm_user情報を再読み込みします。# sss_cache -u idm_useripa 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_userに追加され、対応するマッピングルールが存在することを確認します。これは、定義した証明書マッピングデータに一致する証明書を使用して、idm_userとして認証できることを意味します。