本部分介绍如何在启用 Apigee SSO 后运行 Edge 系统管理员工具和命令。 Edge 上的许多任务都需要系统管理凭据,例如:
- 创建组织和环境
- 添加和移除 Edge 组件
- 运行
apigee-adminapi.sh命令
不过,在 Edge 上启用 SSO 后,您通常会停用基本身份验证,以便只能通过 OIDC/SAML IDP 进行身份验证。因此,您必须确保已将 系统管理员账号添加到 IDP,或为自动化创建本地机器用户。
以 系统管理员身份调用 Edge Management API
许多 Edge API 调用都需要您传递系统管理员凭据。将 SAML 与 Edge Management API 结合使用 包含有关在进行 Edge Management API 调用时如何使用 get_token 实用程序获取和刷新令牌的说明。
将 apigee-adminapi.sh 实用程序与 Apigee SSO 结合使用
使用 apigee-adminapi.sh 实用程序执行与通过调用 Edge Management API 执行的 Edge 配置任务相同的任务。
apigee-adminapi.sh 实用程序的优势在于:
- 使用简单的命令行界面
- 实现基于标签页的命令补全功能
- 提供帮助和使用信息
- 如果您决定试用 API,则可以显示相应的 API 调用
启用 Apigee SSO 后,您可以通过两种主要方式将凭据传递给 apigee-adminapi.sh 实用程序,具体取决于您是人工管理员还是自动脚本。
您可以使用命令的 -h 选项查看任何 apigee-adminapi.sh 命令的所有选项,包括用于指定 SSO 凭据的
选项。例如:
apigee-adminapi.sh orgs list -h
传递不记名令牌(适用于人工管理员)
由于现代化的 Apigee SSO 不支持旧版 /passcode 复制粘贴流程,因此人工管理员必须使用 get_token 实用程序完成 OAuth 2.0 设备代码流程,然后将生成的令牌传递给脚本。
首先,获取令牌:
/opt/apigee/apigee-openldap/bin/get_token -u adminEmail
然后,在调用命令时使用该令牌:
apigee-adminapi.sh orgs list --sso-url http://edge_sso_IP_DNS:9099 --oauth-flow passcode \ --admin adminEmail --oauth-token token_string
其中:
oauth-flow指定passcode(这会向旧版脚本发出信号,表明正在提供令牌)。oauth-token包含从get_token获取的原始 JWT 字符串。
传递密码(仅适用于机器用户)
如果您要自动执行基础架构部署,则可以使用 password_grant 流程直接传递凭据。不过,如果启用了 SAML/OIDC 联合身份验证,系统会阻止人工影子用户进行密码登录 ,以防止绕过多重身份验证。您必须先在 OpenLDAP 中预配显式 机器用户。
apigee-adminapi.sh orgs list --sso-url http://edge_sso_IP_DNS:9099 --oauth-flow password_grant \ --admin machineUserEmail --oauth-password machineUserPassword
其中:
sso-url选项指定 Apigee SSO 的网址。如果您已将端口 或协议从 9099 和 HTTP 更改为其他值,请进行修改。oauth-flow指定password_grant。- machineUserEmail 是自动机器用户的电子邮件地址。
oauth-password指定机器用户的密码。
将 Edge 实用程序与 Apigee SSO 结合使用
许多 Edge 实用程序都需要系统管理员凭据,例如:
apigee-provision,用于创建组织、环境和虚拟 主机setup.sh,用于向现有系统添加节点- 您必须在配置 文件中指定系统管理员凭据的任何其他实用程序
这些实用程序将指定系统管理员 凭据的配置文件作为输入。在启用 SSO 之前,此操作通过使用以下属性完成:
ADMIN_EMAIL="adminEmail" APIGEE_ADMINPW="adminPWord"
启用 Apigee SSO 后,您必须使用不同的属性来指定系统管理员的凭据。
使用不记名令牌(适用于人工管理员)
对于人工管理员的互动式部署,请使用 get_token 实用程序获取令牌,并通过 OAUTH_BEARER_TOKEN 属性提供该令牌:
ADMIN_EMAIL="adminEmail" SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099" OAUTH_FLOW="passcode" OAUTH_BEARER_TOKEN="token_string"
其中:
OAUTH_FLOW指定passcode(表示提供了令牌)。OAUTH_BEARER_TOKEN包含从get_token获取的原始 JWT 字符串。
使用密码(仅适用于机器用户)
对于完全自动化的部署,请使用 password_grant 流程提供显式预配的机器用户的凭据:
ADMIN_EMAIL="machineUserEmail" SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099" OAUTH_FLOW="password_grant" OAUTH_ADMIN_PASSWORD="machineUserPassword"
其中:
SSO_LOGIN_URL指定 Apigee SSO 的网址。OAUTH_FLOW指定password_grant。OAUTH_ADMIN_PASSWORD指定机器用户的密码。