※この記事は以下の記事の日本語訳です。
GLOBALPROTECT: ONE-TIME PASSWORD-BASED TWO FACTOR AUTHENTICATION
https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm8ICAS
原文はSivasekharan Rajasekaranによるものです。
企業では社内リソースへのアクセスの許可のために、ワンタイム パスワード(OTP)のような、より強力な認証手段が求められています。OTPベースの認証を要求することで、企業は攻撃者が不正にユーザーの資格情報を入手したり、承認されないアクセスをすることを防ぐことができます。しかしOTPを要求するどの実装も、エンドユーザーがOTPを使いづらく感じ、敬遠する恐れがあります。
GlobalProtectはOTPベース認証をサポートし、ユーザー体験を維持する手段を提供します。この文書の目的は、企業の管理者に異なるGlobalProtectのOTP認証のワーク フローと、彼らのセキュリティとコンプライアンスの要求に合致しつつ、ユーザー体験を簡潔に維持するGlobalProtectの認証シナリオを決定する一助となることです。
GlobalProtectはRADIUSまたはSAML経由のOTPベースの認証をサポートし、OTPベンダーに全く依存しません。
RADIUSかSAMLをOTPベンダーが対応している限り、どのOTPベンダーも使用できます。OTPサービスをどのように設定したか次第で、ユーザーは2つのワーク フローのいずれかに従って認証されます。
GlobalProtectはこれらのワークフローをサポートします。
Duoによる2つのワークフローを行うRADIUS設定のサンプルはこちらです。
GlobalProtectをOn-Demandモードで展開している場合、ユーザーは手動で必要に応じてGlobalProgtectに接続します。このモードは一般的な安全なリモート アクセスのユース ケースで、リモートのユーザーは社内データ センターのリソースにアクセスするためにVPNトンネルをセットアップし、内部のデータ センターへのアクセスが必要なくなったときにはVPNを切断します。
On-Demandによる接続では、GlobalProtectエージェントは、ユーザーがGlobalProtectへの接続を開始する毎に、常に最初にポータル、続いてゲートウェイを認証します。OTP認証がポータルとゲートウェイ両方に必要ということは、ユーザーが二回OTP認証を促されることを意味します(一回はポータル、続く一回はゲートウェイ)。しかし(PAN-OS 7.1およびGlobalProtect 3.1以降から)、ユーザーの認証の回数を最小化する認証オーバーライド機能を提供しています。認証オーバーライドの詳細は、Enhanced Two-Factor Authenticationをご覧ください。
推奨の設定:
この設定にて、エンドユーザーがGlobalProtectに手動で接続するとき、エンドユーザーの体験は次のようになります。
GlobalProtectは、PAN-OS 8.0とGlobalProtect 4.0からSAML認証をサポートします。SAMLを使用するとGlobalProtectエージェントはSAMP IdPからの認証ページを、Web/組み込みブラウザーで表示し、ユーザーを認証します。ブラウザが異なる(組み込みブラウザー)ため、
SAMLによるOTPを使用した場合、透過的な認証を行うために推奨される設定は次のようになります。
Oktaを使用したGlobalProtectのSAML認証の設定方法はこちらをご覧ください。
GlobalProtect Always-OnモードでのOTP認証の推奨については、このシリーズのこちらの次記事を参照してください。
2つのワーク フロー実現のためのDuoによるサンプル設定です。
DuoによるOTP認証を提供する方法の詳細については、こちらをご覧ください。
ワーク フロー1: ユーザーはユーザー名とパスワードを最初に入力し、その後にOTPによりChallengeが行われます。OTPは承認のプッシュ、SMS、トークンコードのいずれかを使用します。
[ad_client]
host=<AD-Server>
service_account_username=<administrator>
service_account_password=<administrator’s password>
search_dn=DC=acme,DC=com
[duo_only_client]
[radius_server_challenge]
ikey=<duo-integration-key>
skey=<duo-security-key>
api_host=<duo-host-name>
radius_ip_1=<firewall-mgmt-ip>
radius_secret_1=<radius-secret>
client=ad_client
failmode=safe
port=1812