Citrix ADC

最初の要素で電子メール ID(またはユーザー名)入力ベースのグループ抽出を構成して、次の要素認証フローを決定します

従業員、パートナー、ベンダーの3つの部門(グループ)を持つ組織を考えてみましょう。Citrix ADCアプライアンスは、最初の要素ログオンフォームでユーザーが指定した電子メールIDまたはADユーザー名に基づいてユーザーのグループを抽出するように構成できます。Citrix ADCは、ユーザーが属するグループに基づいて、次の表に示すように認証方法(LDAP、SAML、OAuth など)を示します。

グループ名 要素
従業員 単一認証 (ユーザー名/パスワード)
パートナー OAuth (別の IdP にリダイレクトする)
ベンダー SAML (別の IdP へのリダイレクト)

次の図は、前述のユースケースにおけるユーザーとCitrix ADCアプライアンス間の高レベルの相互作用を示しています。

Email-1

  1. ユーザーはCitrix Workspaceにログインし、認証仮想サーバーにリダイレクトされます。
  2. Citrix ADCは、電子メールID(またはユーザー名)を入力するためのログオンフォームを提示します。

    Email-2

  3. ユーザーは、電子メール ID(またはユーザー名)を入力します。
  4. Citrix ADCは、提供された電子メールID(またはユーザー名)を使用して抽出されたグループに基づいてログオンフォームを表示します。

最初の要素で電子メール ID(またはユーザー名)入力ベースのグループ抽出を設定し、CLI を使用して次の要素認証を決定する

前提要件

負荷分散仮想サーバーは、認証を有効にして構成されています。

電子メールベースのグループ抽出用の認証仮想サーバーを構成する

この場合、 OnlyUsername.xml スキーマを変更して、カスタマイズされたログインスキーマ (emailOnlyLSchema) を作成できます。

前の手順で作成した電子メールログインスキーマを使用してログインスキーマポリシーを作成し、認証仮想サーバーにバインドします

add authentication loginSchema lschema_only_email -authenticationSchema "/nsconfig/loginschema/only_email.xml"

add authentication loginSchemaPolicy lschema_only_email_pol -rule true -action lschema_only_email

bind authentication vserver abs_sp_auth_vs -policy lschema_only_email_pol -priority 100 -gotoPriorityExpression END

グループ抽出用の LDAP 認証ポリシーを作成する

注:

ldapLoginName は電子メール ID ベースのログインの場合は「メール」ですが、-ldapLoginName はユーザー名ベースのログインの場合は「samAccountName」です。

add authentication ldapAction aaa_local_grp_extraction -serverIP 90.1.187.40 -ldapBase "OU=ABSOU,dc=aaa,dc=local" -ldapBindDn administrator@aaa.local -ldapBindDnPassword xxxx -ldapLoginName mail -groupAttrName memberOf -subAttributeName CN -secType TLS -authentication DISABLED

add authentication Policy aaa_local_grp_extraction_pol -rule true -action aaa_local_grp_extraction

抽出されたグループベースのポリシー構成

ポリシーラベルを使用して、従業員、パートナー、ベンダーグループの次の要素を作成する

add authentication loginSchema lschema_noschema -authenticationSchema noschema
add authentication policylabel plabel_noauth_Employee_Partner_Vendor -loginSchema lschema_noschema

add authentication Policy noauth_Employee_pol -rule "AAA.USER.IS_MEMBER_OF("Employee")" -action NO_AUTHN
add authentication Policy noauth_Partner_pol -rule "AAA.USER.IS_MEMBER_OF("Partner")" -action NO_AUTHN
add authentication Policy noauth_Vendor_pol -rule "AAA.USER.IS_MEMBER_OF("Vendor")" -action NO_AUTHN

単一の認証ポリシーファクタを作成する(この設定の例として LDAP を使用)

add authentication loginSchema lschema_singleauth_Employee -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuth.xml"

add authentication policylabel plabel_singleauth_Employee -loginSchema lschema_singleauth_Employee

add authentication ldapAction aaa_local_pwd_act -serverIP 90.196.17.40 -ldapBase "OU=ABSOU,dc=aaa,dc=local" -ldapBindDn administrator@aaa.local -ldapBindDnPassword xxxx -ldapLoginName samAccountName -groupAttrName memberOf -subAttributeName CN -secType TLS -ssoNameAttribute userPrincipalName -passwdChange ENABLED -nestedGroupExtraction ON -maxNestingLevel 7 -groupNameIdentifier sAMAccountName -groupSearchAttribute memberOf -groupSearchSubAttribute CN -defaultAuthenticationGroup ldapDefaultAuthGroup -Attribute1 userPrincipalName -Attribute2 mail

add authentication Policy aaa_local_pwd_pol -rule true -action aaa_local_pwd_act

bind authentication policylabel plabel_singleauth_Employee -policyName aaa_local_pwd_pol -priority 100 -gotoPriorityExpression NEXT

OAuth IdP にリダイレクトするための OAuth ポリシーを作成する

add authentication policylabel plabel_oauth_Partner -loginSchema

add authentication OAuthAction oauth_sp_act -authorizationEndpoint "https://absauthidp.aaa.local/oauth/idp/login?response_type=code&scope=openid&client_id=netscaler" -tokenEndpoint "https://absauthidp.aaa.local/oauth/idp/token" -clientID netscaler -clientSecret 1e1155e92ad926dea4fa05a46e1dfa7e10063ad6fe2086394e9e435b19b28a5e -encrypted -encryptmethod ENCMTHD_3 -kek -suffix 2021_02_18_11_22 -CertEndpoint "https://absauthidp.aaa.local/oauth/idp/certs" -audience absauthidp.aaa.

add authentication Policy oauth_sp_pol -rule true -action

bind authentication policylabel plabel_oauth_Partner -policyName oauth_sp_pol -priority 100 -gotoPriorityExpression NEXT

SAML IdP にリダイレクトするための SAML ポリシーの作成

add authentication policylabel plabel_saml_Vendor -loginSchema lschema_noschema

add authentication samlAction saml_sp_act -samlIdPCertName server_certkey -samlSigningCertName server_certkey -samlRedirectUrl "https://absauthidp.aaa.local/saml/login" -samlUserField nameid -samlIssuerName "https://abssamlissuer.aaa.local"

add authentication Policy saml_sp_pol -rule true -action

bind authentication policylabel plabel_saml_Vendor -policyName saml_sp_pol -priority 100 -gotoPriorityExpression NEXT

3つのポリシー要素すべてをPlabel_NoAuth_employee_Partner_Vendorにバインドする

bind authentication policylabel plabel_noauth_Employee_Partner_Vendor -policyName noauth_Employee_pol -priority 100 -gotoPriorityExpression NEXT -nextFactor plabel_singleauth_Employee

bind authentication policylabel plabel_noauth_Employee_Partner_Vendor -policyName noauth_Partner_pol -priority 110 -gotoPriorityExpression NEXT -nextFactor

bind authentication policylabel plabel_noauth_Employee_Partner_Vendor -policyName noauth_Vendor_pol -priority 120 -gotoPriorityExpression NEXT -nextFactor plabel_saml_Vendor

グループ抽出認証ポリシーの NextFactor としてグループベースのポリシーラベルをバインドする

bind authentication vserver abs_sp_auth_vs -policy aaa_local_grp_extraction_pol -priority 100 -nextFactor plabel_noauth_Employee_Partner_Vendor -gotoPriorityExpression NEXT

nFactor ビジュアライザーを使用して次のファクター認証を決定するために、最初のファクターで電子メール ID(またはユーザー名)入力ベースのグループ抽出を構成します

  1. セキュリティ > AAA アプリケーショントラフィック > nFactor ビジュアライザー > nFactor フローに移動し追加をクリックします
    • をクリックして nFactor フローを追加します。
  2. EmailOnlyLoginSchemaを使用して、LDAP グループ抽出ポリシーを使用してグループ抽出の要素を追加します。入力する名前は nFactor フローの名前です。[作成] をクリックします。

    メール3

  3. nFactor ブロックの [ スキーマの追加 ] をクリックします。カスタマイズされたログインスキーマ (この場合は EmailOnlyLSchema) を作成するには、組み込みの OnlyUsername.xml スキーマを編集します。

    メール4

  4. 作成したログインスキーマファイルを使用して、認証ログインスキーマを作成します。

    メール5

  5. 認証ログインスキーマ]リストからログインスキーマを選択し 、[ OK]をクリックします。

    Eメール6

  6. 認証ポリシーの作成に使用する認証を無効にしたグループ抽出用の LDAP サーバを作成します。LDAP 認証の作成の詳細については、「LDAP 認証の設定」を参照してください。

    メール7

  7. [ その他の設定 ] をクリックして、LDAP サーバに次の値を指定します。 LDAP ログイン名 — メール、グループ属性- memberOf; サブ属性名- cn

    Email-8

  8. [ ポリシーの追加 ] をクリックし、[ 追加 ] をクリックして、グループ抽出認証ポリシーを作成します。

    メール9

  9. EmailBasedGroupExtraction ブロックの緑の + 記号をクリックして、次の要素のデシジョンブロックを作成します。

    メール10

  10. [ 接続する次の要素 ] 画面で、[ デシジョンブロックの作成] を選択し、デシジョンブロックの名前を入力して、[ 作成] をクリックします。

    メール-11

  11. それぞれのデシジョンブロックについて、宛先グループごとに認証ポリシーを作成します。たとえば、AD グループ「従業員」のグループベースの認証ファクターなどです。

    Eメール12

  12. 次の図は、すべてのデシジョンブロックが作成された後の nFactor フローを示しています。

    メール-13

  13. すべてのデシジョンブロックが作成されたら、すべてのグループベースのデシジョンブロックをそれぞれの認証要素にバインドします。たとえば、Employee グループには、ユーザー名とパスワード認証係数を設定できます。

    メール-14

  14. [認証ログインスキーマ] ドロップダウンメニューからログインスキーマを選択し、[ 追加] をクリックします。

    メール-15

  15. 認証ポリシーを選択し、[ Add] をクリックします。

    メール-16

  16. すべてのグループベースのデシジョンブロックが認証ポリシーを要素として構成すると、nFactor フローは次の図のようになります。

    メール-17

  17. [ 認証サーバーにバインド ] をクリックし、[ 作成] をクリックします。

    メール-18

  18. 認証仮想サーバーを選択し、nFactor Flow をクリックします。

    メール-19

  19. nfactor フローの選択] フィールドで nFactor フローを選択し 、[ 追加] をクリックします。

    メール20

  20. このフローを認証、認可、および監査仮想サーバーにバインドします。

    メール-21

nFactor のバインドを解除する

  1. nFactorフローを選択し、[ バインディングの表示]をクリックします。
  2. 認証仮想サーバーを選択し、[ バインド解除]をクリックします。
最初の要素で電子メール ID(またはユーザー名)入力ベースのグループ抽出を構成して、次の要素認証フローを決定します