在应用程序中使用 Microsoft Account

  • Jonathan Allen
  • 滕云

2012 年 11 月 5 日

话题:架构

Windows 8 的一个中心主题便是微软账户(Microsoft Account)。这是向用户提供单点登陆的又一次尝试,该功能不仅适用于微软的服务,还可以用于第三方服务。在此之前,微软还有过很多这样的尝试,比如 Microsoft Wallet、Microsoft Passport、.NET Passport、Microsoft Passport Network 和 Windows Live ID。这些产品之间的关系是混乱的,品牌众多不说,技术也一直在改变,但是他们却有着一个相同的目标:留住那些不想新建用户名和密码的潜在客户。

一个 Windows 8 应用程序在启动时会请求认证令牌和访问令牌。认证令牌用来核实用户账户,而访问令牌则用于获取用户信息。通过微软账户,用户还可以自动登录那些实现了微软账户 SDK 的网站。

对于那些已经拥有认证系统的网站来说,微软账户仍然是有益的。由于此时不存在个人信息,微软账户提供了一个用户 ID。通过跟踪这个用户 ID,当用户正式登陆时,网站可以更方便地为用户进行个性化设置。

对于高级情形,可以使用Live SDK 来获取用户的 SkyDrive 和社交网络的账户信息。此时的访问控制可以通过 OAuth 2.0 或者 Live Connect REST API 实现。通过在 Windows 8、Windows Phone、Android、iOS 和.NET 上使用客户端 SDK,这个过程将更加简单。和其他基于 OAuth 的服务一样,用户需要显式地为应用开启权限以访问微软数据。

OAuth 系统的另一个常用的功能特点是,需要提供一个只有该应用才知道的“秘密”。这主要用于解密来自微软服务器的信息。移动开发者倾向于将此放在应用程序中,但这是非常危险的。相反,这些数据应该存放在服务器上以供应用程序访问。 微软账户并没有和其他单点登陆系统整合,比如 Windows Active Directory 或者 Facebook Connect。

更多关于微软账户的信息,请观看 Shelly Guo 的 Powering your apps with Microsoft Accounts 。

原文链接http://www.infoq.com/news/2012/11/Microsoft-Accounts


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

架构