基本身份验证是调用 Edge 管理 API 时进行身份验证的一种方式。
例如,您可以向 Edge Management API 发出以下 curl 请求,以访问
有关组织的信息:
curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
在此示例中,您可以使用 curl -u 选项传递基本身份验证
凭据。或者,您也可以在 Authorization: Bearer 标头中传递 OIDC/OAuth2 令牌,以进行 Edge Management API 调用,如以下示例所示:
curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
为身份验证启用外部 IDP 后,您可以选择停用基本
身份验证。如果您停用基本身份验证,所有依赖于支持基本身份验证的 Edge 管理 API 调用的脚本(例如 Maven、shell 和 apigeetool)将无法再正常运行。您必须更新
所有使用基本身份验证的 API 调用和脚本,以在
Bearer 标头中传递 OAuth2 访问令牌。
使用 get_token 获取和刷新令牌
get_token 实用程序使用标准 OAuth 2.0 设备代码流程来获取 OIDC/OAuth2 访问令牌和刷新令牌。该实用程序会提示您在浏览器中访问网址,以通过外部 IDP(或本地 LDAP)进行身份验证,然后自动取消屏蔽您的终端以输出有效的访问令牌。
get_token 实用程序会将令牌安全地缓存在磁盘上的 ~/.sso-cli/ 中,以便在需要时使用。它还会将有效的访问令牌输出到 stdout。如果现有令牌可以刷新,该实用程序会自动刷新该令牌。如果刷新令牌过期,它将启动新的基于浏览器的授权流程。
如需获取 OAuth2 访问令牌以进行 Edge 管理 API 调用,请执行以下操作:
get_token和acurl实用程序预安装在托管 Apigee SSO(OpenLDAP 节点)的节点上,路径为:/opt/apigee/apigee-openldap/bin/- (可选)将
SSO_LOGIN_URL环境变量设置为您的 SSO 发布者网址,格式如下:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
其中,EDGE_SSO_IP_DNS 是托管 Apigee SSO 的机器的 IP 地址或 DNS 名称。如果您在 Apigee SSO 上配置了 TLS,请使用
https和正确的 TLS 端口号。 - 使用您的电子邮件地址调用
get_token,以启动 OAuth 2.0 设备代码流程:/opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS
其中,EMAIL_ADDRESS 是 Edge 用户的电子邮件地址。
- 该实用程序将暂停,并在您的终端中输出网址和 8 个字符的设备代码:
Please visit: http://EDGE_SSO_IP_DNS:9099/device And enter code: ABCD-EFGH
- 在浏览器中打开指定的网址,输入设备代码,然后点击提交 。系统会将您重定向到外部 IDP(或本地 LDAP 表单)以进行身份验证并批准请求。
- 在浏览器中成功完成身份验证后,返回到终端。
get_token实用程序会自动检测批准,获取 OAuth2 访问令牌,将其输出到屏幕并安全地缓存。 - 使用
acurl实用程序将访问令牌传递给 Edge 管理 API 调用,该实用程序会自动读取缓存的令牌并注入 Bearer 标头:/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
或者,您也可以使用标准
curl手动传递令牌:curl -H "Authorization: Bearer ACCESS_TOKEN" \ http://MS_IP_DNS:8080/v1/organizations/ORG_NAME
使用 Management API 获取和刷新令牌
旧版 /passcode 端点已移除。因此,人工用户必须使用前面介绍的 get_token 实用程序来启动基于浏览器的 OAuth 2.0 设备代码流程,以进行初始身份验证。
如果您要编写无法与浏览器交互的脚本或 CI/CD 流水线,请参阅使用机器用户自动执行任务。具有有效凭据的自动化机器用户或应用可以使用标准 API 调用来获取和刷新令牌。