リモート認証では、認可マッピング ルールを介して、ユーザー ログインのたびにロールとテナントを割り当てる必要があります。認可はログインのたびに評価され、ユーザー レコードが更新されます。外部認証サーバを介してユーザーが正常にログインすると、すべてのマッピング ルールが評価されます。テナントとロールのペアがユーザー アクセス リストに追加されます。

NSX Advanced Load Balancer は、リモート ユーザーのユーザー プロファイル マッピングをサポートします。

はじめに

この記事の例では、NSX Advanced Load Balancer Controller がリモート認証用に設定されていることを前提としています。デフォルトでは、コントローラにはローカル認証のみが確立されます([認証/認可]:[ローカル])。

テナントとロールのマッピングは、[管理] > [設定] > [認証/認可] が、デフォルトの [ローカル] ではなく、[リモート] サーバとして構成されている場合にのみ使用できます。

  1. [鉛筆] アイコンをクリックして、認証プロセスを編集します。

  2. [リモート] をクリックして、[認証プロファイル] ドロップダウン メニューから既存のリモート認証プロファイルを選択するか、[作成] ボタンをクリックして新しいプロファイルを定義します。

  3. [作成] をクリックして、[新しい認証プロファイル] エディタ ポップアップ ウィンドウを表示します。

  4. LDAP または TACACS+ リモート認証プロファイルが確立されたら、[管理] > [設定] > [認証/認可] に移動して、テナントとロールのマッピングを表示および作成するためのウィンドウを表示します。

    リモート サーバが LDAP の場合、マッピング テーブルを編集できます。オプションにより、グループまたは属性ベースのマッピングを選択できます。リモート サーバが TACACS+ の場合、許可されるマッピングは、ユーザー属性にのみ基づきます。

任意のグループまたは任意の属性のルール

任意のグループまたは任意の属性を指定したルールはすべてのユーザーに適用され、これはデフォルトのオプションとして使用できます。このルールは、すべてのユーザーに、最小権限を付与したロールとテナントを割り当てます。

注:

ロールとテナントは、最小権限のみを許可するように構成する必要があります。

ユーザーにそれ以上のロールとテナントのペアが割り当てられていない場合は、ログイン後、最小限のアクセス権が有効になります。



スーパー ユーザーのルール

ユーザーにスーパー ユーザー権限を割り当てるルールを構成することもできます。このユーザーは、すべてのテナントにアクセスでき、最大限の権限を持ちます。ユーザーがスーパー ユーザーになると、他にどのようなテナントやロールのマッピングを割り当てても、そのユーザーのアクセス権は変わりません。



属性とグループの一致

マッピング ルールでは、属性とグループの両方の要件を一致させることが必要になる場合があります。これにより、より具体的なロールとテナントの割り当てが確実に行われます。



照合する属性値の割り当て

ユーザーの LDAP/TACACS+ 属性である vantageRole には、1 つ以上の値を設定できます。各値について、同じ名前の構成済みロールがある場合、そのロールは、すべてのテナントへのアクセス権を持つユーザーに割り当てられます。ユーザー セッションには結果的に複数のロールが割り当てられ、最大限の権限を持つロールが有効になることがあります。



一致するグループ名の割り当て

ユーザーは、複数の LDAP または Active Directory グループのメンバーになることができます。各グループについて、構成済みのテナントがある場合は、一致ルールを使用して、そのテナントとすでにアクセス権を取得している他のテナント(ある場合)へのアクセス権がユーザーに付与されます。



例:異なるロールへの複数のグループのマッピング

この例では、スーパー管理者、アプリケーション管理者、アプリケーション オペレータの 3 つのユーザー グループを持つ IT チームのケースを示します。以下はその詳細です。

  • スーパー管理者:すべてのテナントとすべての設定にアクセス可能

  • アプリケーション管理者:

    • 仮想サービスおよびその他のプロファイルの作成、読み取り、更新、および削除のみ可能

    • クラウドの作成権なし

  • アプリケーション オペレータ:読み取り専用のアクセス権のみ



各グループのユーザーに、異なるロールやテナントの割り当てをマッピングするには、個別のマッピング ルールが必要です。

異なるテナントへの複数のグループのマッピング

この例では、一部のスーパー ユーザーを除いて、テナントの隔離を想定している IT チームの設定を示しています。

  • スーパー管理者:すべてのテナントとすべての設定にアクセス可能

  • テナント アプリケーション管理者:一部のテナントにアクセス可能(一部のテナントのアプリケーション所有者)

  • テナント アプリケーション オペレータ:一部のテナントにアクセス可能(変更権なし)

  • テナント アプリケーション管理者またはテナント アプリケーション オペレータ:一部のテナントにアプリケーション所有者としてアクセス可能、それ以外のテナントにはアプリケーション オペレータとしてアクセス可能



この例では、グループ Service Admins E のメンバーは、Tenant AE と Tenant SE の読み取りアクセス権または書き込みアクセス権(アプリケーション管理者ロール)を持ち、他の一部のテナントでは読み取り専用アクセス権(アプリケーション オペレータ ロール)を持ちます。サービス オペレータは、それぞれのテナントの読み取り専用アクセス権のみを持ちます。

単一ユーザーに対する複数の認可

この例では、ユーザー John Doe のログインにより、ユーザーが、複数の認可マッピング ルールを介してアクセス権を取得します。

複数のマッピング ルールは、さまざまなグループと属性の基準に基づいて構成されます。



LDAP サーバには、ユーザー John Doe が構成されます。



LDAP サーバには、John Doe がグループのメンバー(エンタープライズ管理者およびサービス オペレータ)として構成されます。



ユーザー John Doe がログインすると、すべての認証ルールがユーザー セッションに適用されます。ユーザーのログイン時には、複数のロールやテナントの組み合わせを使用して、ユーザー権限が判別されます。ユーザー レコードは、ユーザーが 4 つのルールすべてに正常に一致し、ロールまたはテナントのペアが適切に適用されたことを示しています。

複数の認可によるスーパー ユーザーの生成

この例では、ユーザー John Doe のログインにより、ユーザーがスーパー ユーザーになります。

マッピング ルールにより、サービス オペレータ グループのメンバーがスーパー ユーザーになります。



スーパー ユーザーのアクセス権により、ユーザー John Doe はすべてのロールですべてのテナントにアクセスできます。

単一ユーザーに対する認可なし

この例では、ユーザー John Doe がログインしても、ユーザーにはロールもテナントも付与されません。

マッピング ルールが更新され、ユーザー John Doe に権限が付与されなくなります。



ユーザー John Doe がログインすると、ユーザー インターフェイスには、ログインするための権限がないと表示されます。



ユーザー レコードにはアクセス エントリがありません。

テナントからロールへのマッピング

NSX Advanced Load Balancer では、正規表現の一致に基づいて、テナント名とロール名を動的に割り当てることができます。これを行うには、正規表現に基づいてテナント名またはロール名を割り当てるように、テナントまたはロールの変数を正規表現で構成する必要があります。変数は (?P{tenant}regex) という形式であることが必要です。

例:

LDAP DATA

user: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 で (Tenant-admin) が割り当てられます。

上記のルールは 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 でのみサポートされます。ユーザー インターフェイスのサポートがないため、代替の認証プロファイルを構成するには、次のいずれかが必要です。

  • 管理者ユーザー プロファイルへのアクセス、または

  • [管理] > [設定] > [認証/認可][ローカル ユーザーのログインを許可] オプションの有効化。

注:
  • 代替の認証プロファイルは、プライマリ認証プロファイルが SAML の場合にのみサポートされます。

  • SAML をセカンダリ認証プロファイルとして使用することはできません。

プライマリ認証が SAML で、代替の認証が構成されている場合、NSX Advanced Load Balancer は代替の認証構成にフォールバックします。

プライマリ認証が SAML で、代替の認証が構成されている場合、API または CLI は代替の認証構成にフォールバックします。

また、構成された認証プロファイルが SAML で、https://<controller-ip>/#!/login?local=true を介していても、ローカル ログインを強制された場合、ユーザー インターフェイスは代替の認証にフォールバックします。

代替の認証プロファイルの構成

代替の認証構成は、system_configuration 内の admin_auth_configuration の一部であり、次のように構成できます。

  1. NSX Advanced Load Balancer シェルにログインします。

  2. systemconfigurationadmin_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       |
 +----------------------------------+-------------------------+