2014-09-19 78 views
3

我希望有人能够清楚这些事情如何一起工作。Azure移动服务和Asp.net身份架构

我想成为我自己的身份提供者,所以在我的web api中我有一个OAuth令牌提供程序。我希望用户向我注册,然后使用我的令牌提供程序进行身份验证。未来的想法是,我的更多移动应用程序和网络应用程序将可以使用共享用户身份的OAuth登录访问。

那么,如果我使用天蓝色的移动服务,我该如何实现正常的asp.net身份? 而且,普通网络应用程序如何能够使用存储在azure移动服务中的数据?我将有两个用于移动的dbcontext和一个用于web的吗?

我一直在阅读和观看很多天蓝色的东西,但似乎没有表明我能做到这一点。它大部分与使用Facebook,ms,twitter等外部提供商有关。我想成为这些外部提供商之一,只是不知道如何去做,并允许我的网站仍然使用.net身份数据。

如果您可以指向我或发布一些很棒的示例/教程/博客。

+0

你最终做了什么,我也在寻找解决方案 – 2016-01-02 15:57:48

+0

我最终使用了Thinkecture的身份服务器3并实现了我自己的自定义身份验证系统。基本上他们的服务器充当我的IdP,并且我建立了自己的天蓝色后端来验证他们的认证令牌并获取信息并将其转换为一个zumo认证令牌。这个链接是他们github上的一个主题,它解释了我所做的一些事情,并链接到了执行zumo端和其他部分的代码要点。 https://github.com/IdentityServer/IdentityServer3/issues/434 – jmichas 2016-01-08 02:13:01

+0

我应该补充一点,我试图创建一个katana中间件,但它从来没有像我想的那样工作,我也决定我希望我的解决方案提供一种方法来提供native移动设备上的视图,而不是“在那里阻止webview登录页面”的方法 – jmichas 2016-01-08 02:15:28

回答

1

这是一个受支持的场景,虽然目前没有很好的记录。

Mobile Services .NET运行时构建于ASP.NET Katana authentication middleware上。移动服务使用LoginProvider基类来抽象这些中间件。最近,身份验证模型已针对您的情况进行了扩展。为了让移动服务识别并使用您的身份提供商,您必须创建您自己的LoginProvider。

目前的这两个例子:

  1. 添加卡塔纳中间件身份提供商 - 的this post一部分。
  2. 创建自定义用户名/密码设置 - 教程here

您当然可以使用这些技术来包装标准的ASP.NET身份功能。

至于你关于访问数据的问题,有很多种方法。您的网络应用程序可以将移动服务视为后端并通过请求。这基本上是将Web应用程序视为额外的客户端平台,与您的移动应用程序同行。如您所说,另一种选择是创建多个DBContext。虽然您可能会获得稍微更好的性能,但它具有代码可维护性折衷。如果您在同一个数据后端上构建多个Web应用程序,它也不会很好地扩展。