【发布时间】:2012-06-06 01:28:43
【问题描述】:
目前有一个我计划转换为 Azure 的 ASP.NET Web 应用程序。每个客户一个应用程序,具有一个 SQL 数据库和成员服务,用于身份验证和授权。拥有用户管理员角色和客户可以管理自己的用户 ID 和密码的页面。
在升级到 Azure 时,我计划同时提供 Web 客户端和 WPF 客户端。 WPF 客户端将通过 WCF 连接到 Web 服务。
什么是合适的安全模型?
不确定 ACS 是否是正确的工具。应用程序必须直接提供带有角色的用户 ID 和密码身份验证并管理该数据。客户管理员角色必须能够重置密码,因此外部身份提供者不适合。在 ASP.NET 级别的会员服务正是我所需要的。我想通过 WCF 将该模型扩展到 WPF 客户端。
客户非常健谈。今天有一个 WPF 客户端版本,它直接连接到 SQL 以供有限数量的“受信任”大批量客户使用。需要摆脱这种模式并进入大容量服务模式。
苦苦思索如何跨 ASP.NET 和 WPF/WCF 进行通用身份验证和授权。我认为 WPF 到 WCF 的通道级别身份验证是正确的方法,因此我不会对每个方法调用进行身份验证。
看起来WCF Authentication Service 是一个工具来做我正在寻找的东西。我没有在 Azure 中找到这样做的具体示例。我怀疑该功能在 Azure 中,但术语可能略有不同。 Deploy 希望这就是说 - 它部署在 Azure 上。
在我获得您尝试过的内容之前,您可以免费获得试用版。需要获得许可才能评估新技术。我可能要做的是在家中打开 Azure 试用版。
我将尝试使用 TableStorage 作为 Azure Membership。然后将 WCF Web 服务与 WS 和 userName 凭据一起使用。会回来报告的。
【问题讨论】:
-
“应用程序必须直接提供带有角色的用户名和密码身份验证”是什么意思?您的意思是这是 ACS 的要求并且您认为这是不可接受的,还是您的意思是您希望您的客户端应用程序直接参与处理用户名和密码以及角色?
-
不是 ACS 的要求。这是我的应用程序的要求。想知道我是否应该使用 ACS,而我认为我正在学习的是不。
-
执行密码重置并不一定意味着您必须拥有密码数据库。这只是意味着您需要在您的应用程序和您的身份提供者之间建立良好的联盟。
-
@dthorpe 明白。好的,我可以使用 ACS,但我应该使用吗?会员资格给了我在 ASP.NET 下所需的一切。理想情况下,我可以通过 WCF 将该模型扩展到 WPF 客户端。
标签: c# wpf wcf authentication azure