我试图获得一些关于如何在Azure上使用安全体系结构的建议。
背景:
我们正在考虑在Azure上构建一个需要非常安全的多租户应用程序(个人敏感数据)。该应用程序将被标准浏览器和移动设备访问。
安全访问类型:
我们有三种类型的用户/访问类型。
1-通过https访问普通的、非私有的SQL +托管文件的普通老用户/密码是可以的。
2-用户/通过https,但需要通过用户计算机/设备上安装的证书对用户进行身份验证。这一级别的用户将需要访问敏感数据,这些敏感数据应该在rest数据库和任何上传的文件中进行加密。
3--与(2)相同,但加入了一些双因素身份验证(我们在其他方面使用了YubiKey -也可以考虑使用电话OTP )
大多数用户只能访问他们自己的租户数据库,但是我们有“帐户管理器”类型的用户需要访问选定的租户数据,因此我们期望他们要么需要他们服务的每个租户一个证书的副本,要么我们必须使用某种主证书。
数据库类型:
从多租户的角度来看,Azure Federated似乎是一个好方法,因为(a)我们只需在每个表中使用"TenentID“键编写一个应用程序,登录后,设置一个全局筛选器,为我们处理隔离(b),我们理解Azure联邦SQL实际上在后台维护每个租户单独的SQL数据库实例。(Ref:http://msmvps.com/blogs/nunogodinho/archive/2012/08/11/tips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases.aspx)
任何人是否可以指向任何链接或提供有关设置和管理文件共享、SQL和静止文件数据加密、用户身份验证等所需方法的建议(对新用户注册pref的自动管理)。
发布于 2012-11-25 12:54:00
我对证书没有什么帮助,但您确实需要一些“主证书”。如果您计划使用Azure网站,您不能使用您自己的证书目前。
关于数据库的设置。SAAS应用程序建立在信任的基础上,因此您永远不希望向其他用户显示或编辑使用的数据。因此,我强烈建议您不要对每个表使用TenantID。这将留下恶意用户攻击或某个开发人员错误的可能性。
规避这些风险的唯一方法是
就我个人而言,我认为即使进行了非常extensive+automated的测试,您也不可能对恶意用户拥有100%的代码覆盖率。我想我不是一个人。
唯一的出路是物理上不同的表格。让我们看一下选项:
你在azure.com上读过关于多租户的文章吗?http://msdn.microsoft.com/en-us/library/windowsazure/hh689716.aspx
https://stackoverflow.com/questions/13009617
复制相似问题