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

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

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

-
テンプレートの表示名を入力します。
重要:
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 にアップロードされ、XenMobile はデバイスを登録するユーザーに代わってユーザー証明書を要求します。
-
現在のユーザーの下で、証明書を展開します。
-
右ペインを右クリックし、新しい証明書を要求をクリックします。

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

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

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

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

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

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

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

-
証明書をハードドライブに保存します。
XenMobile への証明書のアップロード
-
XenMobile コンソールで、右上隅にある歯車アイコンをクリックします。設定画面が表示されます。
-
証明書をクリックし、インポートをクリックします。
-
次のパラメーターを入力します。
- インポート: キーストア
- キーストアの種類: PKCS #12
- 用途: サーバー
-
キーストアファイル: 参照をクリックして、作成した
.pfx証明書を選択します。 - パスワード: この証明書用に作成したパスワードを入力します。

-
インポートをクリックします。
-
証明書が正しくインストールされていることを確認します。正しくインストールされた証明書は、ユーザー証明書として表示されます。
証明書ベースの認証用の PKI エンティティの作成
-
設定で、その他 > 証明書管理 > PKI エンティティに移動します。
-
追加をクリックし、Microsoft Certificate Services Entityをクリックします。Microsoft Certificate Services Entity: 一般情報画面が表示されます。
-
次のパラメーターを入力します。
- 名前: 任意の名前を入力します
-
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 つのセクション、失効 XenMobile および 失効 PKI については、必要に応じてパラメーターを設定します。この例では、両方のオプションがスキップされています。
-
更新をクリックします。
-
有効期限が切れたときに証明書を更新するについては、ON を選択します。
-
その他の設定はすべてデフォルトのままにするか、必要に応じて変更します。

-
保存をクリックします。
証明書ベースの認証を使用するための Secure Mail の構成
Secure Mail を XenMobile に追加するときは、アプリ設定の下にある Exchange 設定を必ず構成してください。

XenMobile での Citrix ADC 証明書配信の構成
-
XenMobile コンソールにログオンし、右上隅にある歯車アイコンをクリックします。設定画面が表示されます。
-
サーバーの下にある Citrix Gateway をクリックします。
-
Citrix Gateway がまだ追加されていない場合は、追加をクリックして設定を指定します。
-
外部 URL:
https://YourCitrixGatewayURL - ログオンの種類: 証明書とドメイン
- パスワードが必要: OFF
- デフォルトとして設定: ON
-
外部 URL:
-
認証用のユーザー証明書を配信については、オンを選択します。

-
資格情報プロバイダーについては、プロバイダーを選択し、保存をクリックします。
-
ユーザー証明書内の 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 Exchange Server で、Microsoft-Server-ActiveSync サイトをチェックして、クライアント証明書マッピング認証が有効になっていることを確認します。デフォルトでは、クライアント証明書マッピング認証は無効になっています。このオプションは、構成エディター > セキュリティ > 認証の下にあります。

True を選択した後、変更を有効にするために必ず 適用 をクリックしてください。
-
XenMobile コンソールで Citrix Gateway 設定を確認します。認証用のユーザー証明書を配信が ON であり、資格情報プロバイダーに正しいプロファイルが選択されていることを確認します。
クライアント証明書がモバイルデバイスに配信されたかどうかの確認
-
XenMobile コンソールで、管理 > デバイスに移動し、デバイスを選択します。
-
編集または詳細を表示をクリックします。
-
配信グループセクションに移動し、次のエントリを検索します。
Citrix Gateway Credentials: Requested credential, CertId=
クライアント証明書ネゴシエーションが有効になっているかどうかの検証
-
IIS Web サイトにバインドされている SSL 証明書構成を表示するには、次の
netshコマンドを実行します。netsh http show sslcert <!--NeedCopy--> -
クライアント証明書のネゴシエートの値が 無効 の場合は、次のコマンドを実行して有効にします。
netsh http delete sslcert ipport=0.0.0.0:443 netsh 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 <!--NeedCopy-->例:
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 <!--NeedCopy-->