我正在使用ASP.NET MVC平台开发一个应用程序,该平台将作为Web服务(SaaS模型)公开.我正在尝试确定为每个用户帐户分区URL命名空间的最佳方法.该应用程序需要通过SSL安全访问,因此我主要关注的是提出一种适用于SSL证书的URL设计.以下是我提出的选项.在每个示例中,bob和jane是两个示例用户帐户:
例如
https://bob.example.com https://jane.example.com
这将需要通配符SSL证书(例如映射到*.example.com),以便每个用户可以通过SSL无缝访问其帐户.通过无缝,我的意思是没有Web浏览器警告用户有关SSL证书问题.我能想到的唯一缺点是通配符证书似乎比普通的固定域名证书贵得多.在宏伟的计划中,成本差异肯定是微不足道的,但如果所有其他证明是平等的话,这是我要记住的.
例如
https://bobs-domain.com https://domain-of-jane.com
在这种情况下,每个用户都有一个与其域名绑定的SSL证书.我能想到的一个重大缺点是我们的服务器必须维护所有用户证书的私钥,我们必须设计一个允许用户安全地将私钥传输到我们服务器的系统.即使我们有这样一个系统,我觉得用户必须获得证书然后将私钥提交给我们是一个太大的负担.
或者,我们可以在注册时为每个用户自动发布和配置SSL证书,这样他们就可以开始通过SSL访问他们的应用程序而无需其他步骤.这需要我们成为SSL证书的发行者,我还没有考虑过......我们可能会成为像Verisign这样专门研究这类事情的其他大公司的经销商.
尽管这种方法显然很痛苦,但这个选项确实启用了我们将来可能想要提供的一些功能,即允许用户通过他们自己的公司域名访问自己的应用程序品牌版本.
例如
https://example.com/bob https://example.com/jane
从SSL证书维护的角度来看,这可能是最好的选择.我们只需要一个固定域SSL证书(例如example.com),供所有用户使用.
遗憾的是,这种URL设计与我们当前应用程序架构的其他方面不兼容,尤其是在负载平衡方面.
我向你们提出的问题是:你会选择什么选择,为什么?我特别喜欢听到现实世界的例子和经历,但我还没有提出任何其他问题或疑虑.