23.5. Identity Management での PKINIT スマートカード認証
Identity Management ユーザーは、Identity Management に参加しているデスクトップクライアントシステムにスマートカードを使用して認証し、Kerberos チケット保証チケット (TGT) を自動的に取得できます。ユーザーは、チケットを使用してクライアントから追加のシングルサインオン (SSO) 認証を行うことができます。
23.5.1. PKINIT 認証のための Identity Management クライアントの準備
Identity Management 管理者は、ユーザーが認証するクライアントで以下の手順を実行します。
- サーバーで、クライアントを設定するためのシェルスクリプトを作成します。
- ipa-advise config-client-for-smart-card-auth コマンドを使用し、その出力をファイルに保存します。
# ipa-advise config-client-for-smart-card-auth > client_smart_card_script.sh
- スクリプトファイルを開き、内容を確認します。
chmod
ユーティリティーを使用して、実行パーミッションをファイルに追加します。# chmod +x client_smart_card_script.sh
- スクリプトをクライアントにコピーし、実行します。スマートカード証明書を署名した認証局 (CA) を含む PEM ファイルへのパスを追加します。
# ./client_smart_card_script.sh CA_cert.pem
- krb5-pkinit パッケージがインストールされていることを確認します。
また、外部認証局 (CA) がスマートカードの証明書に署名した場合は、スマートカード CA を信頼できる CA として追加します。
- Identity Management サーバーで、CA 証明書をインストールします。
# ipa-cacert-manage -n "SmartCard CA" -t CT,C,C install ca.pem # ipa-certupdate
すべてのレプリカおよびクライアントでもipa-certupdate
を繰り返します。 - HTTP サーバーを再起動します。
# systemctl restart httpd
すべてのレプリカでも systemctl restart httpd を実行します。
注記
SSSD を使用すると、管理者は、証明書に定義された Online Certificate Status Protocol (OCSP) サーバーがクライアントから到達できない場合など、
certificate_verification
パラメーターを使用して証明書の検証プロセスをチューニングできます。詳細は、sssd.conf(5) の man ページを参照してください。
23.5.2. Identity Management ユーザーとして - Identity Management クライアントでの PKINIT を使用した認証
Identity Management クライアントで
kinit
ユーティリティーを使用して認証します。
$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user
-X
オプションは opensc-pkcs11.so
モジュールを pre-authentication 属性として指定します。詳細は kinit(1) の man ページを参照してください。
23.5.3. Active Directory ユーザーとして - Identity Management クライアントでの PKINIT を使用した認証
前提条件
管理者は、Active Directory ユーザーの PKINIT 認証を使用するように環境を設定します。
- スマートカード証明書を発行した認証局 (CA) を信頼するように Active Directory サーバーを設定します。NTAuth ストアに CA をインポートして (Microsoft サポートを参照)、CA を信頼できる CA として追加します。詳細は、Active Directory のドキュメントを参照してください。
- スマートカード証明書を発行した CA を信頼するように Kerberos クライアントを設定します。
- Identity Management クライアントで
/etc/krb5.conf
ファイルを開きます。 - ファイルに以下の行を追加します。
[libdefaults] [... file truncated ...] pkinit_eku_checking = kpServerAuth pkinit_kdc_hostname = adserver.ad.domain.com
- ユーザー証明書に証明書失効リスト (CRL) ディストリビューションポイント拡張が含まれていない場合は、Active Directory を設定して失効エラーを無視します。
- 以下の REG 形式のコンテンツをプレーンテキストファイルに保存し、ファイルをダブルクリックして Windows レジストリーにインポートします。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc] "UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\Kerberos\Parameters] "UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors"=dword:00000001
または、regedit.exe
アプリケーションを使用して手動で値を設定します。 - Windows システムを再起動して変更を適用します。
手順
Identity Management クライアントで
kinit
ユーティリティーを使用して認証します。Active Directory ユーザーに、ユーザー名とドメイン名を指定します。
$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' ad_user@AD.DOMAIN.COM
-X
オプションは opensc-pkcs11.so
モジュールを pre-authentication 属性として指定します。詳細は kinit(1) の man ページを参照してください。