云环境下ASP.NET Core Web应用的安全认证方案
1. 云环境与传统部署的差异
在云环境中,无论是公共云还是本地PaaS平台,其运行方式与传统的物理或虚拟机Windows部署有很大不同。云环境下支撑应用的操作系统具有临时性,可能会定期或随机被销毁,因此不能期望其加入某个域,很多情况下,支持云应用的操作系统会被频繁且有意地销毁,比如一些公司在滚动更新时会销毁并重建所有虚拟机,以减少持续攻击的潜在风险。
2. 传统认证方式的局限性
由于代码采用跨平台的.NET Core,无法依赖仅适用于Windows应用的功能,因此集成Windows身份验证不可行,需要为云服务寻找其他替代方案。
3. 表单认证与Cookie认证
- 表单认证原理 :有过传统ASP.NET Web应用开发经验的人对表单认证应该很熟悉。在这种认证模式下,应用会展示一个自定义的用户界面(表单),提示用户输入凭证,凭证会直接传输到应用并由应用进行验证。用户成功登录后,会收到一个用于标记其在一段时间内已认证的Cookie。
- PaaS平台下的负担 :在PaaS平台上运行应用时,表单认证本身并没有本质的好坏之分,但会给应用带来一些额外负担。表单认证要求应用维护和验证凭证,这意味着需要处理机密信息的安全、加密和存储。不过,还有其他选择可以将身份的维护和验证工作交给第三方,让应用专注于核心业务价值。
4. 云应用的加密问题
- 传统加密方式的困境 :在传统ASP.