最初の要素で電子メール ID(またはユーザー名)入力ベースのグループ抽出を構成して、次の要素認証フローを決定します
従業員、パートナー、ベンダーの3つの部門(グループ)を持つ組織を考えてみましょう。Citrix ADCアプライアンスは、最初の要素ログオンフォームでユーザーが指定した電子メールIDまたはADユーザー名に基づいてユーザーのグループを抽出するように構成できます。Citrix ADCは、ユーザーが属するグループに基づいて、次の表に示すように認証方法(LDAP、SAML、OAuth など)を示します。
グループ名 | 要素 |
---|---|
従業員 | 単一認証 (ユーザー名/パスワード) |
パートナー | OAuth (別の IdP にリダイレクトする) |
ベンダー | SAML (別の IdP へのリダイレクト) |
次の図は、前述のユースケースにおけるユーザーとCitrix ADCアプライアンス間の高レベルの相互作用を示しています。
- ユーザーはCitrix Workspaceにログインし、認証仮想サーバーにリダイレクトされます。
-
Citrix ADCは、電子メールID(またはユーザー名)を入力するためのログオンフォームを提示します。
- ユーザーは、電子メール ID(またはユーザー名)を入力します。
- 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(またはユーザー名)入力ベースのグループ抽出を構成します
- セキュリティ > AAA アプリケーショントラフィック > nFactor ビジュアライザー > nFactor フローに移動し 、 追加をクリックします。
-
- をクリックして nFactor フローを追加します。
-
EmailOnlyLoginSchemaを使用して、LDAP グループ抽出ポリシーを使用してグループ抽出の要素を追加します。入力する名前は nFactor フローの名前です。[作成] をクリックします。
-
nFactor ブロックの [ スキーマの追加 ] をクリックします。カスタマイズされたログインスキーマ (この場合は EmailOnlyLSchema) を作成するには、組み込みの OnlyUsername.xml スキーマを編集します。
-
作成したログインスキーマファイルを使用して、認証ログインスキーマを作成します。
-
[ 認証ログインスキーマ]リストからログインスキーマを選択し 、[ OK]をクリックします。
-
認証ポリシーの作成に使用する認証を無効にしたグループ抽出用の LDAP サーバを作成します。LDAP 認証の作成の詳細については、「LDAP 認証の設定」を参照してください。
-
[ その他の設定 ] をクリックして、LDAP サーバに次の値を指定します。 LDAP ログイン名 — メール、グループ属性- memberOf; サブ属性名- cn。
-
[ ポリシーの追加 ] をクリックし、[ 追加 ] をクリックして、グループ抽出認証ポリシーを作成します。
-
EmailBasedGroupExtraction ブロックの緑の + 記号をクリックして、次の要素のデシジョンブロックを作成します。
-
[ 接続する次の要素 ] 画面で、[ デシジョンブロックの作成] を選択し、デシジョンブロックの名前を入力して、[ 作成] をクリックします。
-
それぞれのデシジョンブロックについて、宛先グループごとに認証ポリシーを作成します。たとえば、AD グループ「従業員」のグループベースの認証ファクターなどです。
-
次の図は、すべてのデシジョンブロックが作成された後の nFactor フローを示しています。
-
すべてのデシジョンブロックが作成されたら、すべてのグループベースのデシジョンブロックをそれぞれの認証要素にバインドします。たとえば、Employee グループには、ユーザー名とパスワード認証係数を設定できます。
-
[認証ログインスキーマ] ドロップダウンメニューからログインスキーマを選択し、[ 追加] をクリックします。
-
認証ポリシーを選択し、[ Add] をクリックします。
-
すべてのグループベースのデシジョンブロックが認証ポリシーを要素として構成すると、nFactor フローは次の図のようになります。
-
[ 認証サーバーにバインド ] をクリックし、[ 作成] をクリックします。
-
認証仮想サーバーを選択し、nFactor Flow をクリックします。
-
nfactor フローの選択] フィールドで nFactor フローを選択し 、[ 追加] をクリックします。
-
このフローを認証、認可、および監査仮想サーバーにバインドします。
nFactor のバインドを解除する
- nFactorフローを選択し、[ バインディングの表示]をクリックします。
- 認証仮想サーバーを選択し、[ バインド解除]をクリックします。