我有一个架构问题。
假设我有一条路线'/门票'。我可以使用护照轻松验证访问此路由的用户。我可以通过acl进一步保护这条路线。
现在让我们说我的内部应用程序或进程想要访问此相同的路由。我想我可能只有一个选择。我必须创建一个具有正确角色的单独用户/密码,并让我的内部应用程序或进程使用此单独的凭据对此路由进行HTTP调用。
那么,这是访问内部API的正确方法吗? 还有其他可能有用的建议吗?
谢谢
答案 0 :(得分:0)
对于只能在内部访问的路线,有许多不同的选项:
为了提高安全性,您还可以组合各种选项,这些选项有时可用于防止对您自己的基础架构的内部攻击,无论是来自恶意员工还是来自您自己专用网络上的其他受损基础架构。
例如,您可以组合选项1,2和5.您将创建一个无法从公共互联网访问的单独服务器端口,并且您将使用仅内部凭据对每个请求进行身份验证只允许从特定的内部IP地址访问它。我并不是说你必须将所有这些结合起来,但我告诉你这些并非全部相互排斥。我最喜欢的是将1和2结合起来。
仅供参考,如果您希望私有访问相同的功能,例如/tickets
,但具有不同的访问权限,您可以使用仅在内部访问的第二台服务器(如上面选项1中所述)在其上有一个/tickets
路由,具有不同的访问控制。两个独立的服务器可以共享所有相同的/tickets
实现(只是将实现放在两者可以共享的功能中),除非它们在定义所需身份验证的两个服务器上具有不同的路由定义。您甚至可以让私有服务器在request
对象上设置一个标志,该标志向您的代码的其余部分指示调用该路由的入口点(公共或私有),以便它可以根据该信息进行分支。 p>