远程身份验证要求通过授权映射规则为每次用户登录分配角色和租户。每次登录时都会评估授权,并更新用户记录。用户通过外部身份验证服务器成功登录后,将评估所有映射规则。租户和角色对将添加到用户访问列表中。

对于远程用户,NSX Advanced Load Balancer 支持用户配置文件映射。

前言

本文中的示例假定 NSX Advanced Load Balancer 控制器 设置为进行远程身份验证。默认情况下,将仅为控制器设置本地身份验证(身份验证/授权本地)。

仅当管理 > 设置 > 身份验证/授权配置为远程服务器(而不是默认的本地)时,租户和角色映射才可用。

  1. 单击铅笔图标以编辑身份验证过程。

  2. 单击远程以从身份验证配置文件下拉菜单中选择预先存在的远程身份验证配置文件,或单击创建按钮以定义新的配置文件。

  3. 单击创建,以显示新建身份验证配置文件编辑器弹出窗口。

  4. 创建 LDAP 或 TACACS+ 远程身份验证配置文件后,导航到管理 > 设置 > 身份验证/授权,此时将显示一个窗口以用于查看和创建租户和角色映射。

    当远程服务器为 LDAP 时,可以编辑映射表,并使用相应选项来选择基于组或基于属性的映射。当远程服务器为 TACACS+ 时,仅允许基于用户属性的映射。

“任意组”或“任意属性”规则

含任意组或任意属性的规则将应用于所有用户,并可用作默认选项。该规则会为每个用户分配具有最少特权的角色和租户。

注:

角色和租户需要配置为仅允许最少特权。

如果未为用户分配任何其他角色或租户对,则最少访问特权将在登录后生效。



“超级用户”规则

可以配置规则以将超级用户特权分配给用户。此用户将有权访问具有最高特权角色的所有租户。在用户成为超级用户后,任何其他租户或角色映射分配都不会对用户的访问权限产生影响。



属性和组匹配

映射规则可能需要同时匹配属性和组要求。这将确保角色和租户分配更有针对性。



分配匹配的属性值

用户的 LDAP/TACACS+ 属性 vantageRole 可以具有一个或多个值。对于每个值,如果存在具有相同名称的已配置角色,则会将该角色分配给有权访问所有租户的用户。用户会话最终可能具有多个角色,并且具有最高特权的角色将生效。



分配匹配的组名称

一个用户可以是多个 LDAP 或 AD 组的成员。对于每个组,如果存在一个已配置的租户,则将使用匹配规则向用户授予对该租户的访问权限,以及对用户可能已获得访问权限的任何其他租户的访问权限。



示例:多个组映射到不同角色

在此示例所显示的场景中,IT 团队具有三个用户组(超级管理员、应用程序管理员和操作员),其中以下条件适用:

  • 超级管理员:可以访问所有租户和所有设置

  • 应用程序管理员:

    • 只能创建、读取、更新及删除虚拟服务和其他配置文件

    • 无法创建云

  • 应用程序操作员:具有只读访问权限



需要使用单独的映射规则,将每个组中的用户映射到不同的角色或租户分配。

多个组映射到不同租户

在此示例所显示的场景中,IT 团队需要隔离租户,但少数超级用户除外。

  • 超级管理员:可以访问所有租户和所有设置

  • 租户应用程序管理员:有权以少数租户的应用程序所有者身份访问少数租户

  • 租户应用程序操作员:有权访问少数租户,但无法修改任何内容

  • 租户应用程序管理员或操作员:有权以应用程序所有者身份访问少数租户,并以应用程序操作员身份访问其他租户



在此示例中,服务管理员 E 组的成员在租户 AE 和租户 SE 中具有读取或写入访问权限(应用程序管理员角色),而在其他几个租户中具有只读访问权限(应用程序操作员角色)。服务操作员在其各自的租户中仅具有只读访问权限。

单个用户的多个授权

在此示例中,用户 John Doe 登录时可通过多个授权映射规则获取访问权限。

根据不同的组和属性条件配置了多个映射规则。



为 LDAP 服务器配置了用户 John Doe。



对于 LDAP 服务器,John Doe 配置为企业管理员和服务操作员组的成员。



用户 John Doe 登录后,所有授权规则都会应用于用户会话。在用户登录期间,会使用多个角色或租户组合来确定用户特权。用户记录显示该用户成功匹配所有四个规则,并且已正确应用角色或租户对。

多个授权导致超级用户

在此示例中,用户 John Doe 登录后成为超级用户。

映射规则将服务操作员组的成员指定为超级用户。



由于具有超级用户访问权限,用户 John Doe 能以各种角色访问所有租户。

单个用户无授权

在此示例中,用户 John Doe 登录时不会获取任何角色或租户。

映射规则已更新为阻止用户 John Doe 拥有任何特权。



在用户 John Doe 登录时,用户界面报告没有登录特权。



用户记录中没有任何访问条目。

租户与角色的映射

NSX Advanced Load Balancer 支持根据正则表达式匹配来动态分配租户和角色名称。这需要在正则表达式中配置租户或角色变量,以根据正则表达式分配租户或角色名称。变量必须采用 (?P{tenant}regex) 格式。

示例:

LDAP 数据

用户:test_user

test_user 是以下组的成员:

  • lb_ap1234_test

  • lb_ap7890_test

映射规则配置:

以下是 CLI 格式。

"attribute_match": {
           "values": [ "lb_?P{tenant}\\w*)_test" ], 
           "name": "tenant",
           "criteria": "AUTH_MATCH_REGEX" 
         } 
 "assign_tenant": "ASSIGN_MATCHING_ATTRIBUTE_REGEX",
 "assign_role": "ASSIGN_FROM_SELECT_LIST"
 "role_refs": ["https://10.10.24.204/api/role/[Role-UUID]" ],
}

结果:

通过此规则映射和 LDAP 配置,test_user 将在租户 ap1234 和 ap7890 中分配租户管理员角色。

您可以在 CLI 中配置上述规则,如下所示。

configure systemconfiguration
admin_auth_configuration
mapping_rules index 2
group_match criteria auth_match_regex groups adcs_(?P{tenant}\\w*)_fa
save
assign_tenant assign_matching_group_regex assign_role assign_from_select_list role_refs Tenant-Admin
save
mapping_rules index 3
group_match criteria auth_match_regex groups adcs_(?P{tenant}\\w*)_ra
save
assign_tenant assign_matching_group_regex assign_role assign_from_select_list role_refs Application-Admin
save
mapping_rules index 4
group_match criteria auth_match_regex groups adcs_(?P{tenant}\\w*)_ro
save
assign_tenant assign_matching_group_regex assign_role assign_from_select_list role_refs Application-Operator
save
save
save

用户配置文件映射

通过用户配置文件映射,可以根据特定条件为远程用户选择用户配置文件。

要配置用户配置文件,请使用以下代码:

[admin:123]: systemconfiguration> admin_auth_configuration
[admin:123]: systemconfiguration:admin_auth_configuration> mapping_rules index 1
[admin:123]: systemconfiguration:admin_auth_configuration:mapping_rules> assign_userprofile assign_from_select_list
[admin:123]: systemconfiguration:admin_auth_configuration:mapping_rules> userprofile_ref Tacacs-Userprofile
[admin:123]: systemconfiguration:admin_auth_configuration:mapping_rules> save
注:

确保已创建用户配置文件。有关如何创建和配置用户配置文件的更多信息,请参阅在 NSX Advanced Load Balancer 上配置和使用 No-Lockout-User-Account-Profile

查看用户配置文件配置,如下所示。

[admin:123]: > show systemconfiguration
|----------------------------------|------------------------------------|
|Field                             |    Value                           |
|----------------------------------|------------------------------------|
|                          Truncated Output                             |                        
| admin_auth_configuration         |                                    |
|   auth_profile_ref               | tacacs1                            |
|   mapping_rules[1]               |                                    |
|     index                        | 1                                  |
|     assign_tenant                | ASSIGN_FROM_SELECT_LIST            |
|     tenant_attribute_name        |                                    |
|     tenant_refs[1]               | admin                              |
|     assign_role                  | ASSIGN_FROM_SELECT_LIST            |
|     role_attribute_name          |                                    |
|     role_refs[1]                 | Application-Admin                  |
|     is_superuser                 | False                              |
|     assign_userprofile           | ASSIGN_FROM_SELECT_LIST            |
|     userprofile_ref              | Tacacs-Userprofile                 |
|   allow_local_user_login         | True                               |
|----------------------------------|------------------------------------|

备用身份验证配置文件

可以在 admin_auth_configuration 中配置多个远程身份验证配置文件,以定义用于控制器的辅助身份验证机制。

仅支持通过 CLI 配置备用身份验证配置文件。由于缺少 UI 支持,要配置备用身份验证配置文件,需要满足以下条件之一:

  • 有权访问 admin 用户配置文件;或

  • 必须在管理 > 设置 > 身份验证/授权中启用允许本地用户登录

注:
  • 仅当主身份验证配置文件为 SAML 时,才支持备用身份验证配置文件。

  • 不支持将 SAML 用作辅助身份验证配置文件。

当主身份验证为 SAML 且配置了备用身份验证时,NSX Advanced Load Balancer 将回退到备用身份验证配置。

当主身份验证为 SAML 且配置了备用身份验证时,API 或 CLI 将回退到备用身份验证配置。

如果通过 https://<controller-ip>/#!/login?local=true 强制进行本地登录,即使配置的身份验证配置文件为 SAML,UI 也会回退到备用身份验证。

配置备用身份验证配置文件

备用身份验证配置是 system_configurationadmin_auth_configuration 的一部分,可以按以下方式进行配置:

  1. 登录 NSX Advanced Load Balancer Shell。

  2. 按以下方式更新 systemconfiguration 下的 admin_auth_configuration

[admin:10-79-169-143]: systemconfiguration:admin_auth_configuration> where
 Tenant: admin
 Cloud: Default-Cloud
 +----------------------------------+-------------------------+
 | Field                            | Value                   |
 +----------------------------------+-------------------------+
 | auth_profile_ref                 | Avi01 SAML Configuration|
 | mapping_rules[1]                 |                         |
 |   index                          | 0                       |
 |   assign_tenant                  | ASSIGN_FROM_SELECT_LIST |
 |   tenant_refs[1]                 | admin                   |
 |   assign_role                    | ASSIGN_FROM_SELECT_LIST |
 |   role_refs[1]                   | Application-Admin       |
 |   is_superuser                   | False                   |
 | allow_local_user_login           | True                    |
 | alternate_auth_configurations[1] |                         |
 |   index                          | 1                       |
 |   auth_profile_ref               | ldap-ad-user            |
 |   mapping_rules[1]               |                         |
 |     index                        | 1                       |
 |     assign_tenant                | ASSIGN_FROM_SELECT_LIST |
 |     tenant_refs[1]               | admin                   |
 |     assign_role                  | ASSIGN_FROM_SELECT_LIST |
 |     role_refs[1]                 | Application-Admin       |
 +----------------------------------+-------------------------+