您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 info
acurl(1) 实用程序提供了一个围绕标准 curl
命令的便捷封装容器。acurl:
- 将您的 Apigee 凭据交换为 OAuth2 访问令牌。
- 检测访问令牌何时过期,并使用刷新令牌获取新的访问令牌。
- 在 API 请求的
Authorization标头中传递该令牌。
您可以使用访问令牌通过 OAuth2 调用 Edge API 端点,包括 LDAP 和 SAML 工作流。
如果您使用 OAuth2 访问 Edge API,但不使用 acurl,则必须自行获取访问令牌并将其添加到 API 请求的标头中。获取访问令牌的一种方法是使用 get_token 实用程序。
安装 acurl
acurl 语法
acurl 实用程序使用以下语法:
acurl API_URL -u USERNAME:PASSWORD [-m MFACODE]
或
acurl API_URL -p PASSCODE
其中:
| 选项 | 是否必需? | 说明 |
|---|---|---|
| API_URL | 必需 | Apigee Edge API 端点。如需查看端点的完整列表,请参阅 Apigee Edge API 参考文档。 |
| USERNAME | 可选。必须提供用户名和密码组合或通行密钥。 | 您的 Apigee 用户名,通常是与您的 Apigee 账号关联的电子邮件地址。
您必须在首次调用 get_token 时传递用户名或密码。在访问令牌和刷新令牌过期之前,您无需再次传递电子邮件
地址。如果您要为多个用户缓存令牌
,则必须在每次调用中指定用户名。 |
| PASSWORD | 可选。必须提供用户名和密码组合或通行密钥。 | 您的 Apigee 账号的密码。如果您省略密码,系统会在您首次使用 acurl 时以及在没有有效刷新令牌的任何后续调用中提示您输入密码。如果您不想在命令中直接使用密码,可以使用
一次性代码通行密钥来代替密码。 |
| MFACODE | 可选 | 一个临时的六位数 多重身份验证 (MFA) 代码。如果您使用 -u 并且启用了 MFA,则必须提供此代码。
如果省略此代码,系统会提示您(除非处于通行密钥模式)。如果您未启用 MFA,或者您有脚本化流程,
则可以指定 -m "" 以避免提示。 |
| PASSCODE | 可选。必须提供用户名和密码组合或通行密钥。 | 您可以用来代替 密码的动态密码。使用 SAML IDP 进行身份验证时需要密码,并且可以使用密码通过 LDAP IDP 进行身份验证。 |
例如:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-evalacurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.comacurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com -p 424242acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com:mypassw0rdacurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval -u ahamilton@apigee.com:mypassw0rd -m 123456
除了上面显示的选项之外,acurl 还接受所有 curl
选项。例如,您可以使用标准 curl 选项传递标头、指定 HTTP 谓词、添加正文和启用
详细输出:
| 选项 | acurl meaning |
curl meaning |
|---|---|---|
| -u | username |
username |
| -m | MFA code |
max time(必须使用长格式 --max-time) |
| -p | passcode |
proxy tunnel(必须使用长格式 --proxytunnel) |
| -v | verbose |
verbose |
| -h | help |
help(必须使用长格式 --help) |
acurl -v -X POST -H 'Content-Type: application/json' \ https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval/apiproducts/myproduct/attributes/attr \ -u ahamilton@apigee.com -d '{"value":42}'
成功的 acurl 调用会根据您调用的 Edge API 端点返回结果。此外,acurl 会将访问令牌和刷新令牌都存储在 ~/.sso-cli 中。
在访问令牌和刷新令牌都过期之前,您可以继续进行调用,而无需输入凭据(密码和可选 MFA 或通行密钥) 直到访问令牌和 刷新令牌都过期,如令牌过期中所述。
从 curl 迁移
如果您使用的是 curl,则迁移到 acurl 实用程序非常简单,并且
无需手动对凭据进行编码。下载并安装该实用程序后,您可以将以下内容替换为:
curl -u usernameacurl -u usernameacurl 实用程序会对您的
凭据进行编码,并偶尔提示您输入获取新令牌对所需的其他凭据。
acurl 实用程序还可用于替换机器用户的 curl。如需了解详情,
请参阅 面向机器用户的 OAuth2 和 SAML 区域中的机器用户。
首次调用 acurl
首次使用 acurl 调用 API 时,您需要提供 Apigee 凭据(
Apigee 账号的用户名和密码,或通行密钥),以便
acurl 可以将它们交换为访问令牌和刷新令牌。
以下示例展示了使用 acurl 进行的初始调用,以使用 Get
organization 端点获取有关组织的信息:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com':[hidden input]Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }
acurl 实用程序会获取访问令牌并将其插入到对
Edge API 端点的调用中:
curl -H "Authorization: Bearer oauth2_access_token" ...
访问令牌会存储在本地 ~/.sso-cli 中,并用于
后续调用。
访问令牌过期后,acurl 会自动使用刷新令牌获取
新的访问令牌。当刷新令牌过期时,acurl 会提示您
输入 Apigee 凭据。
此请求会获取有关“ahamilton-eval”组织的详细信息。如需查看 Edge API 端点的完整列表,请参阅 Apigee Edge API 参考文档。
(1) 版权所有 2023 Google LLC
acurl 工具作为“软件”提供,所依据的是您使用 Google Cloud Platform 时需遵守的
协议,包括可从以下网址获取的《服务专用条款》:https://cloud.google.com/terms/service-terms。