0

我们正在使用 Apigee 平台来托管我们的 api。我们在 Apigee 中的 Api 代理配置为使用 Oauth 2.0 client_credentials 和隐式授权类型。

我们正在创建 Console To Go,为我们的 API 提供测试控制台给开发人员,并将控制台配置为使用 Oauth 2.0 Implicit Grant Flow。

当我们测试实际调用时,我们总是从 Apigee 得到 401。这是回复

HTTP/1.1 401 API is secure. Needs security Credentials
WWW-Authenticate:
Bearer realm="null",error='invalid_token",error_description='oauth.v2.InvalidAccessToken: Invalid access token"
Content-Length:101
Content-Type:application/json

{
 "fault":  {
 "faultstring": "Invalid access token",
 "detail":  {
  "errorcode": "oauth.v2.InvalidAccessToken"
  }
  }
}

发送到我们 API 的实际请求是:

GET /whodini/v1/discovery?email=puneet%40whodini.com HTTP/1.1
Authorization: OAuth M********N (Masked for security)
Host: whodiniinc-test.apigee.net
X-Target-URI: http://whodiniinc-test.apigee.net
Connection:
Keep-Alive

Apigee 的 ValidateAccessToken 策略在Authorization: Bearer {token}标头中查找令牌值,我怀疑它因 401 而失败,因为控制台发出的实际请求 go contains Authorization: Oauth {token}

有什么办法 1. 使用 Oauth 隐式授予流时控制授权标头值,以便在进行 API 调用时使用控制台Authorization: Bearer M********N而不是Authorization: OAuth M********N

  1. 在 Apigee 代理的 ValidateAccessToken 政策中添加一条规则以解释Authorization: OAuth M********N (Masked for security)
4

1 回答 1

1

请按照以下步骤解决您的问题:

  1. 转到https://apigee.com/togo
  2. 登录
  3. 选择 OAuth 2.0 隐式授权流程(用户代理)
  4. 选择“草稿版本”为“14 或更高版本”
  5. 单击“保存凭据”按钮

希望这可以帮助。如果您有任何其他问题,请告诉我。

谢谢,阿肯德拉

于 2013-11-22T14:02:55.830 回答