Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.5. Identity Management での PKINIT スマートカード認証

Identity Management ユーザーは、スマートカードを使用して、Identity Management に登録されているデスクトップクライアントシステムに対して認証を行い、自動的に TGT (Ticket-Granting Ticket) を取得することができます。ユーザーは、クライアントからチケットを使用して、さらにシングルサインオン (SSO) 認証を行うことができます。

23.5.1. PKINIT 認証に向けた Identity Management クライアントの準備

Identity Management の管理者として、ユーザー認証を行うクライアントマシンで以下の手順を実行します。
  1. サーバーで、shell スクリプトを作成してクライアントを設定します。
    1. ipa-advise config-client-for-smart-card-auth コマンドを使用して出力をファイルに保存します。
      # ipa-advise config-client-for-smart-card-auth > client_smart_card_script.sh
    2. スクリプトファイルを開き、内容を確認します。
    3. chmod ユーティリティーを使用して実行パーミッションをファイルに追加します。
      # chmod +x client_smart_card_script.sh
  2. スクリプトをクライアントにコピーして実行します。スマートカード証明書を署名した認証局 (CA) を含む PEM ファイルへのパスを追加します。
    # ./client_smart_card_script.sh CA_cert.pem
  3. krb5-pkinit パッケージがインストールされていることを確認します。
さらに、外部の証明局 (CA) がスマートカードの証明書を署名した場合に、スマートカード CA を信頼された CA として追加します。
  1. Identity Management サーバーで CA 証明書をインストールします。
    # ipa-cacert-manage -n "SmartCard CA" -t CT,C,C install ca.pem
    # ipa-certupdate
    すべてのレプリカおよびクライアントでも ipa-certupdate を繰り返します。
  2. HTTP サーバーを再起動します。
    # systemctl restart httpd
    すべてのレプリカでも systemctl restart httpd を実行します。

注記

SSSD では、管理者は certificate_verification パラメーターで証明書の検証プロセスを調節できます。たとえば、証明書に定義されている Online Certificate Status Protocol (OCSP) サーバーは、クライアントから到達できません。詳しい情報は 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 モジュールを指定します。詳しい情報は、kinit(1) の man ページを参照してください。

23.5.3. Active Directory ユーザー: Identity Management クライアントでの PKINIT を使用した認証

前提条件

管理者として、環境が Active Directory ユーザーの PKINIT 認証をサポートするように設定します。
  • Active Directory サーバーが、スマートカード証明書を発行する認証局 (CA) を信頼するように設定します。NTAuth ストアに CA をインポートして (Microsoft サポート を参照)、信頼された CA として CA を追加します。詳細は Active Directory ドキュメントを参照してください。
  • スマートカード証明書を発行する CA を信頼するように Kerberos クライアントを設定します。
    1. Identity Management クライアントで /etc/krb5.conf ファイルを開きます。
    2. ファイルに以下の行を追加します。
      [libdefaults]
      [... file truncated ...]
       pkinit_eku_checking = kpServerAuth
       pkinit_kdc_hostname = adserver.ad.domain.com
  • ユーザー証明書に、証明書失効リスト (CRL: Certificate Revocation List) の Distribution Point Extension が含まれていない場合には、Active Directory が失効エラーを無視するように設定します。
    1. 以下の 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 アプリケーションを使用して手動で値を設定します。
    2. Windows システムを再起動して変更を適用します。

手順

Identity Management クライアントで kinit ユーティリティーを使用して認証し、ユーザーとドメイン名で Active Directory ユーザーを指定します。
$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' ad_user@ad.domain.com
-X オプションは、事前認証の属性として opensc-pkcs11.so モジュールを指定します。詳しい情報は、kinit(1) の man ページを参照してください。