让 Apigee 为客户端做认证(oauth)

Let Apigee do authentication (oauth) for client

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

请参阅以下视频,了解如何在您的 API 代理中使用 oauth 身份验证:

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

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

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

我认为您正在尝试做的是 Apigee 所指的 Last Mile Security。不幸的是,它不像添加策略并使用令牌 URL、客户端 ID 和密码配置它那么简单。您需要确保安全地存储凭据、适当地缓存令牌并将令牌传递给代理目标。

幸运的是,Apigee 有一个演示项目可以完成我认为您正在尝试做的事情。基本上,您的代理将配置简单的验证 API 密钥策略(首先执行此操作,就好像 api 密钥不正确一样,无需执行所有 OAuth 握手)。确认后,您可以使用 Javascript 策略检查缓存中的令牌,然后在缓存未命中时调用 OAuth 令牌端点获取令牌。我相信它然后使用 AssignMessage 策略将授权 header 设置为令牌。 (请注意,示例项目不包括验证 API 密钥策略,但应该很容易添加)

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

可以找到出站 OAuth 示例项目 here