Red Hat Training

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

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

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

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

Identity Management 管理者は、ユーザーが認証するクライアントで以下の手順を実行します。
  1. サーバーで、クライアントを設定するためのシェルスクリプトを作成します。
    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 を使用すると、管理者は、証明書に定義された 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 クライアントを設定します。
    1. Identity Management クライアントで /etc/krb5.conf ファイルを開きます。
    2. ファイルに以下の行を追加します。
      [libdefaults]
      [... file truncated ...]
       pkinit_eku_checking = kpServerAuth
       pkinit_kdc_hostname = adserver.ad.domain.com
  • ユーザー証明書に証明書失効リスト (CRL) ディストリビューションポイント拡張が含まれていない場合は、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 モジュールを pre-authentication 属性として指定します。詳細は kinit(1) の man ページを参照してください。