在 NSX 6.x 系列之前,用户管理员是本地数据库用户。自 NSX 6.0 起,用户管理员已成为 CLI 用户。为实现向后兼容性,您可以采取一些步骤来迁移管理员用户。

对于 vCloud Networking and Security 5.x 系列,CLI 中的管理员用户和 UI (VSM) 中的管理员用户是两个不同的用户。CLI 管理员用户的密码由操作系统管理,而 VSM 用户的密码由用户的本地数据库管理。更改 CLI 管理员用户的密码时,该更改不会影响 VSM 管理员用户的密码。同样,更改 VSM 管理员用户的密码时,该更改也不会影响 CLI 管理员用户的密码。

对于 NSX 6.x 系列,VSM 用户数据库已弃用。CLI 用户可以直接登录到 NSX Manager。

在升级方案中,为实现向后兼容性,管理员用户同时存在于 CLI 数据库和 Web UI 数据库中。在这种情况下,如果 CLI 用户的密码已更改,该更改不会反映在 UI 或 REST API 调用中。在 NSX 6.x 系列之前,CLI 用户无法登录到 UI 或 REST API。

在 NSX 6.x 系列的全新(首次)部署中,CLI 用户和 NSX Manager(UI 或 REST)是相同的,并且凭据也相同。

如果希望升级后的 NSX 部署像 NSX 6.x 的全新部署一样工作,您有以下两个选项可选择。

  • 选项 1 – 更改管理员数据库用户的密码。

    您可以使用以下 REST API 更改密码。此选项要求您知道旧密码。

    PUT URI /api/2.0/services/usermgmt/user/local/<userId>

    <userInfo>
          <userId></userId>
          <password></password>
          <fullname></fullname>
          <email></email>
          <accessControlEntry>
             <role></role>
             <resource>
                 <resourceId></resourceId>
                 ...
             </resource>
          </accessControlEntry>
    </userInfo>

    例如,使用 curl:

    curl -k -H 'authorization: Basic YWRtaW46ZGVmYXVsdA==' -H 'Content-Type: application/xml' -X PUT https://<vsm-ip>/api/2.0/services/usermgmt/user/local/admin -d '<userInfo><userId>admin</userId><password>123</password><fullname>admin</fullname><email>admin@company.com</email><accessControlEntry><role>security_admin</role><resource><resourceId>datacenter-312</resourceId></resource></accessControlEntry></userInfo>'

    该 API 可用于更新本地用户帐户和密码。如果未提供密码,则保留现有密码。URI 中的 userId 变量应与 XML 中指定的用户 ID 相同。

  • 选项 2 – 移除 Web UI 管理员用户并向 CLI 管理员用户添加一个角色。完成此更改后,您可以使用 CLI 用户凭据登录到 NSX Manager,而且对 CLI 管理员用户进行的密码更改会反映在 NSX Manager 管理员用户上。

    由于 Web UI 管理员用户是 super_user,因此您需要先添加另一个具有 super_user 特权的用户才能删除 Web UI 管理员用户。

    • 添加具有 super_user 角色的新用户 tempadmin。

      例如,使用 curl:

      curl -k -H 'authorization: Basic YWRtaW46ZGVmYXVsdA==' -H 'Content-Type: application/xml' -X PUT https://<vsm-ip>/api/2.0/services/usermgmt/user/local/admin -d '<userInfo><userId>tempadmin</userId><password>123</password><fullname>tempadmin</fullname><email>tempadmin@company.com</email><accessControlEntry><role>super_user</role><resource><resourceId>datacenter-312</resourceId></resource></accessControlEntry></userInfo>'
    • 使用 tempadmin 删除 Web UI 管理员用户。

      例如,使用 curl:

      curl -k -H 'authorization: Basic YWRtaW46ZGVmYXVsdA==' -H 'Content-Type: application/xml' -X DELETE https://<vsm-ip>/api/2.0/services/usermgmt/user/admin

    • 向 CLI 管理员用户添加 super_user 角色。

      例如,使用 curl:

      curl -k -H 'authorization: Basic YWRtaW46ZGVmYXVsdA==' -H 'Content-Type: application/xml' -X POST https://<nsx-ip>/api/2.0/services/usermgmt/role/admin?isCli=true -d '<accessControlEntry><role>super_user</role></accessControlEntry>'