Citrix ADC

eメールotp認証

EメールOTPは,Citrix ADC 12.1ビルド51.xで導入されます。电子邮件OTPメソッドを使用すると,登録された電子メールアドレスに送信されるワンタイムパスワード(OTP)を使用して認証できます。任意のサービスで認証しようとすると,サーバーはユーザーの登録された電子メールアドレスにOTPを送信します。

Eメールotp機能を使用するには,最初に代替Eメールidを登録する必要があります。アカウントのロックアウトがあった場合,または广告パスワードを忘れた場合,プライマリ電子メールIDにアクセスできないため,OTPをメールIDに送信するには,別の電子メールID登録が必要です。

すでに一部の广告属性の一部として代替電子メールIDを指定している場合は,電子メールIDの登録なしで電子メールOTP検証を使用できます。電子メールアドレスセクションで代替電子メールIDを指定する代わりに,電子メールアクションで同じ属性を参照できます。

前提条件

Eメールotp機能を設定する前に,次の前提条件を確認してください:

  • Citrix ADC機能リリース12.1ビルド51.28以降
  • EメールOTP機能は,nFactor認証フローでのみ使用可能

アクティブディレクトリの設定

  • サポートされるバージョンは2016/2012,2008年のActive Directoryドメイン機能レベルです。
  • Citrix ADC LDAPBindユーザー名には,ユーザーの广告パスへの書き込みアクセス権が必要です

メールサーバー

  • EメールOTPソリューションが機能するには,SMTPサーバーでログインベースの認証が有効になっていることを確認します。Citrix ADCはEメールOTPが機能するための認証ログインベースの認証のみをサポートしています。

  • 認証ログインベースの認証が有効になっていることを確認するには,SMTPサーバーで次のコマンドを入力します。ログインベースの認証が有効になっている場合は,认证登录というテキストが出力に太字で表示されます。

smtpサーバーでのログインベースの認証を有効にする

制限事項

  • この機能は,認証バックエンドがldapの場合にのみサポートされます。
  • すでに登録されている代替eメールidは表示できません。
  • “kba登録”ページの代替eメールidのみを更新できません。
  • kbaおよびeメールのotp認証と登録は,認証フローの最初の要素にはできません。これは,堅牢な認証を実現するためのものです。
  • 同じ認証LDAPアクションを使用する場合は,KBAと代替EメールIDに同じ广告属性を構成する必要があります。
  • ネイティブプラグインおよび收件人の場合,登録はブラウザ経由でのみサポートされます。

活动目录構成

  • EメールOTPは,ユーザーデータストレージとしてActive Directory属性を使用します。

  • 代替EメールIDを登録すると,それらはCitrix ADCアプライアンスに送信され,アプライアンスは广告ユーザーオブジェクトの構成済みKB属性にこれを保存します。

  • 代替eメールidは暗号化され,設定されたAD属性に保存されます。

AD属性を設定する場合は,次の点を考慮してください。

  • 属性の長さは128文字以上にする必要があります。
  • 属性タイプは"ディレクトリ文字列"でなければなりません。
  • ネイティブotpおよびkba登録データには,同じad属性を使用できます。
  • ldap管理者は,選択したad属性への書き込みアクセス権を持っている必要があります。

既存の属性の使用

この例で使用される属性は"ユーザーパラメータ"です。これはADユーザー内の既存の属性であるため,AD自体に変更を加える必要はありません。ただし,属性が使用されていないことを確認する必要があります。

属性が使用されないようにするには,ADSIに移動して[ユーザー]を選択し,ユーザーを右クリックして,属性リストまでスクロールします。UserParametersの属性値が没有设置と表示される必要があります。これは,その属性が現在使用されていないことを示します。

ad属性の設定

eメールotpの構成

Eメールotpソリューションは,次の2つの部分で構成されています:

  • メール登録
  • eメールの検証

メール登録

ユーザーの代替eメールidを登録するには,次の2つの方法があります:

  1. kba登録時
  2. EメールID登録のみ——この方法は,13.0ビルド61. x以降,12.1ビルド58. x以降からサポートされています。

kba登録時

KBA登録LoginSchema

  1. 安全> AAA -应用流量>登录模式>配置文件に移動して添加KBA注册登录模式をクリックします。

    kba登録ログインスキーマ

  2. kba登録認証スキーマを構成します。一度生成されたこのLoginSchemaは,登録プロセス中にエンドユーザーに対して設定されたすべての質問を表示します。[電子メール登録]セクションで,代替電子メールの登録]オプションをオンにして,ユーザーの代替電子メールIDを登録します。

    認証ログインスキーマ

    ユーザー定義の質問

  3. [電子メール登録]セクションで,[代替電子メールの登録]をオンにして,代替電子メールidを登録します。

    代替電子メールの登録

前述のKBA登録スキーマが正常に作成されたら,CLIコマンドプロンプトを使用して次の設定を行います。

  1. ポータルのテーマと証明書をvpnグローバルにバインドします。

    bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 

    注:

    ユーザーデータを暗号化するには,先行する証明書バインディングが必要です(KB Q &广告属性に保存されている一および代替メールID)

  2. ldap認証ポリシーを作成します。

    add authentication ldapAction ldap -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd - ldploginname samAccountName -secType SSL add authentication Policy ldap -rule true -action ldap 
  3. KBA登録LoginschemaとPolicyLabelを作成します。

    添加认证loginSchema Registrationschema -authenticationSchema /nsconfig/ loginSchema / loginSchema /KBARegistrationSchema.xml[这是上一节创建的认证模式。] add authentication policylabel Registrationfactor -loginSchema Registrationschema add authentication ldapAction ldap_registration -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd - ldapploginname samAccountName -secType SSL -KBAttribute userParameters -alternateEmailAttr userParameters add authentication Policy ldap_registration -rule true -action ldap_registration绑定认证policylabelRegistrationfactor -policyName ldap_registration -priority 1 -gotoPriorityExpression NEXT 
  4. 認証ポリシーを認証仮想サーバーにバインドします。

    绑定认证vserver authv - policy ldap -priority 1 - nextfactor Registrationfactor - gotopriorityexpression NEXT 
  5. 前のセクションで説明したすべての手順を構成すると,次のgui画面が表示されます。たとえば,网址を介してアクセスすると,https://lb1.server.com/ldapログオン資格情報のみを必要とする初期ログインページが表示されます。

    2要素のログインページ

  6. 有効な資格情報でログインすると,次のようなユーザー登録ページが表示されます。

    kba登録ログオン

  7. ユーザー登録が成功し,セッションが作成されるようにするには,(提交)をクリックします。

eメールid登録のみ

前述のKBA登録スキーマが正常に作成されたら,CLIコマンドプロンプトを使用して次の設定を行います。

  1. ポータルのテーマと証明書をvpnグローバルにバインドします。

    bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 

    注:

    ユーザーデータを暗号化するには,先行する証明書バインディングが必要です(KB Q &广告属性に格納されている一および代替メールID登録済み)。

  2. ldap認証ポリシーを作成します。

    add authentication ldapAction ldap -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd - ldploginname samAccountName -secType SSL add authentication Policy ldap -rule true -action ldap 
  3. 電子メール登録用のldap認証ポリシーを作成します。

    add authentication ldapAction ldap_email_registration -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd - ldapploginname samAccountName -secType SSL -KBAttribute userParameters -alternateEmailAttr userParameters添加认证策略ldap_email_registration -rule true -action ldap_email_registration 
  4. Eメール登録LoginschemaとPolicyLabelを作成します。

    添加认证policylabel email_Registration_factor -loginSchema onlyEmailRegistration绑定认证policylabel email_Registration_factor -policyName ldap_email_registration -priority 1 -gotoPriorityExpression NEXT 
  5. 認証ポリシーを認証仮想サーバーにバインドします。

    绑定认证vserver authvs -policy ldap -priority 1 -nextFactor email_Registration_factor -gotoPriorityExpression NEXT 
  6. 前のセクションで説明したすべての手順を構成すると,次のgui画面が表示されます。たとえば,网址を介してアクセスすると,https://lb1.server.com/LDAPログオン資格情報のみを必要とする最初のログインページとそれに続く代替の電子メール登録ページが表示されます。

    2要素のログインページ

    電子メール登録ログオン

eメールの検証

電子メールの検証については,次の手順を実行します。

  1. ポータルのテーマと証明書をvpnグローバルにバインドする

    bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 

    注:

    ユーザーデータを復号化するには,先行する証明書バインディングが必要です(KB Q &广告属性に保存されている代替メールID(登録済み)。

  2. ldap認証ポリシーを作成します。電子メールOTP検証にはユーザーの電子メールIDまたは代替電子メールIDが必要なため,LDAPは電子メール検証要素の前の要素である必要があります

    add authentication ldapAction ldap1 - serverip 10.102.2.2 - serverport 636 - ldapbase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com - ldapbinddnpassword freebsd - ldapploginname samAccountName - sectype SSL - kbattribute userParameters - alternateemailattr userParameters add authentication Policy ldap1 -rule true -action ldap1 
  3. メール認証ポリシーを作成する

    add authentication emailAction email -userName sqladmin@aaa.com -password freebsd-encrypted -encryptmethod ENCMTHD_3 -serverURL "smtps://10.2.3.3:25" -content "OTP is $code" -defaultAuthenticationGroup emailgrp -emailAddress "aaa.user.attribute("alternate_mail")" add authentication Policy email -rule true -action email 

    前述のコマンドでは,電子メールアドレスは,kba登録時に提供された代替電子メールidです。

  4. 電子メールOTP検証policyLabelを作成します。

    添加认证policylabel email_Validation_factor绑定认证policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT 
  5. 認証ポリシーを認証仮想サーバーにバインドする

    绑定认证vserver authv - policy ldap1 -priority 1 - nextfactor email_Validation_factor - gotopriorityexpression NEXT 
  6. 前のセクションで説明したすべての手順を構成すると,邮件OTP検証用の次のGUI画面が表示されるはずです。たとえば,url(例https://lb1.server.com/)経由でアクセスすると,LDAPログオン資格情報のみを必要とする最初のログインページが表示され,その後にEメールOTP検証ページが表示されます。

    注:

    LDAPポリシーでは,广告属性からユーザーの電子メールIDを照会できるようにalternateEmailAttrを構成することが重要です。

    2要素のログインページ

    電子メールからのotp

トラブルシューティング

ログを分析する前に,次のようにデバッグするログレベルを設定することをお勧めします。

设置syslog参数-loglevel DEBUG 

登録-成功シナリオ

次のエントリは,ユーザー登録が成功したことを示しています。

"ns_aaa_insert_hash_keyValue_entry key:kba_registered value:1" Nov 14 23:35:51  10.102.229.76 11/14/2018:18:05:51 GMT 0- pe -1: default SSLVPN Message 1588 0:“ns_aaa_insert_hash_keyValue_entry关键:alternate_mail值:eyJ2ZXJzaW9uIjoiMSIsICJraWQiOiIxbk1oWjN0T2NjLVVvZUx6NDRwZFhxdS01dTA9IiwgImtleSI6IlNiYW9OVlhKNFhUQThKV2dDcmJSV3pxQzRES3QzMWxINUYxQ0tySUpXd0h4SFRIdVlWZjBRRTJtM0ZiYy1RZmlQc0tMeVN2UHpleGlJc2hmVHZBcGVMZjY5dU5iYkYtYXplQzJMTFF1M3JINFVEbzJaSjdhN1pXUFhqbUVrWGdsbjdUYzZ0QWtqWHdQVUI3bE1FYVNpeXhNN1dsRkZXeWtNOVVnOGpPQVdxaz0iLCAiaXYiOiI4RmY3bGRQVzVKLVVEbHV4IiwgImFsZyI6IkFFUzI1Nl9HQ00ifQ = =。oKmvOalaOJ3a9z7BcGCSegNPMw = =“< !——NeedCopy >

登録-失敗したシナリオ

ユーザーログインページに,“リクエストを完了できません”というエラーメッセージが表示されます。これは,ユーザーデータを暗号化するためにVPNグローバルにバインドされる証明書キーが欠落していることを示しています。

七月31 08:51:46  10.102.229.79 07/31/2020 20:03:21:46 GMT 0- ppe -1: default SSLVPN Message 696 0: "Encrypt UserData: No Encryption cert is bound to vpn global" 7月31 08:51:46  10.102.229.79 07/31/2020 03:21:46 GMT 0- ppe -1: default SSLVPN Message 697 0: "KBA Register: Alternate email id Encrypted blob length is ZERO aaauser" 

電子メールの検証-成功シナリオ

次のエントリは,eメールotp検証が成功したことを示します。

"NFactor:成功完成邮件认证,nextfactor是pwd_reset" 

電子メールの検証-失敗したシナリオ

ユーザーログインページで,“リクエストを完了できません”というエラーメッセージが表示されます。これは,電子メールサーバーでログインベースの認証が有効になっていないため,同じ認証を有効にする必要があることを示します。

/home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/ pocommail .cpp[100]: void ThreadWorker_SendMailJob(SMTPJob*) 0-215: [POCO][JobID: 8]SMTP Configuration is Secure../home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/ pocommail .cpp[108]: void ThreadWorker_SendMailJob(SMTPJob*) 0-215: [POCO][JobID: 8] First login succeeded Wed Mar 4 17:16:28 2020 /home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/naaad.c[697]: main 0-0: timer 2被触发…/home/build/ rs_130_36_15_rtm /usr.src/netscaler/aaad/ pocommail .cpp[127]: void ThreadWorker_SendMailJob(SMTPJob*) 0-0: [Poco - error][JobID: 8] Poco SMTP邮件分发失败。SMTP TYPE:1, SMTPException:出现异常。SMTP异常:邮件服务不支持登录认证:250-smtprelay.citrix.com Hello [10.9.154.239] 250- size 62914560 250- pipelining 250- dsn 250- enhancedstatuscodes 250- 8bitmime 250- binarymime 250 CHUNKING 
eメールotp認証