您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
Apigee 提供了以下便捷实用程序,可用于生成和传递 OAuth2 访问令牌和刷新令牌。您可以使用这些令牌通过 OAuth(包括 SAML 和 LDAP 工作流)在 Edge API 调用中验证自己的身份:
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 提供了一个包含 acurl
(1)、get_token
(1) 和安装脚本的 ZIP 文件。
如需安装 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 -h
get_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
- 对于私有云客户,请与您的管理员联系,以获取相应的单点登录端点。
使用一次性密码(SAML 必须使用)
当您使用 acurl
或 get_token
进行 API 调用时,您必须向实用程序进行身份验证才能接收令牌对。为此,您可以传递 Apigee 帐号的用户名、密码和 MFA 代码。但是,如果您使用的是 SAML IDP 或不想使用密码,则可以获取一次性代码密码来改用。
如需获取一次性密码,请执行以下操作:
- 在浏览器中输入以下网址:
- 对于没有可用区的 Cloud 客户:
https://login.apigee.com/passcode
- 对于使用以下可用区的 Cloud 客户:
https://zone_name.login.apigee.com/passcode
- 对于私有云客户,请与您的管理员联系,以获取相应的单点登录端点。
- 对于没有可用区的 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 上列出的“服务专用条款”。