基本身份验证是在调用 Edge Management API 时进行身份验证的一种方法。
例如,您可以向 Edge Management API 发出以下 curl
请求,
组织的相关信息:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
在此示例中,您将使用 curl
-u
选项来传递基本身份验证
凭据。或者,您也可以在 Bearer
标头中传递 OAuth2 令牌
Edge Management API 调用,如以下示例所示:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
启用外部 IDP 进行身份验证后,您可以选择停用“基本”设置
身份验证。如果您停用“基本”
身份验证机制之前,需要检查的所有脚本(例如 Maven、shell 和 apigeetool
)
依赖支持基本身份验证的 Edge Management API 调用不再有效。你必须更新
任何使用基本身份验证传递 OAuth2 访问令牌的 API 调用和脚本,
Bearer
标头。
使用 get_token 获取和刷新令牌
get_token
实用程序会交换您的基本身份验证凭据(在某些情况下,
密码)。get_token
实用程序接受您的
凭据并返回有效的访问令牌。如果可以刷新令牌,实用程序会刷新
并将其返回。如果刷新令牌过期,系统会提示用户凭据。
get_token
实用程序将令牌存储在磁盘上,以备需要时使用。它
还会向 stdout 输出有效的访问令牌。在该标签页中,您可以使用如下浏览器扩展程序:
Postman 或将其嵌入环境变量中,以便在 curl
中使用。
如需获取 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 是托管 Apigee SSO 模块。如果您在 Apigee SSO 上配置了 TLS,请使用
https
和正确的 TLS 端口号。 - 解压缩
ssocli-bundle.zip
软件包,如以下示例所示:unzip ssocli-bundle.zip
- 在
/usr/local/bin
中安装get_token
,如以下示例所示:./install -b path
-b
选项指定其他位置。 - 将
SSO_LOGIN_URL
环境变量设置为您的登录网址,如下所示 表单:export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
其中,edge_sso_IP_DNS 是托管 Apigee SSO 的机器的 IP 地址 模块。如果您在 Apigee SSO 中配置了 TLS,请使用
https
和正确的 TLS 端口 数字。 - (仅限 SAML)在浏览器中,前往以下网址以获取一次性
密码:
http://edge_sso_IP_DNS:9099/passcode
如果您在 Apigee SSO 中配置了 TLS,请使用
https
和正确的 TLS 端口 数字。此请求会返回一个一次性密码,该密码在您刷新该网址以 获取新密码,或结合使用密码和
get_token
来生成 访问令牌。请注意,您只有在通过 SAML IDP 进行身份验证时才能使用密码。您不能使用 使用 LDAP IDP 进行身份验证的密码。
- 调用
get_token
以获取 OAuth2 访问令牌,如以下示例所示:get_token -u emailAddress
其中 emailAddress 是 Edge 用户的电子邮件地址。
(仅限 SAML)除了输入电子邮件地址外,还要在命令行中输入密码 如下例所示:
get_token -u emailAddress -p passcode
get_token
实用程序获取 OAuth2 访问令牌,并将其打印到 并将刷新令牌和刷新令牌写入~/.sso-cli
。 - 将访问令牌作为
Bearer
标头传递给 Edge Management API 调用。 如下例所示:curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
- 首次获取新的访问令牌后,您可以获取访问令牌并
通过单个命令将其传递给 API 调用,如以下示例所示:
header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
使用这种形式的命令时,如果访问令牌已过期, 直到该刷新令牌过期为止
(仅限 SAML)刷新令牌过期后,get_token
会提示您输入新密码。您
必须先转至上面第 3 步中显示的网址并生成一个新密码,然后才能生成
新的 OAuth 访问令牌
使用 Management API 获取和刷新 词元
使用 OAuth2 如何使用 Apigee Edge Management API 定义安全防护机制一文中介绍了如何使用 用于获取和刷新令牌的 Edge Management API。您还可以使用 Edge API 调用来获取令牌 从 SAML 断言生成。
上述 API 调用与 使用 OAuth2 使用 Apigee Edge Management API 定义安全性的一点是,调用的网址必须引用您的 。此外,如需使用 SAML IDP 生成初始访问令牌,则必须添加 输入验证码,如上述过程的第 3 步中所示。
对于授权,请在 Authorization
中传递预留的 OAuth2 客户端凭据
标头。该调用会将访问令牌和刷新令牌输出到屏幕上。
获取访问令牌
(LDAP) 使用以下 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'
(SAML) 使用以下 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'
请注意,使用 SAML IDP 进行身份验证需要临时密码,而使用 LDAP IDP 进行身份验证 则不需要。
刷新访问令牌
如需稍后刷新访问令牌,请使用以下包含刷新令牌的调用:
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'