クライアント証明書または証明書とドメイン認証
XenMobile®のデフォルト構成は、ユーザー名とパスワード認証です。XenMobile環境への登録とアクセスに別のセキュリティ層を追加するには、証明書ベースの認証の使用を検討してください。XenMobile環境では、この構成はセキュリティとユーザーエクスペリエンスの最良の組み合わせです。証明書とドメイン認証は、Citrix ADCでの二要素認証によって提供されるセキュリティと相まって、最高のSSOの可能性を秘めています。
最適な使いやすさのために、証明書とドメイン認証をCitrix PINおよびActive Directoryパスワードキャッシュと組み合わせることができます。その結果、ユーザーはLDAPユーザー名とパスワードを繰り返し入力する必要がありません。ユーザーは、登録、パスワードの有効期限切れ、およびアカウントロックアウトのためにユーザー名とパスワードを入力します。
重要:
XenMobileは、ユーザーがXenMobileにデバイスを登録した後、認証モードをドメイン認証から他の認証モードに変更することをサポートしていません。
LDAPを許可せず、スマートカードまたは類似の方法を使用する場合、証明書を構成することで、スマートカードをXenMobileに提示できます。その後、ユーザーはXenMobileが生成する一意のPINを使用して登録します。ユーザーがアクセス権を取得すると、XenMobileはXenMobile環境への認証に使用される証明書を作成および展開します。
Citrix ADC証明書のみの認証または証明書とドメイン認証を使用する場合、Citrix ADC for XenMobileウィザードを使用してXenMobileに必要な構成を実行できます。Citrix ADC for XenMobileウィザードは1回のみ実行できます。
高度なセキュリティ環境では、組織外のパブリックネットワークまたは安全でないネットワークでのLDAP資格情報の使用は、組織にとって主要なセキュリティ上の脅威と見なされます。高度なセキュリティ環境では、クライアント証明書とセキュリティトークンを使用する二要素認証がオプションです。詳細については、「証明書とセキュリティトークン認証のためのXenMobileの構成」を参照してください。
クライアント証明書認証は、XenMobile MAMモード(MAMのみ)およびENTモード(ユーザーがMDMに登録する場合)で利用できます。ユーザーがレガシーMAMモードに登録する場合、XenMobile ENTモードではクライアント証明書認証は利用できません。XenMobile ENTおよびMAMモードでクライアント証明書認証を使用するには、Microsoftサーバー、XenMobileサーバー、およびCitrix Gatewayを構成する必要があります。この記事で説明されている一般的な手順に従ってください。
Microsoftサーバーで:
-
Microsoft Management Consoleに証明書スナップインを追加します。
-
証明機関 (CA) にテンプレートを追加します。
-
CAサーバーからPFX証明書を作成します。
XenMobileサーバーで:
-
証明書をXenMobileにアップロードします。
-
証明書ベースの認証用のPKIエンティティを作成します。
-
資格情報プロバイダーを構成します。
-
認証用のユーザー証明書を配信するようにCitrix Gatewayを構成します。
Citrix Gatewayの構成については、Citrix ADCドキュメントの以下の記事を参照してください。
前提条件
-
Microsoft Certificate Servicesエンティティテンプレートを作成する際は、特殊文字を除外して、登録済みデバイスでの認証に関する潜在的な問題を回避してください。たとえば、テンプレート名に次の文字を使用しないでください:
: ! $ () # % + * ~ ? | {} [] -
Exchange ActiveSyncの証明書ベースの認証を構成するには、このMicrosoftブログを参照してください。クライアント証明書を要求するように、Exchange ActiveSync用の証明機関(CA)サーバーサイトを構成します。
-
ActiveSyncトラフィックをExchange Serverに保護するためにプライベートサーバー証明書を使用する場合は、モバイルデバイスに必要なすべてのルート/中間証明書があることを確認してください。そうしないと、Secure Mailでのメールボックス設定中に証明書ベースの認証が失敗します。Exchange IISコンソールでは、次の操作を行う必要があります。
-
ExchangeでXenMobileを使用するためのWebサイトを追加し、Webサーバー証明書をバインドします。
-
ポート9443を使用します。
-
そのWebサイトには、「Microsoft-Server-ActiveSync」用と「EWS」用の2つのアプリケーションを追加する必要があります。これらの両方のアプリケーションで、SSL設定の下にあるSSLを要求を選択します。
-
Microsoft管理コンソールに証明書スナップインを追加する
-
コンソールを開き、スナップインの追加と削除をクリックします。
-
次のスナップインを追加します。
-
証明書テンプレート
-
証明書 (ローカル コンピューター)
-
証明書 - 現在のユーザー
-
証明機関 (ローカル)

-
-
証明書テンプレートを展開します。

-
ユーザーテンプレートを選択し、テンプレートの複製を選択します。

-
テンプレートの表示名を指定します。重要:Active Directory で証明書を発行するオプションを選択することはお勧めしません。このオプションを選択すると、Active Directory 内のすべてのユーザーに対してクライアント証明書が作成され、Active Directory データベースが煩雑になる可能性があります。
-
テンプレートの種類としてWindows 2003 Serverを選択します。Windows 2012 R2 サーバーでは、互換性の下で証明機関を選択し、受信者をWindows 2003に設定します。
-
セキュリティで、以下を構成します:
-
追加をクリックし、次に XenMobile Server が証明書の生成に使用する AD ユーザーアカウントを選択します。重要:ここではサービスアカウントユーザーのみを追加します。登録権限はこの AD ユーザーアカウントにのみ追加します。この記事で後述するように、サービスアカウントを使用してユーザー .pfx 証明書を作成します。詳細については、「CA サーバーから PFX 証明書を作成する」を参照してください。

-
ドメインユーザーから登録権限を取り消します。

-
-
暗号化で、キーサイズを指定していることを確認します。このキーサイズは、後で XenMobile を構成するときに入力します。

-
サブジェクト名で、要求で指定を選択します。変更を適用して保存します。

証明機関へのテンプレートの追加
-
証明機関に移動し、証明書テンプレートを選択します。
-
右ペインで右クリックし、次に新規 > 発行する証明書テンプレートを選択します。

-
前のステップで作成したテンプレートを選択し、OKをクリックして証明機関に追加します。

CAサーバーからPFX証明書を作成する
-
ログインしたサービスアカウントを使用して、ユーザーの.pfx証明書を作成します。.pfxはXenMobileにアップロードされ、その後、デバイスを登録するユーザーに代わってユーザー証明書を要求します。
-
現在のユーザーの下で、証明書を展開します。
-
右ペインで右クリックし、新しい証明書を要求をクリックします。

-
証明書の登録画面が表示されます。次へをクリックします。

-
Active Directory登録ポリシーを選択し、次へをクリックします。

-
ユーザーテンプレートを選択し、登録をクリックします。

-
前のステップで作成した.pfxファイルをエクスポートします。

-
「はい、秘密キーをエクスポートします」をクリックします。

-
「可能であれば、証明のパスにあるすべての証明書を含める」を選択し、「すべての拡張プロパティをエクスポートする」チェックボックスをオンにします。

-
この証明書をXenMobileにアップロードするときに使用するパスワードを設定します。

-
証明書をハードドライブに保存します。
XenMobileへの証明書のアップロード
-
XenMobileコンソールで、右上隅にある歯車アイコンをクリックします。「設定」画面が表示されます。
-
「証明書」をクリックし、次に「インポート」をクリックします。
-
次のパラメーターを入力します。
-
インポート: キーストア
-
キーストアの種類: PKCS #12
-
用途: サーバー
-
「キーストアファイル」:「参照」をクリックして、作成した
.pfx証明書を選択します。 -
「パスワード」:この証明書用に作成したパスワードを入力します。
証明書構成画面のスクリーンショット(/en-us/xenmobile/server/media/import-certificate.png) -
-
「インポート」をクリックします。
-
証明書が正しくインストールされていることを確認します。正しくインストールされた証明書は、ユーザー証明書として表示されます。
証明書ベースの認証用のPKIエンティティの作成
-
「設定」で、「その他 > 証明書管理 > PKIエンティティ」の順に進みます。
-
「追加」をクリックし、その後「Microsoft Certificate Servicesエンティティ」をクリックします。「Microsoft Certificate Servicesエンティティ:一般情報」画面が表示されます。
-
次のパラメーターを入力します。
-
「名前」:任意の名前を入力します
-
「Web登録サービスルートURL」:
https://RootCA-URL/certsrv/(URLパスの最後のスラッシュ「/」を必ず追加してください。) -
「certnew.cerページ名」:certnew.cer (デフォルト値)
-
「certfnsh.asp」:certfnsh.asp (デフォルト値)
-
「認証の種類」:クライアント証明書
-
「SSLクライアント証明書」:XenMobileクライアント証明書の発行に使用するユーザー証明書を選択します。

-
-
「テンプレート」で、Microsoft 証明書を構成したときに作成したテンプレートを追加します。スペースを追加しないでください。

-
HTTP パラメーターをスキップし、CA 証明書をクリックします。
-
環境に対応するルート CA 名を選択します。このルート CA は、XenMobile クライアント証明書からインポートされたチェーンの一部です。

-
保存をクリックします。
資格情報プロバイダーの構成
-
「設定」で、その他 > 証明書管理 > 資格情報プロバイダーの順に移動します。
-
追加をクリックします。
-
「一般」で、次のパラメーターを入力します。
-
名前: 任意の名前を入力します。
-
説明: 任意の説明を入力します。
-
発行エンティティ: 以前に作成した PKI エンティティを選択します。
-
発行方法: SIGN
-
テンプレート: PKIエンティティの下に追加されたテンプレートを選択します。

-
-
証明書署名要求をクリックし、次のパラメーターを入力します。
-
キーアルゴリズム: RSA
-
キーサイズ: 2048
-
署名アルゴリズム: SHA256withRSA
-
サブジェクト名:
cn=$user.username
サブジェクトの別名については、追加をクリックし、次のパラメーターを入力します。-
種類: ユーザープリンシパル名
-
値:
$user.userprincipalname

-
-
配布をクリックし、次のパラメーターを入力します。
-
発行CA証明書: XenMobileクライアント証明書に署名した発行CAを選択します。
-
配布モードの選択: 集中型を優先: サーバー側でのキー生成を選択します。

-
-
次の2つのセクション、Revocation XenMobile と Revocation PKI については、必要に応じてパラメータを設定します。この例では、両方のオプションをスキップします。
-
更新をクリックします。
-
証明書の有効期限が切れたときに更新するについては、ONを選択します。
-
その他の設定はすべてデフォルトのままにするか、必要に応じて変更します。資格情報プロバイダーの構成画面(/en-us/xenmobile/server/media/configure-credential-providers-4.png)
-
保存をクリックします。
証明書ベースの認証を使用するようにSecure Mailを構成する
Secure MailをXenMobileに追加するときは、アプリ設定の下のExchange設定を必ず構成してください。
アプリの構成画面(/en-us/xenmobile/server/media/configure-worxmail-certificate-authentication.png)
XenMobileでのCitrix ADC証明書配信の構成
-
XenMobileコンソールにログオンし、右上隅の歯車アイコンをクリックします。設定画面が表示されます。
-
サーバーの下で、Citrix Gatewayをクリックします。
-
Citrix Gatewayがまだ追加されていない場合は、追加をクリックし、設定を指定します。
-
外部URL:
https://YourCitrixGatewayURL -
ログオンの種類: 証明書とドメイン
-
パスワードが必要: オフ
-
デフォルトとして設定: オン
-
-
認証用のユーザー証明書を配信には、オンを選択します。

-
資格情報プロバイダーには、プロバイダーを選択し、保存をクリックします。
-
ユーザー証明書のsAMAccount属性をユーザープリンシパル名 (UPN) の代替として使用するには、XenMobileでLDAPコネクタを次のように構成します。設定 > LDAPに移動し、ディレクトリを選択して編集をクリックし、ユーザー検索条件でsAMAccountNameを選択します。

Citrix PINとユーザーパスワードのキャッシュを有効にする
Citrix PINとユーザーパスワードのキャッシュを有効にするには、設定 > クライアントプロパティに移動し、Citrix PIN認証を有効にするとユーザーパスワードのキャッシュを有効にするのチェックボックスをオンにします。詳しくは、「クライアントプロパティ」を参照してください。
クライアント証明書構成のトラブルシューティング
上記の構成とCitrix Gateway構成が正常に完了すると、ユーザーワークフローは次のようになります。
-
ユーザーはモバイルデバイスを登録します。
-
XenMobileは、Citrix PINの作成をユーザーに促します。
-
その後、ユーザーはXenMobile Storeにリダイレクトされます。
-
ユーザーがSecure Mailを起動しても、XenMobileはメールボックス構成のユーザー資格情報を要求しません。代わりに、Secure MailはSecure Hubからクライアント証明書を要求し、認証のためにMicrosoft Exchange Serverに送信します。ユーザーがSecure Mailを起動したときにXenMobileが資格情報を要求する場合は、構成を確認してください。
ユーザーがSecure Mailをダウンロードしてインストールできるが、メールボックスの構成中にSecure Mailが構成を完了できない場合:
-
Microsoft Exchange Server ActiveSync がプライベート SSL サーバー証明書を使用してトラフィックを保護している場合、ルート/中間証明書がモバイルデバイスにインストールされていることを確認してください。
-
ActiveSyncに選択されている認証タイプがクライアント証明書を要求するであることを確認します。Microsoft ActiveSyncのプロパティ画面(/en-us/xenmobile/server/media/activesync-require-client-certs.png)
-
Microsoft Exchange Serverで、Microsoft-Server-ActiveSyncサイトを確認し、クライアント証明書マッピング認証が有効になっていることを確認します。デフォルトでは、クライアント証明書マッピング認証は無効になっています。このオプションは、構成エディター > セキュリティ > 認証の下にあります。Microsoft ActiveSyncの構成画面(/en-us/xenmobile/server/media/activesync-enable-cert-mapping.png)Trueを選択した後、変更を適用するために適用をクリックしてください。
-
XenMobileコンソールでCitrix Gatewayの設定を確認します。認証用のユーザー証明書を配信がオンになっており、資格情報プロバイダーに正しいプロファイルが選択されていることを確認します。
クライアント証明書がモバイルデバイスに配信されたかどうかを確認するには
-
XenMobileコンソールで、管理 > デバイスに移動し、デバイスを選択します。
-
編集または詳細を表示をクリックします。
-
配信グループセクションに移動し、次のエントリを検索します。Citrix Gateway資格情報: 要求された資格情報, CertId=
クライアント証明書ネゴシエーションが有効になっているかどうかを検証するには
-
IIS WebサイトにバインドされているSSL証明書構成を表示するには、この
netshコマンドを実行します。netsh http show sslcert -
「クライアント証明書のネゴシエート」の値が「無効」の場合、それを有効にするには、次のコマンドを実行します。
netsh http delete sslcert ipport=0.0.0.0:443netsh http add sslcert ipport=0.0.0.0:443 certhash=cert_hash appid={app_id} certstorename=store_name verifyclientcertrevocation=Enable VerifyRevocationWithCachedClientCertOnly=Disable UsageCheck=Enable clientcertnegotiation=Enable例:netsh http add sslcert ipport=0.0.0.0:443 certhash=609da5df280d1f54a7deb714fb2c5435c94e05da appid={4dc3e181-e14b-4a21-b022-59fc669b0914} certstorename=ExampleCertStoreName verifyclientcertrevocation=Enable VerifyRevocationWithCachedClientCertOnly=Disable UsageCheck=Enable clientcertnegotiation=Enable