【问题标题】:Azure AuthenticationAzure 身份验证
【发布时间】: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


【解决方案1】:

关于 WPF,您只有一种选择使用 Web 界面,因为 Azure 不支持 WPF。有关这方面的更多信息,请参阅here

您的 Web 应用程序将完全是 ASP.NET(如果您决定选择 MVC),因此您选择的任何安全模型都可以在 Windows Azure 上运行。 Windows Azure 没有规定或强制任何人选择 ASP.NET 安全模式。作为应用程序开发人员,您会做出此决定。

ACS 只是一项服务,为使用它的应用程序提供访问和身份验证服务,因此它没有内置提供程序,即使有,它与任何基于 OpenID 的身份验证服务有何不同?

您当然可以使用会员提供商或自己构建,这取决于您的选择。

取决于您在这里谈论的证书类型,有几个地方出于各种原因需要证书。在某些地方,它不是“选项”而是“必需品”,因此除非有关于您所指的证书类型的具体描述,否则没有什么可以共享的。

关于您问题的最后一行,您肯定可以使用 PKI 或基于凭据的方法保护基于 WCF 的通信,但是正如我之前所说,Azure 不支持 WPF,因此可能与上下文无关。是的,您确实可以使用成员资格提供程序来保护 WCF 和 ASP.NET 应用程序之间的通信。

最后我不确定我是否理解了您在第 1 行中描述的设计。而且您在一个问题中问了很多 :)

【讨论】:

  • 在界面上我的意思是用户界面。 WPF 将通过 WCF 与 Azure 进行通信。知道 ACS 没有内部身份提供商将帮助我集中问题。谢谢
  • 这个 WPF 应用程序将在哪里运行?内部部署?
  • WPF 客户端将在内部用于我们的数据管理员。我们的客户将通过万维网使用它。我们客户的客户通常使用 ASP.NET 用户界面,因为他们只是在使用数据。但我希望 WCF 服务和 ASP.NET 应用程序共享一个通用的身份验证和角色。
  • 你当然可以这样做。让 ASP.NET 在云端和 WPF 内部运行,而 ACS 则适用于两者(如果选择)。
  • 我更糊涂了。而且我认为对前提的回应是不正确的。没有本地服务器(在目标模型中)。将使用 Azure Compute、Azure SQL、Azure Blob 和 Azure Table(用于审计跟踪和 ?Membership)。希望 ASP.NET 和 WPF 通过 WCF 访问公共数据层、业务层和身份验证。
猜你喜欢
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-16
  • 1970-01-01
  • 2016-06-04
  • 2018-03-27
  • 2020-12-31
相关资源
最近更新 更多