我有一个这样构建的网站:
服务器 1:前端和 API1。
服务器 2:API2。
服务器 3:API3。
前端和 API 都有自己独立的应用程序池,所以有 4 个。 所有应用程序池都有相同的身份帐户:MyDoman\MyAccount
API3 是最重要的一个,是请求后到达的最后一个,它可以完成 SQL 数据库的所有工作,并在其托管的同一文件夹中生成 excel 和 pdf 文件。我的意思是,API3 的 .exe 所在的位置有一个“PDFs”和“ExcelFiles”文件夹。
API1和API2主要是出于安全原因,它们只是接收来自前端的请求,然后将其发送到API3。
发出请求时的流程为:前端 > API1 > API2 > API3
我知道请求会经过 3 个不同的服务器,但我想知道的是:我是否可以为除 API3 之外的所有应用程序池保留默认的 AppPoolIdentity,因为 API3 需要查询数据库并创建文件?如果我这样做,服务器 1 和服务器 2 将拥有自己的“虚拟”身份,这些身份可能仅具有读取权限,但由于所有工作都是通过服务器 3 内的 API3 完成的,我相信这样做不会有任何问题。
我是对的还是这一切听起来太滑稽了?我刚刚进入一份新工作,我继承了这样的应用程序,我注意到应用程序池中的帐户存在这个问题,并且由于我对 IIS 和应用程序池不太了解,所以我想看看这是否可行.
您建议对服务器 1 和服务器 2 上的应用程序池使用默认的 AppPoolIdentity,同时在服务器 3 上保留 API3 的 MyDomain\MyAccount,这是合理的。这种方法既实用又安全,因为它限制了不需要的权限,同时确保 API3 具有所需的访问权限。
但是,请确保:
我建议您在将这些更改部署到生产环境之前在临时环境中测试这些更改,以验证一切是否按预期工作。