将 SAML 与自动任务搭配使用

Edge for Private Cloud v4.18.01

将 SAML 与 Edge API 搭配使用时,您通过 SAML 断言获取 OAuth2 访问令牌和刷新令牌的过程称为密码流程。通过密码流程,您可以使用浏览器获取一次性密码,然后使用该密码获取 OAuth2 令牌。

但是,您的开发环境可能支持自动执行常见开发任务,例如测试自动化或持续集成/持续部署 (CI/CD)。如需在启用 SAML 后自动执行这些任务,您需要一种方法来获取和刷新 OAuth2 令牌,而无需从浏览器复制/粘贴密码。

Edge 支持通过机器用户自动生成令牌。机器用户可以获取 OAuth2 令牌,而无需指定密码。这意味着您可以使用 Edge Management API 完全自动执行获取和刷新 OAuth2 令牌的过程。

创建机器用户

使用 apigee-ssoadminapi.sh 实用程序为 SAML 组织创建机器用户。如需了解详情,请参阅使用 apigee-ssoadminapi.sh。您可以创建单个机器用户供所有组织使用,也可以为每个组织创建一个单独的机器用户。

机器用户是在 Edge 数据存储区(而不是 SAML 身份提供方)中创建并存储的。因此,您无需负责使用 Edge 界面和 Edge Management API 来维护机器用户。

创建机器用户时,您必须指定电子邮件地址和密码。创建机器用户后,您可以将其分配给一个或多个组织。

如需创建机器用户,请执行以下操作:

  1. 使用以下 apigee-ssoadminapi.sh 命令创建机器用户:
    > apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME --secret SSO_ADMIN_SECRET --host edge_sso_IP_or_DNS -u machine_user-email machine_user_email

    • SSO_ADMIN_NAME 是由用于配置 Edge SSO 模块的配置文件中的 SSO_ADMIN_NAME 属性定义的管理员用户名。默认值为 ssoadmin
    • SSO_ADMIN_SECRET 是配置文件中 SSO_ADMIN_SECRET 属性指定的管理员密码。

      在此示例中,您可以省略 --port--ssl 的值,因为 apigee-sso 模块会为 --port 使用默认值 9099,对 --ssl 使用 http 的默认值。如果您的安装项不使用这些默认值,请根据需要指定它们。
  2. 登录 Edge 界面,并将机器用户的电子邮件地址添加到您的组织,并为机器用户分配必要的角色。如需了解详情,请参阅添加全球用户

获取和刷新机器用户令牌

使用 Edge API 通过传递机器用户的凭据(而不是密码)获取和刷新 OAuth2 令牌。

要为机器用户获取 OAuth2 令牌,请执行以下操作:

  1. 使用以下 API 调用生成初始访问令牌和刷新令牌:
    > curl_password0 -H "Content-Type: application/x-www-form-url 编码;charset=utf-8" /
    -H "accept: application/json;charset=utf-8" /
    -H "Authorization: Basic ZWRnZWNsaTxG> " Authorization: Basic ZWRnZWNsaTpl0edge_sso_IP_DNS


    此调用会将访问令牌和刷新令牌输出到屏幕上。保存令牌以备后用。
  2. 将访问令牌作为 Bearer 标头传递给 Edge Management API 调用:
    > curl -H "Authorization: Bearer access_token" http://ms_IP_DNS:8080/v1/organizations/orgName

    其中 orgName 是包含机器用户的组织的名称。
  3. 如需稍后刷新访问令牌,请使用包含刷新令牌的以下调用:
    > curl/token1orefresh_token9 "Content-Type:application/x-www-form-url 编码;charset=utf-8" /
    -H "Accept: application/json;charset=utf-8" /
    -H "AuthorizationXAuthorization: Basic ZWRxNZWNs
    edge_sso_IP_DNS


    edge_sso_IP_DNS

使用 Edge Management API 创建机器用户

您可以使用 Edge Management API 而不是 apigee-ssoadminapi.sh 实用程序创建机器用户。如需创建机器用户,请执行以下操作:








  1. edge_sso_IP_DNS


    此命令会显示进行下一次调用所需的令牌。
  2. 使用以下 c网址 命令创建机器用户, " " " " " " " " " " " " 机器用户。 " " " " " " " " " 机器。edge_sso_IP_DNS
  3. 登录 Edge 界面,并将机器用户的电子邮件地址添加到您的组织,并为机器用户分配必要的角色。如需了解详情,请参阅添加全球用户