高级 OAuth 2.0 主题

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

使用第三方 OAuth 令牌

请参阅使用第三方 OAuth 令牌

标识多个回调网址

使用授权代码授权类型时,必须在注册开发者应用时指定回调网址。回调网址通常指定要代表客户端应用接收授权代码的应用的网址。此外,此网址字符串用于验证。在请求授权代码和访问令牌时,客户端必须将此网址发送到 Apigee Edge,并且 redirect_uri 参数必须与已注册的参数匹配。另请参阅请求访问令牌和授权代码

例如:

http://myorg-test.apigee.net/weather/oauth/authorizationcode?client_id=123456&response_type=code&redirect_uri=http://example.com/callback&scope=scope1%20scope2&state=abc

有一个这样的用例:在单个代理应用中指定多个回调网址。例如,您可能需要对多个网域进行身份验证。例如:

  • http://myexample.com/callback
  • http://myexample.uk/callback
  • http://myexample.ja/callback

在注册开发者应用时,Edge 不支持指定多个回调网址或使用通配符。为了实现此用例,您可以在注册开发者应用时指定空的回调网址,然后在 JavaScript 政策中添加逻辑来验证传入的重定向 URI。

更改 GenerateAuthCode 操作的默认返回行为

默认情况下,OAuthV2 政策的 GenerateAuthCode 操作会返回 302 重定向至回调网址以及包含授权代码的 ?code 查询参数。

在某些情况下,您可能需要改变此行为。例如,您可能需要返回 200 响应以及包含代码的结构化 JSON。

为了实现此用例,可使用 ExtractVariable 政策检索代码,并使用 AssignMessage 政策以 JSON 载荷形式返回代码(状态为 200)。

审核应用最终用户同意

您可能需要验证应用最终用户是否已授权应用。您可以使用 Apigee Edge Audit API 来执行此操作。

出站 OAuth 示例

请参阅 GitHub 上 Apigee api-platform-samples 代码库中的 outbound-oauth 示例。您可以克隆、部署和运行该示例。本示例使用 Microsoft Azure translator API 来翻译 Twitter 微博。为此,该方法会发出出站调用以获取 OAuth 访问令牌,然后使用 API 服务缓存政策缓存该令牌,并在每次发出出站调用时重复使用缓存的令牌。此外,还包括用于调用 API 代理的演示浏览器应用。