W8.1和WP8.1中的Azure移动服务SSO

时间:2014-04-10 00:18:35

标签: windows-phone-8 single-sign-on windows-8.1 azure-mobile-services

我想要什么

我想允许在Live Connect SDK和我将用作2个应用程序的后端的单个移动服务实例之间的应用程序SSO,WP8& W8.1。我想这样做而不会影响已存在于Windows Phone Store中的WP8应用程序的现有用户。这两个应用都将使用Live SDK进行OneDrive访问。

现有情况

我有一个使用Azure移动服务和Live Connect SDK的Windows Phone 8应用程序,我已经通过

设置了SSO
  • 在Live Connect开发人员中心注册应用
  • 将开发人员中心的重定向网址设置为移动服务网址(在Live Connect身份验证令牌中使用)
  • 将客户端ID复制到我的应用中,并在我登录时将其传递给Live Connect SDK方法
  • 登录后检索Live Connect身份验证令牌并将其传递给移动服务登录

问题

这很好,但现在我想开始构建一个使用相同移动服务实例和SSO的配套Windows 8.1应用程序,但我遇到了以下困难:

  • 与Windows 8.1应用程序关联的Live Connect开发人员中心应用程序需要具有程序包SID,我能找到的唯一方法是使用“将我的应用程序与Windows应用商店关联”。 Visual Studio中的工具。这将在Live Connect开发人员中心中使用Windows 8.1程序包SID创建一个新应用程序。我无法找到任何方法将此软件包SID添加到我现有的Live Connect应用程序(即用于WP8应用程序的应用程序)。
  • 我认为我需要为我的WP8和W8.1应用程序使用单个共享的Live Connect开发人员中心应用程序和相关的客户端ID,因为来自Live Connect(documentation here)的身份验证令牌似乎包括'用户标识符 - uid'这是用户的标识符,是应用程序的唯一标识'。对我而言,这也意味着如果我更改客户端ID(即从Live Connect的角度来看实际上是一个新的应用程序)那么移动服务似乎就像新用户正在登录并且所有旧数据都将他们再也无法进入。

我研究了其他人在两个平台上进行SSO,他们似乎在Live Connect开发人员中心使用了一个应用程序,但在目前为止我见过的所有情况下他们都使用Windows 8.1应用程序,因为它有包SID,并将其设置为移动或桌面客户端应用程序'。我已经从手机应用程序的另一个方向开始,我无法找到有关此信息的任何信息。我还试图避免在实时应用中测试这一切,以防它确实导致问题。

我已在Mobile Services和Live Connect论坛上发布了有关这些问题但没有回复的问题。 (我只能提供2个链接,请在移动服务论坛查看我的个人资料中的个人资料)。

我的问题

如何在不破坏现有WP8应用程序的情况下,将Azure Mobile Services SSO添加到我的新Window 8.1应用程序中?

感谢。

2 个答案:

答案 0 :(得分:0)

看起来这个问题可能已经在这里讨论了:

Live Connect Authentication Token for use on Azure Mobile Services (REST)

希望有所帮助!

答案 1 :(得分:0)

Matthew Henderson在Azure Mobile Services forum

中回答了这个问题

简化版本是您需要在开发人员中心使用一个Live Connect应用程序(即W8.1和WP8应用程序使用的相同客户端ID)

要做到这一点,您需要:

a)从Windows 8.1应用程序开始,该应用程序将使用Live Connect应用程序注册SID(这是记录且最简单的路径),然后在Windows Phone 8应用程序中重新使用此客户端ID

OR

b)如果您已经拥有Windows Phone 8应用程序,则可以在Live Connect开发人员中心更改自动创建的SID关联,以允许Windows 8.1应用程序使用现有的Windows Phone 8客户端ID。这是一个记录较少的功能。