9.8. AD ユーザーエントリーに証明書やマッピングデータが含まれていない場合に、証明書マッピングの設定
このユーザーストーリーでは、IdM デプロイメントが Active Directory (AD) を信頼し、そのユーザーが AD に保存され、AD のユーザーエントリーに証明書全体または証明書マッピングデータが含まれる場合に、IdM で証明書マッピングを有効にするのに必要な手順を説明します。
前提条件
- IdM にユーザーアカウントがない。
-
ユーザーのアカウントがある AD に、証明書全体、または
altSecurityIdentities
属性、IdMcertmapdata
属性で AD に相当するものがない。 IdM 管理者は次のいずれかを実行しました。
-
AD ユーザー証明書全体を IdM の AD ユーザーの
user ID override
に追加しました。 - サブジェクト代替名やユーザーの SID など、証明書内の代替フィールドにマップする証明書マッピングルールを作成しました。
-
AD ユーザー証明書全体を IdM の AD ユーザーの
9.8.1. IdM Web UI で証明書マッピングルールの追加
- 管理者として IdM Web UI にログインします。
-
Authentication
Certificate Identity Mapping Rules
Certificate Identity Mapping Rules
の順に移動します。 Add
をクリックします。図9.9 IdM Web UI で新しい証明書マッピングルールの追加
- ルール名を入力します。
マッピングルールを入力します。認証するために IdM に提示された証明書全体を、IdM の AD ユーザーエントリーのユーザー ID オーバーライドエントリーに保存されている証明書と比較できるようにするには、次のコマンドを実行します。
(userCertificate;binary={cert!bin})
注記証明書には SAN としてのユーザープリンシパル名も含まれており、最新の更新では証明書の SID 拡張子にユーザーの SID も含まれているため、これらのフィールドを使用して証明書をユーザーにマップすることもできます。たとえば、ユーザーの SID を使用する場合は、このマッピングルールを
LDAPU1:(objectsid={sid})
に置き換えます。証明書マッピングの詳細は、sss-certmap
の man ページを参照してください。マッチングルールを入力します。たとえば、
AD.EXAMPLE.COM
ドメインのAD-ROOT-CA
が発行する証明書のみを認証できるようにするには、次のコマンドを実行します。<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
ドメイン名を入力します。たとえば、
ad.example.com
ドメインでユーザーを検索するには、以下を実行します。図9.10 AD に証明書やマッピングデータが保存されていないユーザーに対する証明書マッピングルール
-
Add
をクリックします。 System Security Services Daemon (SSSD) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールがすぐに読み込まれるようにするには、CLI で SSSD を再起動します。
# systemctl restart sssd
9.8.2. IdM CLI での証明書マッピングルールの追加
管理者の認証情報を取得します。
# kinit admin
マッピングルールを入力し、マッピングルールの基となっているマッチングルールを入力します。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注記証明書には SAN としてのユーザープリンシパル名も含まれており、最新の更新では証明書の SID 拡張子にユーザーの SID も含まれているため、これらのフィールドを使用して証明書をユーザーにマップすることもできます。たとえば、ユーザーの SID を使用する場合は、このマッピングルールを
LDAPU1:(objectsid={sid})
に置き換えます。証明書マッピングの詳細は、sss-certmap
の man ページを参照してください。System Security Services Daemon (SSSD) は、証明書マッピングルールを定期的に再読み込みします。新たに作成したルールがすぐに読み込まれるようにする場合は、次のコマンドを実行して SSSD を再起動します。
# systemctl restart sssd
9.8.3. IdM Web UI で、AD ユーザーの ID オーバーライドに証明書を追加
-
Identity
ID Views
Default Trust View
の順に選択します。 Add
をクリックします。図9.11 IdM Web UI で新規ユーザー ID オーバーライドの追加
-
User to override
フィールドに、ad_user@ad.example.com
と入力します。 ad_user
の証明書を、Certificate
フィールドにコピーアンドペーストします。図9.12 AD ユーザーにユーザー ID オーバーライドの設定
-
Add
をクリックします。
検証
ユーザーと証明書がリンクしていることを確認します。
sss_cache
ユーティリティーを使用して、SSSD キャッシュでad_user@ad.example.com
のレコードを無効にし、ad_user@ad.example.com
情報の再読み込みを強制します。# sss_cache -u ad_user@ad.example.com
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
に追加した証明書マッピングデータがあり、Adding a certificate mapping rule if the AD user entry contains no certificate or mapping data で定義した対応するマッピングルールが存在することを確認します。これは、定義した証明書マッピングデータに一致する証明書を使用して、ad_user@ad.example.com
として認証できることを意味します。
9.8.4. IdM CLI で、AD ユーザーの ID オーバーライドに証明書を追加する
管理者の認証情報を取得します。
# kinit admin
証明書 blob を
CERT
という新しい変数に格納します。# CERT=$(openssl x509 -in /path/to/certificate -outform der|base64 -w0)
ipa idoverrideuser-add-cert
コマンドを使用して、ad_user@ad.example.com
の証明書をユーザーアカウントに追加します。# ipa idoverrideuser-add-cert ad_user@ad.example.com --certificate $CERT
検証
ユーザーと証明書がリンクしていることを確認します。
sss_cache
ユーティリティーを使用して、SSSD キャッシュでad_user@ad.example.com
のレコードを無効にし、ad_user@ad.example.com
情報の再読み込みを強制します。# sss_cache -u ad_user@ad.example.com
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
に追加した証明書マッピングデータがあり、Adding a certificate mapping rule if the AD user entry contains no certificate or mapping data で定義した対応するマッピングルールが存在することを確認します。これは、定義した証明書マッピングデータに一致する証明書を使用して、ad_user@ad.example.com
として認証できることを意味します。