使用 get_token

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

利用 get_token(1) 实用程序,您可以将 Apigee 凭据交换为可用于访问 Edge API 的访问令牌和刷新令牌。这些令牌还可与 OAuth2 工作流的 SAML 和 LDAP 实现搭配使用。

借助 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_token
get_token -u ahamilton@apigee.com:mypassw0rd -m 424242
get_token -p mypass

成功的调用会将有效的访问令牌输出到 stdout,并将访问令牌和刷新令牌存储在 ~/.sso-cli 中。如令牌过期中所述,您可以在这些令牌过期之前使用这些令牌。

首次成功调用 get_token 后,在令牌过期之前,您无需添加凭据。

首次调用 get_token

如果您在第一次调用中未指定任何选项,get_token 将提示您执行以下操作:

  • 如果通过 SAML 身份提供方 (IDP) 进行身份验证,则为密码。
  • 否则,将显示您的用户名、密码和临时 MFA 代码。

以下示例是首次调用 get_token,并将用户名/密码组合与可选的 MFA 代码用于身份验证:

get_token
Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com':
[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:
123456

ey42bGciOiJSUzI1NiJ9.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-cliSSO_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 上列出的服务专用条款)。