はじめに
AnyConnect VPN の接続時、クライアント証明書認証を使用する際に、証明書選択のポップアップ画面で手動でクライアント証明書を選択するか、もしくは自動で選択させることが可能です。
本ドキュメントは、クライアント証明書の選択方法を制御するための設定例と確認方法を紹介します。本ドキュメントは、ASAv バージョン9.16(3)、ASDMバージョン7.18.1 と AnyConnectバージョン 4.10.01075 を用いて確認、作成しています。
なお、クライアント証明書選択を制御するための機能はWindowsのみで利用できますのでご注意ください。
構成
本ドキュメントは、以下のネットワーク構成で作成しています。

前提
1. Anyconnect 端末にて、複数のクライアント証明書がインストールされている
2. ASA にて、クライアント証明書の発行元のCA証明書がインストールされている
3. ASA にて、以下の通りにパスワード認証と証明書認証がを設定されている
認証に関する設定例:
tunnel-group tgname type remote-access
tunnel-group tgname general-attributes
address-pool SSLPOOL
default-group-policy GP_name
tunnel-group tgname webvpn-attributes
authentication aaa certificate ←パスワード認証と証明書認証の両方が設定します。
group-alias tgname01 enable
ASDMでの設定
証明書の選択ルール(自動)を制御するためのプロファイルを作成します。

動作確認
1. Anyconnectの接続を実施します。

2. 初回、Anyconnectの接続を実施した後、ASDM上で設定されたプロファイルがローカル端末にダウンロードされます。
場所:
C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Profile
プロファイル内容の例:
<AutomaticCertSelection UserControllable="true">true</AutomaticCertSelection>
3. Anyconnect の切断・再接続を実施すると、クライアント証明書の選択画面が表示されず、パスワード認証画面で認証情報を入力した後、正常に接続できます。
4. ASDM上で、「Disable Automatic Certificate selection」項目をチェックし、Applyします。

5. Anyconnectの切断・再接続を実施すると、ローカル端末のプロファイルが更新されます。
プロファイル内容の例:
<AutomaticCertSelection UserControllable="true">false</AutomaticCertSelection>
6. Anyconnectの切断・再接続を実施すると、クライアント証明書の選択画面が表示され、クライアント証明書を選択し、パスワード認証画面で認証情報を入力した後、正常に接続できます。

端末毎に証明書選択ルールの調整例
ASDM上で、クライアント証明書の選択ルールを自動に設定している状態で、特定な端末のみに対し手動でクライアント証明書の選択を実施したい場合、その端末で設定することも可能です。
1. 上記の動作確認例のステップ「3.」で、AnyConnectアプリの歯車アイコンをクリックすると、「Preferences」タブで「Enable automatic certificate selection」項目がデフォルトでチェックされていますので、当該項目のチェックを外します。

2. 対象端末のpreferences.xmlにクライアント証明書の自動選択がfalseに変更されます。この時点に、プロファイル中の「AutomaticCertSelection」項目が「true」となっていますが、preferences.xmlファイル中の内容(AutomaticCertSelection = false)が優先されます。
場所:
C:\Users\cisco\AppData\Local\Cisco\Cisco AnyConnect Secure Mobility Client
preferences.xml内容の例:
<AutomaticCertSelection>false</AutomaticCertSelection>
3. Anyconnectの切断・再接続を実施すると、クライアント証明書の選択画面が表示されます。クライアント証明書を選択し、パスワード認証画面で認証情報を入力した後、正常に接続できます。

よくある質問
端末側でクライアント証明書の選択ルール(自動、もしくは、手動)を変更させない方法を教えてください
端末側で変更できるかどうかに関する制御はプロファイル中の「User Controllable」項目により、以下の通りに制御されます。ASDM側で当該項目の変更を実施した後、新しいプロファイルを端末に反映させるためには、Anyconnectの切断・再接続を実施してください。
・「User Controllable」がチェックされている場合(UserControllable="true"):
Anyconnect接続後、アプリの歯車アイコンをクリックし、「Preferences」タブで「Enable automatic certificate selection」項目が表示され、各端末のユーザにより、証明書の選択ルールを変更できます。
・「User Controllable」がチェックされていない場合(UserControllable="false"):
Anyconnect接続後、アプリの歯車アイコンをクリックすると、「Preferences」タブで「Enable automatic certificate selection」項目が表示されず、各端末のユーザにより、証明書の選択ルールを変更できません。
参考情報
https://www.cisco.com/c/en/us/td/docs/security/vpn_client/anyconnect/anyconnect410/administration/guide/b-anyconnect-admin-guide-4-10/anyconnect-profile-editor.html