我有一个现有服务的管理控制台,我希望通过使用我们公司的OAuth 2.0服务添加登录来提供访问权限。我想在这里使用Apigee,因此带有admin-console的web-app不必实现登录逻辑。
我的想法是使用AuthorizationCode流程并让Apigee管理令牌,我查看了https://github.com/apigee/api-platform-samples/tree/master/sample-proxies/oauth-login-app,但我真的无法看到我们现有的OAuth服务如何适应。
有这样的样本吗?也许使用谷歌或Facebook的OAuth服务来验证用户?
答案 0 :(得分:1)
首先,Apigee需要成为管理控制台的代理。这意味着管理控制台的所有流量都必须通过Apigee。否则,您将无法执行身份验证。
其次,有两种不同的选项可以与外部oauth 2.0服务集成。 Apigee能够存储外部访问令牌并将其用作自己的令牌,或者Apigee可以生成令牌并将外部访问令牌存储为自定义属性。
关于Apigee代理如何看起来的高层次想法:
ProxyEndpoint
- 暴露给连接到管理控制台的客户端的端点
TargetEndpoint
(未在oauth login-app示例中显示) - 实际管理控制台的端点
在将请求发送到管理控制台之前在Apigee代理中执行的流将需要实现检查身份验证令牌的逻辑。如果它有效,请将请求传递到TargetEndpoint(管理控制台)。如果请求无效,则逐步执行调用外部oauth 2.0服务器的身份验证代码流的逻辑。这将需要以下内容:
#2并非完全直截了当,并且不会成为显示此实现的示例代理。如果oauth 2.0服务支持密码授权,则可以简化实施,但允许凭证通过apigee而不是直接通过授权服务器。