【发布时间】:2017-05-31 21:29:55
【问题描述】:
我们使用 Apigee 作为我们的授权服务器 (AS),并且我们在 IBM Bluemix 公共云中部署了一些 Spring Restful 服务,作为我们的资源服务器 (RS)。
每个服务都在 Apigee 中配置了等效的代理服务。对于代理服务,我们配置了 VerifyOAuthTokens 策略来验证用户传递的令牌,如果传递了无效令牌则返回错误
问题是,由于我们的 RS 在公共云中(没有计划或不需要迁移到专用或私有云),api 端点是开放的,任何知道 url 的人都可以调用。尽管期望是每个人应该通过 APIGEE 代理调用 api,但我们不能强制这样做,因为我们在公共云中,并且没有打开来自 apigee 或其他东西的端口的选项。我们希望采用以下方法来保护 api 端点。
- 接受每次调用的授权标头
- 获取令牌并在 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