最初の要素でユーザー入力用のドメインドロップダウンリストを設定し、次の要素認証フローを決定します
従業員、パートナー、ベンダーの3つの部門(グループ)を持つ組織を考えてみましょう。Citrix ADCアプライアンスは、ユーザーが属する部門に基づいてログオンフォームをユーザーに提示するように構成できます。管理者は、次の表に示すように、各部門に異なる認証フローを設定できます。
グループ名 | 要素 |
---|---|
従業員 | 単一 Auth (ユーザー名/パスワード) |
パートナー |
OAuth (別の IdP にリダイレクト) |
ベンダー | SAML (別の IdP にリダイレクトする) |
次の図は、前述のユースケース用に構成されたユーザーとCitrix ADCアプライアンス間の高レベルの相互作用を示しています。
- ユーザーはCitrix Workspaceにログインし、認証仮想サーバーにリダイレクトされます。
-
Citrix ADCは、ドメインドロップダウンリストを含むログオンフォームを表示します。
-
[ドメイン (ディビジョン)] ドロップダウンリストから値を選択します。
- Citrix ADCは、ドロップダウンリストのユーザー入力に基づいてログオンフォームを表示します。
CLI を使用して次の要素認証フローを決定するために、最初の要素でユーザ入力用のドメインドロップダウンリストを設定します
前提要件
負荷分散仮想サーバーは、認証を有効にして構成されています。
ドメインドロップダウンリスト値の認証仮想サーバーを構成します
注: この場合は、 OnlyDomainDropdown.xml スキーマを変更して、カスタマイズされたログインスキーマ (divisionDropdown.xml) を作成できます。
最初のファクタを NO_AUTHN として作成します
add authentication Policy noauth_division_select_pol -rule true -action NO_AUTHN
ポリシーラベルを使用して、従業員、パートナー、ベンダー部門/部門の次の要素を作成する
add authentication loginSchema lschema_division_dropdown -authenticationSchema "/nsconfig/loginschema/devisionDropdown.xml"
add authentication policylabel plabel_noauth_Employee_Partner_Vendor -loginSchema lschema_division_dropdown
add authentication Policy noauth_Employee_pol -rule "AAA.LOGIN.DOMAIN.EQ(\"Employee\")" -action NO_AUTHN
add authentication Policy noauth_Partner_pol -rule "AAA.LOGIN.DOMAIN.EQ(\"Partner\")" -action NO_AUTHN
add authentication Policy noauth_Vendor_pol -rule "AAA.LOGIN.DOMAIN.EQ(\"Vendor\")" -action
単一の認証ポリシーファクタを作成する(この設定の例として 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 lschema_noschema
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.local
add authentication Policy oauth_sp_pol -rule true -action oauth_sp_act
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 saml_sp_act
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 plabel_oauth_Partner
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 noauth_division_select_pol -priority 100 -nextFactor plabel_noauth_Employee_Partner_Vendor -gotoPriorityExpression NEXT
GUI を使用して次の要素認証フローを決定するために、第 1 要素でのユーザ入力のドメインドロップダウンリストを設定します
- セキュリティ > AAA アプリケーショントラフィック > nFactor ビジュアライザー > nFactor フローに移動し 、 追加をクリックします。
- [ + ] をクリックして nFactor フローを追加します。
- 係数を追加します。入力する名前は nFactor フローの名前で、[ 作成] をクリックします。
-
ドロップダウンリストベースの認証フローの要素を作成します。
-
nFactor ブロックの [ スキーマの追加 ] をクリックします。カスタマイズされたログインスキーマ (この場合は divisionDropdown) を作成するには、組み込みの DomainDropdown.xml スキーマを編集します。
注: 既存の DomainDropdown.xml スキーマを使用して、新しいドメインを作成できます。 「ドメインの選択」 タグで、要件に従ってドメイン名を追加し、XML ファイルを保存します。追加したドメインをドロップダウンリストで探す必要があります。
-
エンドユーザーから受信したドメインに基づいて部門ベースのデシジョンブロックを作成し、デシジョンブロックごとに認証係数を作成します。
-
nFactor フローが完了したら、このフローを認証、承認、および監査仮想サーバーにバインドします。[ 認証サーバーにバインド ] をクリックし、[ 作成] をクリックします。
-
認証仮想サーバーを選択し、 nFactor Flowをクリックします。
-
nfactor フローの選択] フィールドで nFactor フローを選択し 、[ バインド] をクリックします。
nFactor フローのバインドを解除する
- nFactor フローを選択し、[ バインドを表示] をクリックします。
- 認証仮想サーバを選択し、[ バインド解除] をクリックします。