我有一组使用 ASP.Net WebAPI 开发的 RESTful 服务,这是一个单独的项目。我通过 ASP.Net 内置的 Forms Authentication(基于 cookie)机制处理身份验证,该机制也内置在同一个项目中。这些服务需要公开暴露给互联网,因为它们将被移动应用程序使用。
我的一个队友建议将身份验证分开,并将其托管在 DMZ 中,而将服务项目托管在防火墙内,就像这样
身份验证模块(DMZ/Internet)|--防火墙--|(安全区域)负载均衡器-->托管服务网站的多台服务器。
- 为什么以及如何才能更安全?
- 最好的方法是什么?即我是否必须创建两个项目并将身份验证逻辑放在一个项目中才能放置在 DMZ 中。
- IIS 中是否有任何标准内置机制可以帮助我实现这一点(IIS 7)?
- 身份验证模块是否可以扩展?如何扩展?例如,DMZ 中的多个身份验证服务器