23.2. スマートカードで Identity Management クライアントへ認証する方法

Identity Management サーバーで複数のロールアカウントが指定された Identity Management ユーザーとして、スマートカードを使用して、Identity Management ドメインに参加するデスクトップクライアントシステムに対して認証を行うことができます。
サポートされているオプションの基本的な概要については、以下を参照してください。
認証が有効な環境を設定するための情報は、以下を参照してください。
認証方法に関する情報は、以下を参照してください。

23.2.1. Identity Management クライアントでサポートされるスマートカード認証オプション

Identity Management のユーザーは、Identity Management クライアントでスマートカードを使用して認証する際に、以下のオプションを使用できます。
ローカル認証
ローカル認証には、以下を使用した認証が含まれます。
  • テキストコンソール
  • Gnome Display Manager (GDM) などのグラフィカルコンソール
  • su または sudo などのローカル認証サービス
ssh でのリモート認証
スマートカードの証明書は、PIN で保護される SSH の秘密鍵と合わせて保存されます。
FTP などの他のサービスを使用するスマートカードベースの認証はサポートされていません。

23.2.2. スマートカード認証に向けた 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
さらに、外部の証明局 (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.2.3. コンソールログインを使用してスマートカードで Identity Management クライアントへ認証する方法

Identity Management ユーザーとして認証するには、ユーザー名と PIN を入力します。
  • コマンドラインからログインする場合:
    client login: idm_user
    PIN for PIV Card Holder pin (PIV_II) for user idm_user@idm.example.com:
  • Gnome Desktop Manager (GDM) を使用してログインすると、GDM により、所定のユーザー名を選択した後にスマートカードと PIN が求められます。
    Gnome Desktop Manager でのスマートカードの PIN の入力

    図23.3 Gnome Desktop Manager でのスマートカードの PIN の入力

Active Directory ユーザーとして認証するには、AD.EXAMPLE.COM\ad_user または ad_user@AD.EXAMPLE.COM など、NetBIOS ドメイン名を使用する形式でユーザー名を入力します。
認証が失敗した場合には、「スマートカード認証の失敗」を参照してください。

23.2.4. ローカルシステムからリモートシステムへの認証

ローカルシステムで以下の手順を実行します。
  1. スマートカードを挿入します。
  2. ssh を起動して -I オプションで PKCS#11 ライブラリーを指定します。
    • Identity Management ユーザーとして以下を実行します。
      $ ssh -I /usr/lib64/opensc-pkcs11.so -l idm_user server.idm.example.com
      
      Enter PIN for 'PIV_II (PIV Card Holder pin)':
      Last login: Thu Apr  6 12:49:32 2017 from 10.36.116.42
    • Active Directory ユーザーとして以下を実行します。
      $ ssh -I /usr/lib64/opensc-pkcs11.so -l ad_user@ad.example.com server.idm.example.com
      
      Enter PIN for 'PIV_II (PIV Card Holder pin)':
      Last login: Thu Apr  6 12:49:32 2017 from 10.36.116.42
  3. オプション: id ユーティリティーを使用して所定のユーザーとしてログインしていることを確認します。
    • Identity Management ユーザーとして以下を実行します。
      $ id
      uid=1928200001(idm_user) gid=1928200001(idm_user) groups=1928200001(idm_user) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    • Active Directory ユーザーとして以下を実行します。
      $ id
      uid=1171201116(ad_user@ad.example.com) gid=1171201116(ad_user@ad.example.com) groups=1171201116(ad_user@ad.example.com),1171200513(domain users@ad.example.com) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
認証が失敗した場合には、「スマートカード認証の失敗」を参照してください。

23.2.5. 関連資料

  • ssh を使用してスマートカードで認証を行うと、リモートシステムの TGT (Ticket Granting Ticket) は取得されません。リモートシステムで TGT を取得するには、管理者はローカルシステムに Kerberos を設定して、Kerberos の委譲を有効化する必要があります。所定の設定例は、「this Kerberos knowledge base entry」を参照してください。
  • OpenSSH でのスマートカード認証の詳細は、『セキュリティーガイド』の「OpenSSH に認証情報を提供するスマートカードの使用」を参照してください。