9.4. IdM に保存されたユーザーの証明書マッピングの設定
ユーザーに設定されている証明書認証が IdM に保存されている場合に IdM で証明書マッピングを有効にするには、システム管理者は次のタスクを完了する必要があります。
- 証明書マッピングルールを設定して、マッピングルールおよび証明書マッピングデータエントリーで指定された条件に一致する証明書を持つ IdM ユーザーが IdM に対して認証できるようにします。
- IdM ユーザーエントリーに証明書マッピングデータを入力すると、証明書マッピングデータエントリーで指定された値がすべて含まれている場合に、ユーザーが複数の証明書を使用して認証できるようになります。
前提条件
- IdM にユーザーがアカウントがある。
- 管理者が、ユーザーエントリーに追加する証明書全体または証明書マッピングデータのいずれかを所有している。
9.4.1. IdM Web UI で証明書マッピングルールの追加
- 管理者として IdM Web UI にログインします。
-
Authentication
Certificate Identity Mapping Rules
Certificate 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 にログインします。
-
Users
Active users
idm_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_user
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_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 $CERT
idm_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_user
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_user
に追加され、対応するマッピングルールが存在することを確認します。これは、定義した証明書マッピングデータに一致する証明書を使用して、idm_user
として認証できることを意味します。