Windows 8上带有Microsoft帐户的Azure ACS 2.0

时间:2012-09-19 12:24:36

标签: wcf azure windows-8 acs

我正在使用SSL保护我的Windows 8到Windows Azure托管的WCF服务连接。我有兴趣验证用户是使用我的Windows 8应用程序,而不仅仅是使用Fiddler的一些“黑客”。

我显然无法在c#代码中存储用户名和密码,在这种情况下,我真的想避免在每次使用应用程序时(或者就此而言)要求用户输入用户名和密码。

我已经查看了Azure ACS,但它看起来只适用于单点登录,用户每次都必须输入用户名和密码。

无论如何:

  • 使用默认的Microsoft帐户(大多数用户在设置Windows 8时都会输入)和ACS?
  • 加密并存储用户的登录详细信息,以防止用户每次都必须输入登录详细信息?

谢谢!

1 个答案:

答案 0 :(得分:2)

关于您的要求“我有兴趣验证用户是否正在使用我的Windows 8应用程序,而不仅仅是使用Fiddler的某些'黑客'。”,我不确定您尝试保护应用程序有多深,就像其他人想要的那样为了尝试以不同的方式使用您的应用程序,将会找到他们的方式,如果您认为使用ACS或LiveSDK添加任何安全性,我不这么认为。

ACS或LiveSDK服务是对特定用户进行身份验证然后允许他们使用您的应用程序的方法。一旦为您的应用程序提供有关特定用户的身份验证令牌,并且您无法保存并再次验证该信息,则在您的应用程序中使用基于ACS / LiveSDK的身份验证或不使用它之间没有区别。这些基于oAuth的服务只是一种对用户进行身份验证的方法,您仍然需要编写额外的代码层来提供用户特定的服务。

如果您使用ACS / oAuth /或您自己的会员服务并不重要,则用户必须输入用户名和密码才能获得经过身份验证的时间。根据登录时间和类型,您可以将用户保持活动x段时间作为实时会话,但会话将过期,用户必须输入用户名和密码。在本地存储用户名和密码以避免再次输入凭证不是一个好的应用程序设计。

现在关于您的第一个问题,您应该使用LiveSDK(不是Azure ACS)来验证Live(Hotmail,Live,Skydrive和Outlook域)用户,因为在Windows 8中,大多数服务都使用这些ID,因此使用其中一个将帮助您的应用程序成为同一生态系统的一部分。您可以使用this latest doc在应用程序中使用Live SDK。如果您将在Windows 8应用程序中使用Live SDK,并且用户在Windows 8上为其他应用程序使用相同的实时ID并在应用程序之前登录,则您的应用程序将具有使用它的实时会话,具体取决于Live ID和应用程序设置。

关于您的第二个问题“加密并存储用户的登录详细信息以防止用户每次都必须输入登录详细信息?”我不确定你为什么需要它。首先,没有oAuth服务将为您提供除用户名之外的用户登录凭据,您可以保存该凭据以验证用户是否再次访问并且您可以使用以确保它是正确的用户。您必须将此信息存储到云中,然后一旦经过身份验证,就可以执行任何操作。