管理用户、角色和权限

Edge for Private Cloud v4.18.01

Apigee 文档网站提供了有关管理用户角色和权限的大量信息。用户可以使用 Edge 界面和 Management API 进行管理;角色和权限只能使用 Management API 进行管理。

如需了解用户和创建用户,请参阅:

您为管理用户而执行的许多操作都需要系统管理员权限。在基于 Cloud 的 Edge 安装中,Apigee 充当系统管理员的角色。在 Edge for Private Cloud 安装中,系统管理员必须执行这些任务,如下所述。

添加用户

您可以使用 Edge API、Edge 界面或 Edge 命令创建用户。本部分介绍了如何使用 Edge API 和 Edge 命令。如需了解如何在 Edge 界面中创建用户,请参阅创建全局用户。

在组织中创建用户后,您必须为该用户分配角色。角色决定了用户在 Edge 上的访问权限。

使用以下命令通过 Edge API 创建用户:

curl -H "Content-Type:application/xml" -u <sysAdminEmail>:<passwd> \
-X POST http://<ms_IP>:8080/v1/users \
-d '<User> \
   <FirstName>New</FirstName> \
   <LastName>User</LastName> \
   <Password>newUserPWord</Password> \
   <EmailId>foo@bar.com</EmailId> \
</User>'

或者,使用以下 Edge 命令创建用户:

> /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-user -f configFile

其中,configFile 包含创建用户所需的信息:

APIGEE_ADMINPW=sysAdminPW    # If omitted, you will be prompted.
USER_NAME=foo@bar.com
FIRST_NAME=New
LAST_NAME=User
USER_PWD="newUserPWord"
ORG_NAME=myorg  

然后,您可以使用此调用来查看用户的信息:

curl -u <sysAdminEmail>:<passwd> http://<ms_IP>:8080/v1/users/foo@bar.com

为用户分配组织中的角色

新用户必须先在组织中分配角色,然后才能执行任何操作。您可以为用户分配不同的角色,包括:orgadmin、businessuser、opsadmin、user 或组织中定义的自定义角色。

将用户分配给组织中的角色会自动将该用户添加到组织中。通过将用户分配到每个组织中的角色,将用户分配到多个组织。

使用以下命令将用户分配给组织中的角色:

curl -X POST -H "Content-Type:application/x-www-form-urlencoded" /
http://<ms_IP>:8080/v1/o/<org_name>/userroles/<role>/users?id=foo@bar.com /
-u <sysAdminEmail>:<passwd> 

此调用会显示分配给该用户的所有角色。如果您想添加用户,但仅显示新角色,请使用以下调用:

curl -X POST -H "Content-Type: application/xml" /
http://<ms_IP>:8080/v1/o/<org_name>/users/foo@bar.com/userroles /
-d '<Roles><Role name="role"/></Roles>' /
-u <sysAdminEmail>:<passwd>

您可以使用以下命令查看用户的角色:

curl -u <sysAdminEmail>:<passwd> /
http://<ms_IP>:8080/v1/users/foo@bar.com/userroles

如需从组织中移除用户,请从该用户中移除该组织中的所有角色。 使用以下命令从用户中移除角色:

curl -X DELETE -u <sysAdminEmail>:<passwd> http://<ms_IP>:8080/v1/o/<org_name>/userroles/<role>/users/foo@bar.com

添加系统管理员

系统管理员可以:

  • 创建组织
  • 向 Edge 安装添加路由器、消息处理器和其他组件
  • 配置 TLS/SSL
  • 创建其他系统管理员
  • 执行所有 Edge 管理任务

虽然只有一个用户是执行管理任务的默认用户,但可以有多个系统管理员。作为 sysadmin 角色成员的任何用户都拥有对所有资源的完整权限。

您可以在 Edge 界面或 API 中为系统管理员创建用户。但是,您必须使用 Edge API 将用户分配到 sysadmin 角色。无法在 Edge 界面中将用户分配到 sysadmin 角色。

如需添加系统管理员,请执行以下操作:

  1. 在 Edge 界面或 API 中创建用户。
  2. 将用户添加到 sysadmin 角色:
    curl -u <sysAdminEmail>:<passwd> \
    -X POST http://<ms_IP>:8080/v1/userroles/sysadmin/users \
    -d 'id=foo@bar.com'
  3. 确保新用户具有 sysadmin 角色:
    curl -u <sysAdminEmail>:<passwd> http://<ms_IP>:8080/v1/userroles/sysadmin/users

    返回用户的电子邮件地址:
    [ " foo@bar.com " ]
  4. 检查新用户的权限:
    curl -u <sysAdminEmail>:<passwd> http://<ms_IP>:8080/v1/users/foo@bar.com/permissions

    返回:
    {
    "resourcePermission" : [ {
    "path" : "/",
    "permissions" : [ "get", "put", "delete" ]
    } ]
    }
  5. 添加新的系统管理员后,您可以将该用户添加到任何组织。
    注意:在您将新的系统管理员用户添加到至少一个组织之前,该用户无法登录 Edge 界面。
  6. 如果您以后想从系统管理员角色中移除该用户,可以使用以下 API:
    curl -X DELETE -u <sysadminEmail:pword>
    http://<ms_IP>:8080/v1/userroles/sysadmin/users/foo@bar.com


    请注意,此调用只会从角色中移除用户,而不会删除用户。

更改默认系统管理员用户

在安装 Edge 时,您需要指定系统管理员的邮箱。Edge 会创建一个具有该邮箱的用户,并将该用户设置为默认系统管理员。您可以稍后按照上述步骤添加其他系统管理员。

本部分介绍如何将默认系统管理员更改为其他用户,以及如何更改当前默认系统管理员的用户账号的电子邮件地址。

如需查看当前配置为系统管理员的用户列表,请使用以下 API 调用:

curl -u sysAdminEmail:passwd http://<ms_IP>:8080/v1/userroles/sysadmin/users

如需确定当前的默认系统管理员,请查看 /opt/apigee/customer/defaults.sh 文件。该文件包含以下行,其中显示了当前默认系统管理员的电子邮件地址:

ADMIN_EMAIL=foo@bar.com

如需将默认系统管理员更改为其他用户,请执行以下操作:

  1. 如上所述创建新的系统管理员,或确保新系统管理员的用户账号已配置为系统管理员。
  2. 修改 /opt/apigee/customer/defaults.sh,将 ADMIN_EMAIL 设置为新系统管理员的电子邮件地址。
  3. 修改用于安装 Edge 界面的静默配置文件,以设置以下属性:
    ADMIN_EMAIL=emailAddressOfNewSysAdmin
    APIGEE_ADMINPW=pwOfNewSysAdmin

    SMTPHOST=smtp.gmail.com
    SMTPPORT=465
    SMTPUSER=foo@gmail.com
    SMTPPASSWORD=bar
    SMTPSSL=y
    请注意,您必须添加 SMTP 属性,因为界面上的所有属性都会重置。
  4. 重新配置 Edge 界面:
    > /opt/apigee/apigee-service/bin/apigee-service edge-ui stop
    > /opt/apigee/apigee-service/bin/apigee-service edge-ui setup -f configFile
    > /opt/apigee/apigee-service/bin/apigee-service edge-ui start

如果您只想更改当前默认系统管理员的用户账号的电子邮件地址,请先更新用户账号以设置新的电子邮件地址,然后更改默认系统管理员电子邮件地址:

  1. 使用新的电子邮件地址更新当前默认系统管理员用户的用户账号:
    > curl -H content-type:application/json -X PUT /
    -u currentSysAdminEmail:passwd /
    http://<ms_IP>:8080/v1/users/currentSysAdminEmail /
    -d '{"emailId": "newSysAdminEmail", "lastName": "admin", "firstName": "admin"}'
  2. 重复上述过程中的第 2、3 和 4 步,以更新 /opt/apigee/customer/defaults.sh 文件并更新 Edge 界面。

指定系统管理员的电子邮件域名

作为额外的安全级别,您可以指定 Edge 系统管理员所需的电子邮件网域。添加系统管理员时,如果用户的电子邮件地址不在指定网域中,则无法将用户添加到 sysadmin 角色。

默认情况下,必需网域为空,这意味着您可以将任何邮箱添加到 sysadmin 角色。

如需设置电子邮件域名,请执行以下操作:

  1. 在编辑器中打开 management-server.properties:
    vi /opt/apigee/customer/application/management-server.properties

    如果此文件不存在,请创建它。
  2. 将 conf_security_rbac.global.roles.allowed.domains 属性设置为允许网域的逗号分隔列表。例如:
    conf_security_rbac.global.roles.allowed.domains=myCo.com,yourCo.com
  3. 保存更改。
  4. 重启 Edge Management Server:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

    如果您现在尝试将用户添加到 sysadmin 角色,并且用户的电子邮件地址不在某个指定网域中,则添加操作会失败。

删除用户

您可以使用 Edge API 或 Edge 界面创建用户。但是,您只能使用 API 删除用户。

如需查看当前用户列表(包括电子邮件地址),请使用以下 cURL 命令:

curl -u <sysAdminEmail>:<passwd> http://<ms-IP>:8080/v1/users

使用以下 cURL 命令删除用户:

curl -u <sysAdminEmail>:<passwd> -X DELETE http://<ms-IP>:8080/v1/users/<userEmail>