20.16.8. スマートカードデバイス
仮想スマートカードデバイスは、
smartcard
要素を介してゲスト仮想マシンに提供することができます。ホストマシン上の USB スマートカードリーダーデバイスは、ホストとゲストの両方が使用できるようにすることはできず、ゲストから削除されたときにホストコンピューターをロックできるため、単純なデバイスパススルーを使用するゲストでは使用できません。したがって、一部のハイパーバイザーは、ゲスト仮想マシンにスマートカードインターフェイスを提示できる特別な仮想デバイスを提供します。これには、ホストマシンから、またはサードパーティーのスマートカードプロバイダーによって作成されたチャンネルから認証情報を取得する方法を説明するいくつかのモードがあります。キャラクターデバイスを介した USB デバイスリダイレクトのパラメーターを設定するには、ドメイン XML の次のセクションを編集します。
図20.34 デバイス - スマートカードデバイス
... <devices> <smartcard mode='host'/> <smartcard mode='host-certificates'> <certificate>cert1</certificate> <certificate>cert2</certificate> <certificate>cert3</certificate> <database>/etc/pki/nssdb/</database> </smartcard> <smartcard mode='passthrough' type='tcp'> <source mode='bind' host='127.0.0.1' service='2001'/> <protocol type='raw'/> <address type='ccid' controller='0' slot='0'/> </smartcard> <smartcard mode='passthrough' type='spicevmc'/> </devices> ...
smartcard
要素には必須の属性mode
があります。次のモードがサポートされています。各モードで、ゲスト仮想マシンは、物理 USB CCID(チップ/スマートカードインターフェイスデバイス) カードのように動作する USB バス上のデバイスを認識します。
モードの属性は、以下のとおりです。
パラメーター | 説明 |
---|---|
mode='host' | このモードでは、ハイパーバイザーはゲスト仮想マシンからのすべての直接アクセス要求を、NSS を介してホスト物理マシンのスマートカードに中継します。その他の属性やサブ要素は必要ありません。オプションの address サブ要素の使用方法は、以下を参照してください。 |
mode='host-certificates' | このモードでは、スマートカードをホスト物理マシンに接続させることなく、ホスト物理マシンのデータベースに存在する 3 つの NSS 証明書名を指定できます。これらの証明書は、certutil -d /etc/pki/nssdb -x -t CT,CT,CT -S -s CN=cert1 -n cert1, コマンドを使用して生成できます。生成される 3 つの証明書名は、それぞれ 3 つの certificate サブ要素の内容として提供する必要があります。追加のサブ要素の database では、代替ディレクトリーの絶対パスを指定できます (証明書の作成時の certutil コマンドの -d オプションに一致)。指定しないと /etc/pki/nssdb にデフォルトが設定されます。 |
mode='passthrough' | このモードでは、ハイパーバイザーがホスト物理マシンと直接通信するのではなく、セカンダリーキャラクターデバイスを介してすべての要求をサードパーティープロバイダーにトンネリングできます。サードパーティープロバイダーは、スマートカードと通信するか、3 つの証明書ファイルを使用します。このモードでは、トンネルのホスト物理マシン側を説明するために、対応しているシリアルデバイスタイプの 1 つに一致する追加の属性type が必要になります。type='tcp' または type='spicevmc' (SPICE グラフィックデバイスのスマートカードチャネルを使用) が一般的です。target サブ要素は必要ありませんが、source などのサブ要素は、指定のタイプに応じて必要になる場合があります (キャラクターデバイスのコンシューマーはゲスト仮想マシンに表示されるデバイスではなく、ハイパーバイザー自体であるため)。 |
各モードは、オプションのサブ要素
address
をサポートしています。これは、スマートカードと ccid バスコントローラーとの間の関連を微調整します (「デバイスアドレス」 を参照してください)。