您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 info
借助 get_token(1) 实用程序,您可以将 Apigee 凭据交换为访问
令牌和刷新令牌,以便用于访问 Edge API。这些令牌还可用于 SAML
和 LDAP 实现的 OAuth2 工作流。
借助 get_token,您可以:
- 获取访问令牌或刷新令牌。
- 将令牌输出到
stdout,以便在变量和命令中使用。 - 将令牌存储在磁盘上。
然后,您可以在对 Edge API 的请求中添加有效令牌,并在令牌过期时获取新令牌。
前提条件: 您必须先
安装,然后才能使用get_token它。
get_token 语法
get_token 实用程序使用以下语法:
get_token -u USERNAME:PASSWORD [-m MFACODE]
或
get_token -p passcode
其中:
| 元素 | 是否必需? | 说明 |
|---|---|---|
| USERNAME | 可选。必须提供用户名和密码组合或通行码。 | 您的 Apigee 用户名,通常是与您的 Apigee 账号关联的电子邮件地址。
首次调用 get_token 时,您必须传递用户名或通行码。
在访问令牌和刷新令牌过期之前,您无需再次传递电子邮件
地址。如果您要为多个用户缓存令牌
,则必须在每次调用中指定用户名。 |
| PASSWORD | 可选。必须提供用户名和密码组合或通行码。 | 您的 Apigee 账号的密码。如果您省略密码,系统会在您首次使用 get_token 时以及在没有有效刷新令牌的任何后续调用中提示您输入密码。如果您不想在命令中直接使用密码,可以使用一次性代码通行码来代替密码。 |
| MFACODE | 可选 | 一个临时的六位数 多重身份验证 (MFA) 代码。如果您使用 -u 并且启用了 MFA,则必须提供此代码。
如果省略此代码,系统会提示您(除非处于通行码模式)。如果您未启用 MFA,
或者您有脚本化流程,则可以指定 -m "" 以避免提示。 |
| PASSCODE | 可选。必须提供用户名和密码组合或通行码。 | 您可以用来代替 密码的动态密码。使用 SAML IDP 进行身份验证时需要通行码,并且可以使用通行码 通过 LDAP IDP 进行身份验证。 |
例如:
get_tokenget_token -u ahamilton@apigee.com:mypassw0rd -m 424242get_token -p mypass
如果调用成功,系统会将有效的访问令牌输出到 stdout,并将
访问令牌和刷新令牌都存储在 ~/.sso-cli 中。您可以使用这些令牌,直到它们
过期为止,如令牌过期中所述。
首次成功调用 get_token 后,您无需提供
凭据,直到令牌过期为止。
首次调用 get_token
如果您在首次调用中未指定任何选项,get_token 会提示您提供以下信息:
- 通行码(如果使用 SAML 身份提供方 (IDP) 进行身份验证)。
- 否则,请提供您的用户名、密码和临时 MFA 代码。
以下示例首次调用 get_token,并使用
用户名/密码组合以及可选的 MFA 代码进行身份验证:
get_token Enter username:ahamilton@apigee.comEnter the password for user 'ahamilton@apigee.com':[hidden input]Enter the six-digit code if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:123456ey42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJzdWIiOiIyZDFl <snip> VlLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiwiYXBwcm54242
将访问令牌添加到请求
成功调用 get_token 后,您可以通过多种方式在对 Edge API 的调用的 Authorization 标头中传递访问令牌来使用该令牌。
您可以:
- 复制
get_token响应的内容,并将其直接插入到您的 标头中:curl https://api.enterprise.apigee.com/v1/organizations/danger4242-eval \ -H "Authorization: Bearer B42CnTIYPxr...88NI5Q"
- 组合命令以获取令牌并将其添加到标头:
token=$(get_token); curl -H "Authorization: Bearer $token" \ https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
请注意,
get_token使用命令替换语法$(...),以便执行该命令。 - 在
curl调用中调用get_token:curl -H "Authorization: Bearer $(get_token)" \ https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
请注意,
get_token使用命令替换语法$(...),以便执行该命令。
这些示例请求会获取有关“ahamilton-eval”组织的详细信息。如需查看 Edge API 端点的完整列表 ,请参阅 Apigee Edge API 参考文档。
将 get_token 与 SAML 和 LDAP 结合使用
get_token 实用程序可与 SAML、LDAP 或任何其他底层 IDP 搭配使用。
get_token 支持使用多个 SSO 登录网址和多个账号。
如果单个用户拥有多个账号,系统会提示该用户为每次 get_token 调用指定用户名
。
清除 get_token 缓存
您可以使用以下可选标志来清除 get_token 缓存:
--clear-sso-cache
清除
$HOME/.sso-cli下 SSO_LOGIN_URL 的缓存目录,并舍弃服务器的所有缓存访问令牌和刷新令牌。--clear-all-sso-cache
清除
$HOME/.sso-cli下的所有目录,并舍弃所有缓存的令牌。
(1) 版权所有 2023 Google LLC
get_token 工具作为“软件”提供,所依据的是您使用 Google Cloud Platform 时需遵守的
协议,包括可从以下网址获取的《服务
专用条款》:https://cloud.google.com/terms/service-terms。