让Apigee为客户端进行身份验证(oauth)



我有一个用OAuth保护的服务。要使用它,首先需要一个令牌。我有一个应用程序,它只能访问Apigee代理。我希望Apigee为客户端(应用程序(进行身份验证,并在Apigee中使用API密钥为客户端设置保护。我该怎么做?

我认为您要做的是Apigee所说的"最后一英里安全"。不幸的是,这并不像添加策略并使用令牌URL、客户端ID和机密进行配置那么简单。您需要确保安全地存储凭据,适当地缓存令牌,并将令牌传递给代理目标。

幸运的是,Apigee有一个演示项目,我相信你正在尝试做这件事。基本上,你的代理只需配置验证API密钥策略(先这样做,就好像API密钥不正确,不需要做所有的OAuth握手(。确认后,您可以使用Javascript策略检查缓存中是否有令牌,然后在缓存未命中的情况下调用OAuth令牌端点来获取令牌。我相信它会使用AssignMessage策略将Authorization标头设置为令牌。(注意,示例项目不包括验证API密钥策略,但添加起来应该足够容易(

此外,演示项目将客户端ID和机密存储在js文件中,我不建议这样做。也许将其存储在加密的KVM条目中?

Outbound OAuth示例项目可以在这里找到。

请参阅以下关于在API代理中使用oauth身份验证的视频:

https://www.youtube.com/watch?v=zn94GhcdgHc&list=PLsWqc60hQz4clQ4ykjCu4qyEhdKe11Lvy

您可以使用Ouath2-客户端凭据授予类型,这意味着您必须在代理中添加和配置安全策略,请查看下面解释此流程的链接。

https://docs.apigee.com/api-platform/security/oauth/oauth-20-client-credentials-grant-type

最新更新