【问题标题】:Validate oAuth 2 access token in APIGEE without VerifyOAuthTokens policy在没有 VerifyOAuthTokens 政策的情况下验证 APIGEE 中的 oAuth 2 访问令牌
【发布时间】:2017-05-31 21:29:55
【问题描述】:

我们使用 Apigee 作为我们的授权服务器 (AS),并且我们在 IBM Bluemix 公共云中部署了一些 Spring Restful 服务,作为我们的资源服务器 (RS)。

每个服务都在 Apigee 中配置了等效的代理服务。对于代理服务,我们配置了 VerifyOAuthTokens 策略来验证用户传递的令牌,如果传递了无效令牌则返回错误

问题是,由于我们的 RS 在公共云中(没有计划或不需要迁移到专用或私有云),api 端点是开放的,任何知道 url 的人都可以调用。尽管期望是每个人应该通过 APIGEE 代理调用 api,但我们不能强制这样做,因为我们在公共云中,并且没有打开来自 apigee 或其他东西的端口的选项。我们希望采用以下方法来保护 api 端点。

  1. 接受每次调用的授权标头
  2. 获取令牌并在 Apigee 中调用验证令牌服务

对于 2,我们找不到 APIGEE api 可以验证类似于 google 的访问令牌

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=1/fFBGRNJru1FQd44AzqT3Zg

或 Github 的

GET /applications/:client_id/tokens/:access_token
  • 实际上是否有外部 APIGEE 服务来验证令牌?
  • 如果不是,那么确保只有拥有有效令牌的有效用户才能访问 API 的最佳方法是什么?

谢谢, 塔塔

【问题讨论】:

    标签: rest spring-mvc oauth ibm-cloud apigee


    【解决方案1】:

    您是否查看过 Apigee 社区中的这篇帖子:Using third-party OAuth tokens

    我们做了类似的事情,但没有使用 oauth 令牌。我们使用 Apigee 调用第三方 IDP(身份提供商)。第 3 方 IDP 无法生成令牌,但公开了一个 Web 服务来对用户进行身份验证。如果用户身份验证成功(基于解释从目标端点 Web 服务返回的结果),那么您通过将外部授权状态设置为 true 来告诉 Apigee 它是成功的(链接中的步骤 #2)。

    注意:这必须在 GenerateAccess 令牌操作之前的分配消息策略步骤中完成。 Apigee 将此解释为成功授权,然后可以生成有效的 oauth 令牌,然后调用者可以发送该令牌以访问受保护的 API。

    【讨论】:

    • 谢谢@Chris 我会调查的。虽然我不认为我们可以使用它,因为我们没有任何第三方 IDP,但我们的服务是一个简单的服务,只支持 client_credentials 授权类型,我们不授权用户,只授权应用程序。这些应用程序被配置为组织
    猜你喜欢
    • 2016-12-15
    • 2012-01-15
    • 2012-06-15
    • 1970-01-01
    • 2020-05-12
    • 2022-11-24
    • 2019-01-18
    • 1970-01-01
    • 2013-10-18
    相关资源
    最近更新 更多