各ユーザー個別のクライアント証明書で二要素認証 (SCEP利用による配布)

ユーザー名とパスワードによる認証に加え、2要素目としてのクライアント証明書認証を追加する方法の2つ目です。

ここでは「各ユーザーが個別のクライアント証明書を持ち、そのクライアント証明書を持たないクライアントPCは接続させない」という設定を行います。

クライアント証明書認証を行うには、各ユーザーのPCにクライアント証明書をインポートしてもらう必要があります。

「各ユーザーに、ユーザー名を共有名に持つ個別のクライアント証明書を何らかの方法(例: USBメモリを使う)で配布して、各ユーザーに手作業でインポートしてもらう」というのも一つの手段ですが、ユーザー数が多いとかなり時間と手間のかかる作業になります。

その手間を省く目的で、GlobalProtectでは、SCEP (Simple Certificate Enrollment Protocol) を利用して、「ユーザー名とパスワード認証と同時に、ユーザー毎のクライアント証明書を配布する」という機能が提供されていますので、その設定を行います。

PA FirewallのSCEP設定

SCEPを使って、PA FirewallがActive Directory Certificate Service (以降、ADCS) と接続し、GP Agentの各ユーザーに個別のクライアント証明書が配布できるまでの設定を行います。

ADCSの構築方法については、こちらをご参照ください。

想定ネットワーク構成はこちらをご参照ください。

サービスルートの変更

この想定ネットワーク環境では、ADCS(WIN2019)がTrustゾーンに設置されているので、サービスルートを変更します。

a)「Device」 → b)「セットアップ」 → c)「サービス」 → d)「サービスルートの設定」で表示された画面で、e)のように、SCEPの送信元インターフェイスおよび送信元アドレスをeth1/2に変更します。
f)「OK」をクリックします。

一旦、「コミット」を実施します。

SCEPの設定

a)「Device」 → 「証明書の管理」の下のb)「SCEP」 → c)「追加」をクリックします。

a) 名前に「WIN2019_SCEP(任意)」と入力します。
ワンタイムパスワード(チャレンジ):
b) SCEPチャレンジで「ダイナミック」を選択します。
c) サーバーURLに「http://ec2amaz-ejgc4h8.acme.com/certsrv/mscep_admin/」と入力します。
(この環境のWindows Server 2019のホスト名は「ec2amaz-ejgc4h8.acme.com」です。)
d) ユーザー名:「acme\panagent」と入力します。
e) パスワードおよび再入力パスワードに、panagentのパスワードを入力します。
設定:
f) サーバーURLに「http://ec2amaz-ejgc4h8.acme.com/certsrv/mscep/mscep.dll」と入力します。
g) CA-IDENT名に「WIN2019-CA(任意)」と入力します。
暗号設定:
h) ビット数は「2048」を選択します。
i) CSRのダイジェストは「sha256」を選択します。
j) 「OK」をクリックします。

ルート証明書が自動的にインポートされたことの確認

[確認のみ] a)「Device」 → 「証明書の管理」の下のb)「証明書」をクリックします。

実施したSCEP設定により、c) WIN2019のCAのルート証明書が自動的に取り込まれます。

証明書プロファイルの設定

WIN2019のルート証明書を使った証明書プロファイルを設定します。

a)「Device」 → 「証明書の管理」の下のb)「証明書プロファイル」 →c)「追加」をクリックします。

a) 名前に「WIN2019-CA-Profile(任意)」と入力します。
b) 「追加」をクリックして、c)「WIN2019_SCEP」を選択します。
d) 「OK」をクリックします。

Portalの設定

「Network」タブ → GlobalProtectの下の「ポータル」 → 設定済みの「Portal」をクリック → 「エージェント」タブ → 設定済みの「GP-Agent」をクリックで表示されるa)「認証」タブの「クライアント証明書」で、b)「SCEP」を選択し、c)設定済みのSCEP設定:「WIN2019_SCEP」を選択します。

注)
Windowsドメインに参加しているクライアントPCの場合、マシン証明書を持っている場合があります。

GP設定のデフォルトでは、「User and Machine」=「個人(Personal)ストアとマシン証明書の両方」を検索するようになっています。

この設定のままでは、「SCEPで配布したクライアント証明書の有無で接続許可・拒否をコントロールしたいのに、マシン証明書があればクライアント証明書がなくても接続できてしまう」という状況になってしまいます。

その場合は、「User」=「個人(Personal)ストア」だけを参照するように、以下の設定変更を行ってください。

a)「アプリケーション」タブ→b)「クライアントの証明書ストアの検索」で「User」を選択します。

GlobalProtect Portalの設定を、「OK」をクリックして閉じます。

Gatewayの設定

PortalからSCEPで配布したクライアント証明書で、各Gatewayがクライアント証明書認証を行うためには、設定済みの証明書プロファイルをGatewayに割り当てる必要があります。

「Network」タブ → GlobalProtectの下の「ゲートウェイ」 → 設定済みの「External-Gateway」をクリック 
→ a)「認証」タブ → b)証明書プロファイルで、「WIN2019-CA-Profile」を選択します。
c)「OK」をクリックします。

(もし、Internal Gatewayも設定していれば、)同様の方法で、Internal-Gatewayにも、同じ証明書プロファイルを割り当てます。

「コミット」を実施します。

GP Agentからのログイン(1)

GP AgentからPortalへ接続します。

すると、「個人」証明書ストアへ、ユーザー毎のクライアント証明書がインポートされますので、それを確認します。

以下は、W10-001のユーザーでログインした場合です。

[確認のみ] 例:Chromeブラウザ→「設定」→「セキュリティとプライバシー」→「セキュリティ」→「証明書の管理」で表示された画面で、「個人」タブ内を確認します。

クライアント証明書配布の解除

各ユーザーへ、クライアント証明書の配布が完了したら、SCEPによる配布設定を解除します。

「Network」タブ → GlobalProtectの下の「ポータル」 → 設定済みの「Portal」をクリック → 「エージェント」タブ → 設定済みの「GP-Agent」をクリックで表示されるa)「認証」タブの「クライアント証明書」で、b)「None」を選択し、c)「OK」をクリックします。

「コミット」を実施します。

GP Agentからのログイン(2)

クライアント証明書を配布されていないユーザーを想定して、クライアントPCからクライアント証明書を削除します。

クライアント証明書を削除したクライアントPCで「接続を更新」を行います。

下記のように接続ができないことを確認します。

Portalで再度SCEP設定し、もう一度GP Agentからアクセスすれば、再びクライアント証明書は配布されます。

コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!

タイトルとURLをコピーしました