我有一个在Docker容器中运行的应用程序,它需要使用外部REST API。外部REST API使用OAuth2密码授权类型(client_id
,client_secret
,user_name
和password
)进行保护。该应用程序不支持这种类型的身份验证。
我想到了一个使用轻量级代理运行另一个容器的解决方案。它将处理令牌请求,缓存和相关的stuf,并在没有任何安全性的情况下公开代理的REST API。这两个容器将共享一个Docker网络"proxy"
,该网络将仅将不安全的REST API保留给应用程序。
我有两个问题:
1.这是个好主意吗
1.有没有一个轻量级的代理可以轻松配置来实现这一点?
1条答案
按热度按时间hgtggwj01#
您的后端应用应该以标准的方式运行,作为OAuth客户端。这将涉及您的应用在HTTP授权头中向外部API发送访问令牌。
获取外部令牌的调用应该只偶尔进行,然后缓存在内存中。使用过滤器/帮助器类是将这些职责从业务逻辑外部化的最佳方式,同时保持安全。
避免在后端中引入不受保护的端点,因为这些端点将来可能会被利用。相反,请遵循
zero trust
方法来处理API和业务数据,其中内部和外部端点都是安全的。这比旧的perimeter security
方法更可取。以上所有内容都应该可以通过简单的代码实现,因此建议在处理安全数据时使用。