PoCガイド-ZTNA-適応認証-内部従業員と外部従業員
概要
ハイブリッドな労働力により、企業は従業員が企業のオフィスからアプリケーションにアクセスしているのか、インターネット経由でアプリケーションにアクセスしているのかを特定する必要があります。多くの企業がゼロトラストを採用しているため、従業員の所在地に焦点を当てることはそれほど重要ではありません。従業員のアクセス場所を特定することが少なくなっても、企業は認証要件を下げ、摩擦を減らし、それによってユーザーエクスペリエンスを向上させる機会を得ることができます。安全な境界の背後にある内部ロケーションの従業員は、2 つの認証要素のみを必要としますが、外部ロケーションの従業員は、自信をもって身元を確認し、信頼を確立するために 3 つの認証要素を必要とする場合があります。
多要素認証の実装は、アイデンティティを検証し、セキュリティポスチャを改善する最良の方法の 1 つです。LDAPは、ドメインのユーザー名とパスワードを確認するコマンド方式です。ネイティブ(時間ベース)ワンタイムパスワード(OTP)は、すぐに使用できるオーセンティケータアプリケーションを使用して別の要素を実装するのに便利な方法です。これにより、ユーザは認証アプリケーションからゲートウェイフォームに検証コードを入力して認証できます。
Citrix Adaptive Authenticationは、LDAPおよびネイティブOTP認証をサポートしており、CitrixセキュアプライベートアクセスやCitrix Virtual Apps and Desktopsサービスなどのさまざまなサービスに認証を提供できます。このPOCガイドでは、これらを認証に使用する方法を示します。
はじめに
次のアニメーションは、デバイスのポスチャチェックに合格し、ユーザにドメインクレデンシャルの入力を要求されたエンドポイントを示しています。次に、エンドポイントがデバイスのポスチャチェックに失敗し、ユーザはドメインクレデンシャルとネイティブ OTP パスコードの入力を求められます。
これは、インストールが完了し、次のコンポーネントの構成について前提としています。
- Citrix ADCは、ワイルドカード証明書にバインドされた外部から到達可能なAA仮想サーバーを使用してインストール、ライセンス、構成されています
- Citrix ADCはOauthを使用してCitrix Cloud と統合されました
- Citrix Workspaceアプリがインストールされたエンドポイント
- 時間ベースのOTPをサポートするサポートされている認証アプリがインストールされています(Microsoft Authenticator、Google Authenticator、Citrix SSOを含む)
- Active Directory(AD)はCitrix コネクタアプライアンス経由でアクセス可能
最新の製品バージョンとライセンス要件については、Citrix のドキュメントを参照してください。 ネイティブOTP認証
構成
この概念実証ガイドでは、次の方法について説明します。
- Citrix Cloud を構成する
- 適応型認証ポリシーの設定-CLI
- 適応型認証ポリシーの設定-GUI
- SmartTagsを使用するようSPAとCVADを構成する
- ユーザーエンドポイント認証を検証する
Citrix Cloud を構成する
- Citrix Cloudに接続し 、管理者アカウントでログインします
- Citrix Workspace 内で、左上のメニューから[ IDとアクセス管理 ]にアクセスします
- ワークスペースの認証方法として、Citrix Gateway-適応型認証を構成します。
適応型認証ポリシーの設定-CLI
まず、Citrix ADC上のCLIにログインし、ログインスキーマとともに、それぞれEPAとLDAPの認証アクションおよび関連するポリシーを入力します。次に、GUIにログインしてポリシーを構築し、適用し、多要素認証の設定を完了します。
LDAP ポリシー
LDAP アクションの場合は、必須フィールドに入力して LDAP アクションを文字列で作成し、CLI に貼り付けます。
-
ldapAction
-アクション名を入力します。 -
serverIP
-ドメインサーバーの FQDN または IP アドレスを入力します。 -
serverPort
-LDAPポートを入力します。 -
ldapBase
-関連するユーザーがディレクトリに格納されているドメインオブジェクトとコンテナの文字列を入力します。 -
ldapBindDn
-ドメインユーザーのクエリに使用するサービスアカウントを入力します。 -
ldapBindDnPassword
-サービスアカウントのパスワードを入力します。 -
ldapLoginName
-ユーザーオブジェクトタイプを入力します。 -
groupAttrName
-グループ属性名を入力します。 -
subAttributeName
-サブ属性名を入力します。 -
secType
-セキュリティの種類を入力します。 -
ssoNameAttribute
-シングルサインオン名の属性を入力します。
LDAPポリシーの場合、LDAPアクションを参照するための必須フィールドに文字列を入力し、CLIに貼り付けます。
-
Policy
-ポリシー名を入力します。 -
action
-上記で作成したメールアクションの名前を入力します。
詳細については、「 LDAP 認証ポリシー」を参照してください。
- まず、Citrix ADCのNSIPアドレスへのSSHセッションを開いてCLIに接続し、管理者ユーザーとしてログインします。
ldapupnmanage
このアクションとポリシーは、サイト fqdn adaptiveauth.wwco.net へのリクエストを URL に /manageotp が付加されたものと照合し、認証アプリを使用してネイティブ OTP に登録することを許可します。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication ldapAction authact_ldapupnmanage -serverIP 10.53.8.10 -serverPort 636 -authTimeout 3600 -ldapBase "DC=wwco,DC=net" -ldapBindDn s_adc@yourdomain.com -ldapBindDnPassword abc123 -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2022_02_02_16_16_21 -ldapLoginName userPrincipalName -groupAttrName memberOf -subAttributeName cn -secType SSL -ssoNameAttribute UserPrincipalName -nestedGroupExtraction ON -maxNestingLevel 3 -groupNameIdentifier userPrincipalName -groupSearchAttribute userPrincipalName -groupSearchSubAttribute userPrincipalName
add authentication Policy authpol_ldapupnmanage -rule "http.req.cookie.value(\"NSC_TASS\").eq(\"manageotp\")" -action authact_ldapupnmanage
workspaceoauth
このアクションとポリシーは、プライマリWorkspace URLに対してCitrix Cloudとの安全なOAuth通信を確立します。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication OAuthIDPProfile authact_workspaceoauth -clientID xyz1 -clientSecret abc123 -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2022_02_02_16_16_21 -redirectURL "https://accounts.cloud.com/core/login-cip" -issuer "https://adaptiveauth.yourdomain.com" -audience xyz2 -sendPassword ON
add authentication OAuthIdPPolicy authpol_workspaceoauth -rule true -action authact_workspaceoauth
workspaceoauth2
このアクションとポリシーは、カスタムワークスペースURLに対してCitrix Cloudとの安全なOAuth通信を確立します。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication OAuthIDPProfile authact_workspaceoauth2 -clientID xyz11 -clientSecret abc123 -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2022_02_02_16_16_21 -redirectURL "https://workspace.yourdomain.com/core/login-cip" -issuer "https://adaptiveauth.yourdomain.com" -audience xyz22 -sendPassword ON
add authentication OAuthIdPPolicy authpol_workspaceoauth2 -rule true -action authact_workspaceoauth2
ldapupn
このアクションとポリシーは、UserPrincipalName を使用してドメインディレクトリで LDAP 認証を行います。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication ldapAction authact_ldapupn -serverIP 10.53.8.10 -serverPort 636 -authTimeout 3600 -ldapBase "DC=yourdomain,DC=com" -ldapBindDn s_adc@yourdomain.com -ldapBindDnPassword abc123 -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2022_02_02_16_16_21 -ldapLoginName userPrincipalName -groupAttrName memberOf -subAttributeName cn -secType SSL -ssoNameAttribute UserPrincipalName -nestedGroupExtraction ON -maxNestingLevel 3 -groupNameIdentifier userPrincipalName -groupSearchAttribute userPrincipalName -groupSearchSubAttribute userPrincipalName
add authentication Policy authpol_ldapupn -rule true -action authact_ldapupn
ldapsam
このアクションとポリシーは、samAccountName を使用してドメインディレクトリで LDAP 認証を行います。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication ldapAction authact_ldapsam -serverIP 10.53.8.10 -serverPort 636 -authTimeout 3600 -ldapBase "DC=yourdomain,DC=com" -ldapBindDn s_adc@yourdomain.com -ldapBindDnPassword abc123 -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2022_02_02_16_16_21 -ldapLoginName samAccountName -groupAttrName memberOf -subAttributeName cn -secType SSL -ssoNameAttribute sAMAccountName -nestedGroupExtraction ON -maxNestingLevel 3 -groupNameIdentifier sAMAccountName -groupSearchAttribute sAMAccountName -groupSearchSubAttribute sAMAccountName
add authentication Policy authpol_ldapsam -rule true -action authact_ldapsam
ldapupn_otp
このアクションとポリシーは、ネイティブのOTP認証を行います。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication ldapAction authact_ldapupn_otp -serverIP 10.53.8.10 -serverPort 636 -authTimeout 3600 -ldapBase "DC=yourdomain,DC=com" -ldapBindDn s_adc@yourdomain.com -ldapBindDnPassword abc123 -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2022_02_02_16_16_21 -ldapLoginName userPrincipalName -groupAttrName memberOf -subAttributeName cn -secType SSL -ssoNameAttribute UserPrincipalName -authentication DISABLED -nested GroupExtraction ON -maxNestingLevel 3 -groupNameIdentifier userPrincipalName -groupSearchAttribute userPrincipalName -groupSearchSubAttribute userPrincipalName -OTPSecret userParameters
add authentication Policy authpol_ldapupn_otp -rule true -action authact_ldapupn_otp
EPA_internal_cert_domain
これにより、クライアントが有効なエンタープライズパブリック IP アドレスからの認証を試行しているかどうかが決定されます (これは、外部ファイアウォールおよびルーターで使用されるネットワークアドレス変換範囲に対応します)。また、国を検証します。また、有効なエンタープライズデバイス証明書も検証します。また、デバイスがエンタープライズドメインに参加していることも確認します。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication epaAction authact_EPA_internal_cert_domain -csecexpr "sys.client_expr(\"device-cert_0_0\") && sys.client_expr("sys_0_DOMAIN_yourdomain.com")" -defaultEPAGroup VALIDINTERNALCERTDOMAIN -quarantineGroup NOVALIDINTERNALCERTDOMAIN
add authentication Policy authpol_EPA_internal_cert_domain -rule "CLIENT.IP.SRC.IN_SUBNET(1.0.0.0/8) && CLIENT.IP.SRC.MATCHES_LOCATION(\"*.US.*.*.*.*\")" -action authact_EPA_internal_cert_domain
noauthn
このアクションとポリシーは、現在のポリシーラベルの以前のポリシーが失敗したときに評価する次のポリシーラベルのプレースホルダーとして一般的に使用される認証なしのプレースホルダーです。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication noAuthAction authact_noauthn
add authentication Policy authpol_noauthn -rule true -action authact_noauthn
ログインスキーマ
次に、各ファクタで使用するログインスキーマを作成します。
lspol_singlemanage
このログインスキーマは、ネイティブ OTP 登録に使用されます。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication loginSchema lsact_singlemanage -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuthManageOTP.xml"
add authentication loginSchemaPolicy lspol_singlemanage -rule "http.req.cookie.value(\"NSC_TASS\").eq(\"manageotp\")" -action lsact_singlemanage
lspol_singleauth
このログインスキーマは、LDAP ユーザー名とパスワードの認証に使用されます。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication loginSchema lsact_singleauth -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuth.xml"
add authentication loginSchemaPolicy lspol_singleauth -rule true -action lsact_singleauth
lspol_dualauthotp
このログインスキーマは、ネイティブ OTP 認証に使用されます。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication loginSchema lsact_dualauthotp -authenticationSchema "/nsconfig/loginschema/LoginSchema/DualAuth.xml"
add authentication loginSchemaPolicy lspol_dualauthotp -rule true -action lsact_dualauthotp
スマートタグ
次に、デバイスのポスチャチェックの結果をCitrix Cloud サービスに中継するスマートタグを作成します。
lspol_singlemanage
このログインスキーマは、ネイティブ OTP 登録に使用されます。
環境に応じて次のフィールドを更新し、その文字列をコピーして CLI に貼り付けます。
add authentication loginSchema lsact_singlemanage -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuthManageOTP.xml"
add authentication loginSchemaPolicy lspol_singlemanage -rule "http.req.cookie.value(\"NSC_TASS\").eq(\"manageotp\")" -action lsact_singlemanage
証明書
ドメイン証明書
このPOCでは、Active Directory ドメインに対応するワイルドカード証明書を使用しました。これは、ゲートウェイ仮想サーバー(adaptiveauth.yourdomain.com)へのアクセスに使用する完全修飾ドメイン名にも対応しています。
- Citrix ADC GUIにログインします
- [ トラフィック管理] > [SSL] > [証明書] > [すべての証明書 ] の順に選択し、ドメイン証明書と CA がインストールされ、リンクされていることを確認します。 詳細については、「 Citrix ADC SSL証明書 」を参照してください。
デバイス証明書
ユーザーとデバイスの証明書の管理には、多くのシステムおよびオプションがあります。このPOCでは、私たちのActive Directory サーバーにインストールされているMicrosoft の認証局を使用します. また、Windows 10 エンドポイントがドメインに参加しています。
- 私たちのドメインの [スタート] メニューから Windows 10 エンドポイントに参加しました。
mmc
を入力し、右クリックして管理者として実行 - [ファイル] > [追加と削除]、[証明書] の順に選択し、矢印を選択して [選択されたスナップイン] ウィンドウに移動し、[コンピュータアカウント]、[次へ]、[ローカルコンピュータ]、[完了] の順に選択し、[OK] をクリックします。
- [個人] フォルダを開き、[証明書] フォルダを右クリックし、[すべてのタスク] > [ ]
- 証明書の種類が表示されるまで [次へ] をクリックし、[コンピュータ] を選択し、[登録] をクリックし、[完了]
- インストールされた証明書をダブルクリックし、[証明書パス] タブを選択し、上部にあるルート CA を選択して、[証明書の表示] をクリックします。(注:Active Directory サーバーからCAをエクスポートできますが、POCの場合はここで行うことで手順を排除できます)
- ポップアップで [詳細] タブを選択し、[ファイルにコピー]、[次へ]、[次へ] の順にクリックします (DER エンコーディングを受け入れます)。
- [参照] を選択し、ファイル名を入力し、[保存]、[次へ] の順に選択し、[完了] を選択して CA 証明書ファイルを保存します。
- 次に、 **トラフィック管理 > SSL > 証明書 > CA 証明書に移動して ADC にインポートします。
- [インストール] をクリックし、名前を入力し、[ファイルの選択]
DeviceCertificateCA
、[ローカル] の順に選択し、ファイルを選択し、[開く] をクリックして [ ] をクリックします
詳細については、「 LDAP 認証ポリシー」を参照してください。
適応型認証ポリシーの設定-GUI
次に、 AAA
仮想サーバーを作成し、証明書、ポリシー、スキーマを適切な優先順位でバインドします。
証明書
- [ トラフィック管理] > [SSL] > [証明書] > [すべての証明書 ] の順に選択し、ドメイン証明書がインストールされていることを確認します。この POC の例では、Active Directory ドメインに対応するワイルドカード証明書を使用しました。 詳細については、「 Citrix ADC SSL証明書 」を参照してください。
- 次に
Security > AAA - Application Traffic > Virtual Servers
に移動し、[追加] を選択します - 次のフィールドに入力します。
- 名前:一意の値。を入力します
nativeotp_authvserver
- IP アドレスの種類-
Non Addressable
- 名前:一意の値。を入力します
- ダウンロードが完了した後、
Ok
- [サーバー証明書なし] を選択し、
Select Server Certificate
の下の矢印を選択し、ドメイン証明書を選択して [選択]、[バインド]、[続行] の順にクリックします。 -
Advanced Authentication Policies
でNo Nfactor Flow
を選択します -
Select nFactor Flow
の下の右矢印を選択し、factor0_notp
を選択し 、Select
をクリックして 、Bind
をクリックします -
Continue
をクリックし、Done
認証ポリシー
ログインスキーマ
交通政策
ここで、LDAPパスワードをStoreFront にリレーするトラフィックポリシーを作成します, 代わりに、OTPパスコード.
- Citrix Gateway > 仮想サーバー > ポリシー > トラフィックに移動します
-
Traffic Profiles
タブを選択し、[追加] をクリックします。 - 名前の入力
notp_trafficprofile
- 選択
HTTP
- SSO パスワード式に
http.REQ.USER.ATTRIBUTE(1)
を入力します - 「 を作成」をクリックします
- 次に、[トラフィックポリシー] タブをクリックします。
- [Request Profile] フィールドで、作成した
notp_trafficprofile
トラフィックプロファイルを選択します。 - 名前の入力
nOTP_TrafficPolicy
- [エクスプレス] ボックスに
true
を入力します -
Create
をクリックします
ユーザーエンドポイントを検証
今、私たちは、私たちのCitrix Virtual Apps and Desktops 環境に認証することにより、ネイティブOTPをテストします.
Citrix SSOアプリでの登録
まず、Citrix SSOアプリを使用してデバイスをネイティブOTPに登録します。
- ブラウザを開き、Citrix Gatewayで管理されるドメインFQDNにFQDNの最後に
/manageotp
が付加されたドメインに移動します。https://adaptiveauth.yourdomain.com/manageotp
を使用します。 - ブラウザがログイン画面にリダイレクトされたら、ユーザー(UPN)、パスワード( )を入力します。
- 次の画面で [デバイスの追加] を選択し、名前を入力します。
iPhone7_nOTP
- [Go] を選択すると、QR コードが表示されます。
- モバイルデバイスで、Citrix SSOアプリ、またはMicrosoftやGoogleなどの他の認証アプリを開きます(アプリストアからダウンロード可能)
- [新しいトークンの追加] を選択します
- QRコードをスキャンするを選択します
- [カメラをQRコードに向ける] を選択し、キャプチャされたら [ ] を選択します
- [保存] を選択して、 。
- トークンがアクティブになり、30秒間隔でOTPコードの表示が開始されます。
- [完了] を選択すると、デバイスが正常に追加されたという確認が表示されます。
Citrix Cloud サービスにログイン
次に、ユーザーはCitrix SSOアプリからUserPrincipalName、パスワード、OTPパスコードを入力して、仮想アプリおよびデスクトップにアクセスします。
- ブラウザー(またはCitrix Workspace アプリ)を開き、ワークスペースのFQDN(Citrix Cloud の[ワークスペース構成]にあります)に移動します。
https://adaptiveauth.yourdomain.com
を使用します。
信頼できるシナリオ
- デバイスがドメインに参加していること、エンタープライズデバイス証明書がインストールされていること、または設定された「内部」の場所の範囲内にあることを確認します。
- ブラウザがログイン画面にリダイレクトされたら、userPrincipalNameとパスワードを入力します。
- ユーザーのSecure Private AccessアプリとCitrix Virtual Apps
信頼できないシナリオ
- デバイスがドメインに参加していないこと、エンタープライズデバイス証明書がないこと、または構成された「内部」の場所の範囲外であることを確認します。
- ブラウザがログイン画面にリダイレクトされたら、userPrincipalNameとパスワードを入力します。
- Citrix SSOアプリを開き、 。
- ユーザーのSecure Private AccessアプリとCitrix Virtual Apps and Desktops が表示されていることを確認します
トラブルシューティング
ここでは、Native OTP の一般的なトラブルシューティング領域をいくつか見ていきます。
NTPエラー
OTP コードでログインすると、NTP 同期の確認を知らせるメッセージがページに投稿されることがあります。正しい時刻ベースのOTPを生成するには、Citrix ADCの時刻を同期する必要があります。NTP を実装していない場合は、次の手順を実行します。
- Citrix ADC 時刻を手動で現在の時刻に設定します 。これにより、同期が高速になり、それ以外の場合はより長い時間がかかります
- NTPサーバの追加
- OTPコードを送信してもNTPエラーが発生する場合は、「 NetScalerの時刻表示がNTPを使用して同期しない」を参照してください。
認証エラー
-
Cannot complete your request.
-認証が成功した後にこのエラーメッセージが表示される場合は、ユーザーの資格情報をStoreFront に渡すエラーを示している可能性があります。二重認証スキーマとトラフィックポリシーの設定を確認します。 -
Try again or contact your help desk
-このエラーメッセージは、多くの場合、LDAPログインの失敗を示します。 パスワードが正しいことを確認したら、管理者バインドパスワードが設定されていることを確認してください。既存の LDAP 認証ポリシーがあり、管理ポリシーを選択し、[add] を選択して作成した可能性があります。この手順では、Base DN
のような既存の設定を入力することで時間を節約できます。また、[Administrator password] フィールドは入力されているように見えますが、パスワードを再入力する必要があります。
概要
従業員のアクセス場所を特定することで、企業は認証要件を下げ、摩擦を減らし、ユーザーエクスペリエンスを向上させることができます。安全な境界の背後にある内部ロケーションの従業員は、2 つの認証要素のみを必要としますが、外部ロケーションの従業員は、自信をもって身元を確認し、信頼を確立するために 3 つの認証要素を必要とする場合があります。
参照ドキュメント
詳細については、以下を参照してください。
ネイティブ OTP 認証 — ネイティブ OTP の実装とユースケースに関する詳細をご覧ください。