2017-01-16 34 views
1

我们使用Apigee作为我们的授权服务器(AS),并且在充当我们的资源服务器(RS)的IBM Bluemix公共云中部署了一些Spring Restful服务。在没有VerifyOAuthTokens策略的情况下在APIGEE中验证oAuth 2访问令牌

每个服务都有一个在Apigee中配置的等效代理服务。对于代理服务,我们已经配置了VerifyOAuthTokens政策,以验证用户传递的令牌,并返回一个错误,如果无效令牌传递

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

  1. 接受Authorization头为每个呼叫
  2. 拿令牌和调用验证令牌服务Apigee

对于2,我们无法找到一个APIGEE API,它可以验证的访问令牌类似于谷歌说

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

或GitHub的

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

感谢, Tatha

回答

0

难道你看看这个帖子在Apigee社区:Using third-party OAuth tokens

我们做了一些与此类似,但不使用OAuth令牌。我们使用Apigee对第三方IDP(身份提供者)进行标注。第三方IDP无法生成令牌,但公开了Web服务来验证用户身份。如果用户已成功验证(基于解释从目标端点webservice收回的结果),则通过将外部授权状态设置为true(链接中的步骤#2)告诉Apigee它已成功。

注意:这必须在GenerateAccess令牌操作之前的Assign Message Policy步骤中完成。 Apigee将其解释为成功的授权,然后可以生成一个有效的oauth标记,然后调用方可以发送该标记以访问受保护的API。

+0

谢谢@Chris我会研究这个。虽然我不认为我们可以使用它,因为我们没有任何第三方IDP,但我们的服务仅支持client_credentials授权类型,并且我们不授权用户,但只授予应用程序。这些应用程序被配置为组织 – Tatha

相关问题