关于 acurl 和 get_token

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

Apigee 提供以下便捷实用程序,用于生成和传递 OAuth2 访问权限 和刷新令牌您将使用这些令牌在 Edge API 中验证自己的身份 OAuth 调用(包括 SAML 和 LDAP 工作流):

  • acurl(1):提供一个封装标准的封装容器 curl 命令。构建发送至边缘的 HTTP 请求 从 get_token 获取访问和刷新令牌,然后将访问令牌传递给 边缘 API。
  • get_token(1):交换您的 Apigee 凭据以获取访问权限 和刷新可用于调用 Edge API 的令牌。

这两个实用程序都使用您的 Apigee 账号凭据(用户名和密码,或密码)来换取 OAuth2 令牌。

Apigee 实用程序创建的令牌符合 OAuth 2.0 授权框架 规范

您可以选择使用 Apigee 实用程序获取 Edge API 的令牌或访问身份验证服务器。 您可以实施自己的方案来生成 OAuth2 访问令牌,并在请求中将其发送到 Edge API。

安装 acurl 和 get_token

Apigee 提供了一个 ZIP 文件,其中包含 acurl(1)get_token(1) 和 安装脚本

如需安装 acurlget_token,请执行以下操作

  1. 在计算机上创建安装目录,或使用默认的 usr/local/bin 目录。
  2. 从 Apigee 下载安装 ZIP 文件:
    curl https://login.apigee.com/resources/scripts/sso-cli/ssocli-bundle.zip -O
  3. 解压缩下载的文件。
  4. 执行安装脚本:
    sudo ./install -b /usr/local/bin

    -b 选项指定可执行文件的位置。如果没有 指定此选项,则安装脚本会在 /usr/local/bin 中安装实用程序。

  5. 测试安装:
        acurl -h
        get_token -h

    如果安装成功,这些命令将返回实用程序的帮助文本。

令牌过期

acurlget_token 会生成时长如下的令牌:

  • 访问令牌将在 12 小时后过期。
  • 刷新令牌会在 30 天后过期。

因此,在您使用 acurlget_token 成功进行 API 调用后, 您可以继续使用令牌对 30 天。届时,您必须重新输入 并获取新令牌

设置 SSO 端点

在进行首次调用之前,您必须为自己创建的 Edge API 设置授权服务器端点, 想与 acurlget_token 搭配使用。

在终端中,将 SSO_LOGIN_URL 环境变量设置为您的授权 服务器端点。例如:

  • 对于没有可用区的 Cloud 客户:
    export SSO_LOGIN_URL=https://login.apigee.com
  • 对于已设置可用区的 Cloud 客户:
    export SSO_LOGIN_URL=https://zone_name.login.apigee.com
  • 对于私有云客户,请与您的管理员联系以获取适当的 SSO 端点。

使用一次性密码(SAML 要求)

使用 acurlget_token 进行 API 调用时,您必须进行身份验证 你自己 实用程序接收令牌对。为此,您可以将 Apigee 账号的用户名、密码和 MFA 代码。但是,如果您使用的是 SAML IDP,或者您不希望 ,您可以获取一个一次性验证码。

如需获取动态密码,请按以下步骤操作

  1. 在浏览器中输入以下网址: <ph type="x-smartling-placeholder">
      </ph>
    • 对于没有可用区的 Cloud 客户:
      https://login.apigee.com/passcode
    • 对于已设置可用区的 Cloud 客户:
      https://zone_name.login.apigee.com/passcode
    • 对于私有云客户,请与您的管理员联系以获取适当的 SSO 端点。
  2. 登录您的 Apigee 账号。
  3. 复制由 6 个字符组成的密码。
  4. acurlget_token-p 选项结合使用,并将 密码,如下例所示:
    get_token -p 1a2b3c

查看令牌

成功执行 acurlget_token 后,实用程序 在 ~/.sso-cli 中创建一个包含令牌和其他元数据的数据文件。

如需查看令牌,您可以使用如下命令:

get_token -v

此命令会显示已解码的令牌声明,例如:

Decoded token claims:
 {
  "jti": "8018507e-9f34-4a90-bf97-ff226a06b19b",
  "sub": "858217a9-01a1-4111-8525-75ca555f5d5c",
  "scope": [
    "scim.emails.read",
    "scim.me",
    "openid",
    "password.write",
    "approvals.me",
    "scim.ids.read",
    "oauth.approvals"
          ],
  "client_id": "edgecli",
  "cid": "edgecli",
  "azp": "edgecli",
  "grant_type": "password",
  "user_id": "858217a9-01a1-4111-8525-75ca555f5d5c",
  "origin": "usergrid",
  "user_name": "myusername@google.com",
  "email": "myusername@google.com",
  "auth_time": 1597444772,
  "al": 0,
  "rev_sig": "6271c527",
  "iat": 1597444772,
  "exp": 1597487972,
  "iss": "https://login.apigee.com",
  "zid": "uaa",
  "aud": [
    "edgecli",
    "scim.emails",
    "scim",
    "openid",
    "password",
    "approvals",
    "scim.ids",
    "oauth"
        ]
    }
Current timestamp: 1597444983
Existing access token is still valid

(1) 版权所有 2023 Google LLC
acurlget_token 工具以“软件”的形式提供下方 您使用 Google Cloud Platform 时须遵守的协议, 如需查看具体条款,请访问 https://cloud.google.com/terms/service-terms