您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
Apigee 提供了以下便捷实用程序,用于生成和传递 OAuth2 访问令牌和刷新令牌。您可以使用这些令牌在 Edge API 调用中通过 OAuth(包括 SAML 和 LDAP 工作流)进行身份验证:
acurl(1):围绕标准curl命令提供便捷的封装容器。构建向 Edge API 发出的 HTTP 请求,从get_token获取访问令牌和刷新令牌,并将访问令牌传递给 Edge 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) 和一个安装脚本。
如需安装 acurl 和 get_token,请执行以下步骤:
- 在您的机器上创建安装目录,或使用默认的
usr/local/bin目录。 - 从 Apigee 下载安装 ZIP 文件:
curl https://login.apigee.com/resources/scripts/sso-cli/ssocli-bundle.zip -O
- 解压缩下载的文件。
- 执行安装脚本:
sudo ./install -b /usr/local/bin
-b选项用于指定可执行文件的位置。如果您未指定此选项,安装脚本会将实用程序安装在/usr/local/bin中。 - 测试安装:
acurl -hget_token -h如果安装成功,这些命令会返回实用程序的帮助文本。
令牌过期
acurl 和 get_token 生成的令牌具有以下时长:
- 访问令牌将在 12 小时后过期。
- 刷新令牌的有效期为 30 天。
因此,使用 acurl 或 get_token 成功进行 API 调用后,您可以继续使用该令牌对 30 天。过期后,您必须重新输入凭据并获取新令牌。
设置 SSO 端点
在进行首次调用之前,您必须使用 acurl 和 get_token 为要使用的 Edge API 设置授权服务器端点。
在终端中,将 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 必需)
当您使用 acurl 或 get_token 进行 API 调用时,必须向该实用程序进行身份验证,才能收到令牌对。为此,您可以传入 Apigee 账号的用户名、密码和 MFA 验证码。不过,如果您使用的是 SAML IDP 或不想使用密码,则可以获取一次性验证码来代替密码。
如需获取动态密码,请执行以下操作:
- 在浏览器中输入以下网址:
- 对于没有可用区的 Cloud 客户:
https://login.apigee.com/passcode
- 对于具有可用区的 Cloud 客户:
https://zone_name.login.apigee.com/passcode
- 对于私有云客户,请与管理员联系以获取相应的 SSO 端点。
- 对于没有可用区的 Cloud 客户:
- 登录您的 Apigee 账号。
- 复制 6 位数通行码。
- 将
acurl或get_token与-p选项搭配使用,并传递通行码,如以下示例所示:get_token -p 1a2b3c
查看您的令牌
成功执行 acurl 或 get_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
acurl 和 get_token 工具作为“软件”提供,所依据的是您使用 Google Cloud Platform 时需遵守的协议,包括可从以下网址获取的《服务专用条款》:https://cloud.google.com/terms/service-terms。