GlobalProtect: ワンタイム パスワードによる2要素認証

Printer Friendly Page

※この記事は以下の記事の日本語訳です。

GLOBALPROTECT: ONE-TIME PASSWORD-BASED TWO FACTOR AUTHENTICATION

https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm8ICAS

 

 

原文はSivasekharan Rajasekaranによるものです。

@srajasekar

 

背景

 

企業では社内リソースへのアクセスの許可のために、ワンタイム パスワード(OTP)のような、より強力な認証手段が求められています。OTPベースの認証を要求することで、企業は攻撃者が不正にユーザーの資格情報を入手したり、承認されないアクセスをすることを防ぐことができます。しかしOTPを要求するどの実装も、エンドユーザーがOTPを使いづらく感じ、敬遠する恐れがあります。

 

目的

 

GlobalProtectはOTPベース認証をサポートし、ユーザー体験を維持する手段を提供します。この文書の目的は、企業の管理者に異なるGlobalProtectのOTP認証のワーク フローと、彼らのセキュリティとコンプライアンスの要求に合致しつつ、ユーザー体験を簡潔に維持するGlobalProtectの認証シナリオを決定する一助となることです。

 

 

GlobalProtectのOTP認証

 

GlobalProtectはRADIUSまたはSAML経由のOTPベースの認証をサポートし、OTPベンダーに全く依存しません。

RADIUSかSAMLをOTPベンダーが対応している限り、どのOTPベンダーも使用できます。OTPサービスをどのように設定したか次第で、ユーザーは2つのワーク フローのいずれかに従って認証されます。

  1. ユーザーはユーザー名とパスワードを最初に入力し、その後にOTPによりChallengeが行われます。OTPは承認のプッシュ、SMS、トークン コードのいずれかを使用します。
  2. ユーザーはユーザー名を入力し、Challengeを待つことなくワンタイム パスワード(あるいは同時にパスワード)を即認証します。

GlobalProtectはこれらのワークフローをサポートします。 

Duoによる2つのワークフローを行うRADIUS設定のサンプルはこちらです。

 

Always-OnモードでのOTPベース認証が必要な場合 - こちらを参照

 

On-DemandモードでのOTPベース認証が必要な場合

 

GlobalProtectをOn-Demandモードで展開している場合、ユーザーは手動で必要に応じてGlobalProgtectに接続します。このモードは一般的な安全なリモート アクセスのユース ケースで、リモートのユーザーは社内データ センターのリソースにアクセスするためにVPNトンネルをセットアップし、内部のデータ センターへのアクセスが必要なくなったときにはVPNを切断します。

 

ユース ケース1: RADIUSを使用したOn-DemandモードでOTPを使用する

 

On-Demandによる接続では、GlobalProtectエージェントは、ユーザーがGlobalProtectへの接続を開始する毎に、常に最初にポータル、続いてゲートウェイを認証します。OTP認証がポータルとゲートウェイ両方に必要ということは、ユーザーが二回OTP認証を促されることを意味します(一回はポータル、続く一回はゲートウェイ)。しかし(PAN-OS 7.1およびGlobalProtect 3.1以降から)、ユーザーの認証の回数を最小化する認証オーバーライド機能を提供しています。認証オーバーライドの詳細は、Enhanced Two-Factor Authenticationをご覧ください。

 

推奨の設定:

  • ポータルとゲートウェイ両方にOTP認証を必要とする。
  • ポータルにて、
    • ユーザー認証情報の保存を“Save Username Only”
    • 認証オーバーライドの有効化と、"クッキーを生成して認証上書き"、"クッキーを受け入れて認証上書き"の両方の有効化。
    • Cookie有効期間を'N'時間に設定。'N'時間はユーザーが認証情報を再度入力を促されるまでの時間です。提供したいユーザー体験に基づいて決めてください。
  • ゲートウェイにて、
    • ユーザー認証情報の保存を“Save Username Only”
    • 認証オーバーライドの有効化と、"クッキーを生成して認証上書き"、"クッキーを受け入れて認証上書き"の両方の有効化。
    • クッキーの暗号化/復号には、ポータルとゲートウェイで同じ証明書を使用するようにしてください。
    • 注: 認証オーバーライドに使用する証明書を更新する必要ができたときに柔軟に対応するため、認証クッキーの暗号化と復号化に使用する証明書は専用のものとしてください。

config.pngConfiguration on the Portal config 2.pngConfiguration on the Gateway

 

この設定にて、エンドユーザーがGlobalProtectに手動で接続するとき、エンドユーザーの体験は次のようになります。

 



  1. ワーク フロー – 1


  2. ワーク フロー – 2

 

 

 

ユース ケース2: SAMLを使用したOn-DemandモードでOTPを使用する

 

GlobalProtectは、PAN-OS 8.0とGlobalProtect 4.0からSAML認証をサポートします。SAMLを使用するとGlobalProtectエージェントはSAMP IdPからの認証ページを、Web/組み込みブラウザーで表示し、ユーザーを認証します。ブラウザが異なる(組み込みブラウザー)ため、

      • GlobalProtectの認証により得られたSAMLクッキーは、他のSAML有効化アプリケーションによるSSOには使用できません。逆もまた同様です。
      • GlobalProtectの認証により得られたSAMLクッキーは、再起動やログアウト後には残りません。

SAMLによるOTPを使用した場合、透過的な認証を行うために推奨される設定は次のようになります。

      • ポータルとゲートウェイの両方にSAML認証を使用します。
      • IdP設定により、SAMLクッキーの有効な期間を決定します。SAMLクッキーが継続し有効である限り、ユーザーからみてGlobalProtectへの透過的な認証になります。

Oktaを使用したGlobalProtectのSAML認証の設定方法はこちらをご覧ください。

 

GlobalProtect認証オーバーライドを用いて、再起動やログアウト後も透過的な認証を提供する

 

      • ポータルにて、
        • ユーザー認証情報の保存を“Save Username Only”
        • 認証オーバーライドの有効化と、"クッキーを生成して認証上書き"、"クッキーを受け入れて認証上書き"の両方の有効化。
        • Cookie有効期間を'N'時間に設定。'N'時間はユーザーが認証情報を再度入力を促されるまでの時間です。提供したいユーザー体験に基づいて決めてください。
      • ゲートウェイにて、
        • ユーザー認証情報の保存を“Save Username Only”
        • 認証オーバーライドの有効化と、"クッキーを生成して認証上書き"、"クッキーを受け入れて認証上書き"の両方の有効化。
        • クッキーの暗号化/復号には、ポータルとゲートウェイで同じ証明書を使用するようにしてください。
        • 注: 認証オーバーライドに使用する証明書を更新する必要ができたときに柔軟に対応するため、認証クッキーの暗号化と復号化に使用する証明書は専用のものとしてください。

 

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