适用于私有云的 Edge v4.18.01
基本身份验证是在调用 Edge Management API 时进行身份验证的一种方法。对于 例如,您可以向 Edge Management API 发出以下 c网址 请求,以访问信息 关于您所在组织的信息:
> curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
在此示例中,您将使用 c网址 -u 选项传递基本身份验证凭据。或者 可以在 Bearer 标头中传递 OAuth2 令牌以使 Edge Management API 调用。例如:
> curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName
启用 SAML 后,您可以选择停用基本身份验证。如果您停用了基本身份验证 依赖于 Edge 的 Maven 脚本、Shell 脚本、apigeetool 等 支持基本身份验证的 Management API 调用不再有效。您必须更新所有 API 调用和 使用基本身份验证在 Bearer 标头中传递 OAuth2 访问令牌的脚本。
使用 get_token 获取和刷新令牌
get_token 实用程序 将您的基本身份验证凭据和密码交换为 OAuth2 访问令牌和刷新令牌。通过 get_token 实用程序接受您的 并输出有效的访问令牌。如果可以刷新令牌,它会刷新 将其打印出来如果刷新令牌过期,系统会提示用户凭据。
get_token 实用程序存储 磁盘上的令牌,可在需要时使用。它还会向 stdout 输出一个有效的访问令牌。 然后,您可以使用 Postman,也可以将其嵌入环境变量中,以便在 curl 中使用。
以下步骤介绍了如何使用 get_token 获取 OAuth2 访问令牌, 进行 Edge Management API 调用:
- 下载 sso-cli
套装:
>curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
其中,edge_sso_IP_DNS 是机器的 DNS 名称的 IP 地址edge_sso_IP_DNS 托管 Edge SSO 模块的节点。如果您在 Edge SSO 上配置了 TLS,请使用 https 和正确的 TLS 端口号。 - 解压缩 ssocli-bundle.zip
套装:
>解压缩 ssocli-bundle.zip - 在以下位置安装 get_token:
/usr/local/bin:
>./install:使用 -b 选项用于指定 其他位置:>./install -b 路径 - 设置 SSO_LOGIN_URL
环境变量,格式如下:
导出 SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
其中,edge_sso_IP_DNS 是机器的 DNS 名称的 IP 地址edge_sso_IP_DNS 托管 Edge SSO 模块的节点。如果您在 Edge SSO 上配置了 TLS,请使用 https 和正确的 TLS 端口号。 - 在浏览器中,访问以下网址以获取一次性密码:
http://edge_sso_IP_DNS:9099/passcode
如果您在 Edge SSO 上配置了 TLS,请使用 https 和正确的 TLS 端口号。
注意:如果您目前未通过身份提供方登录,您将需要 系统会提示我登录
该网址会返回一个一次性密码,该密码在您刷新该网址以获取 新密码,或结合使用密码和 get_token 来生成访问令牌。 - 调用 get_token 即可获取
OAuth2 访问令牌:
>get_token -u emailAddress
其中 emailAddress 是 Edge 用户的电子邮件地址。您 提示输入您在第 3 步中获得的一次性密码:
一次性代码(可在以下位置获取一个: https://edge_sso_IP.com/passcode )
如果 SAML 已启用,请输入密码,或按 Enter 键:
输入密码。get_token 实用程序用于获取 OAuth2 访问权限 令牌,将它输出到屏幕上,然后将它和刷新令牌写入 ~/.sso-cli。
您可以使用 get_token 命令在命令行中输入密码,格式如下:
>get_token -u emailAddress -p 密码 - 将访问令牌作为 Bearer 标头传递给 Edge Management API 调用:
>curl -H “授权:不记名” access_token" https://ms_IP:8080/v1/organizations/orgName
首次获得新的访问令牌后,您可以获取该访问令牌并 请通过单个命令将其传递给 API 调用,如下所示:
>header=`get_token` && curl -H “授权:不记名 $header” https://ms_IP:8080/v1/o/orgName
使用这种形式的命令时,如果访问令牌已过期,系统会自动刷新 直到刷新令牌过期为止
在刷新令牌过期后,get_token 会提示您输入新密码。您 必须先转至上面第 3 步中显示的网址并生成一个新密码,然后才能生成 新的 OAuth 访问令牌
使用 Management API 获取和刷新 词元
使用 OAuth2 使用 Apigee Edge Management API 定义安全性的说明),其中说明了如何使用 用于获取和刷新令牌的 Edge Management API。您还可以使用 Edge API 调用来获取令牌 从 SAML 断言生成。
使用 OAuth2 安全性 使用 Apigee Edge Management API 时,调用的网址必须引用您的可用区 名称。此外,要生成初始访问令牌,您必须包含密码,例如 如上述过程的第 3 步中所示。
例如,使用以下 API 调用生成初始访问和刷新令牌:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" / -H "accept: application/json;charset=utf-8" / -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST / https://edge_sso_IP_DNS:9099/oauth/token -s / -d 'grant_type=password&response_type=token&passcode=passcode'
对于授权,请在 Authorization 标头中传递预留的 OAuth2 客户端凭据。该调用将输出 访问和刷新令牌到屏幕上。
如需稍后刷新访问令牌,请使用以下包含刷新令牌的调用:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" / -H "Accept: application/json;charset=utf-8" / -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST / https://edge_sso_IP_DNS:9099/oauth/token / -d 'grant_type=refresh_token&refresh_token=refreshToken'