通过Google或Twitter授权.net用户应用程序

时间:2016-04-19 16:28:59

标签: azure-api-apps

我的问题是[与此1类似,但是使用第三方提供商而不是活动目录。

我有一个最终用户UWP应用,我想要使用我的Azure API应用。我不是Azure移动应用程序,它是客户端SDK。

大多数文档都是“复制粘贴这个神奇的代码”,并且从未解释实际上如何进行身份验证。

我正在检查移动应用SDK,因为微软的文档说它是auth。过程是一样的。  从我看到的情况来看,移动App SDK打开一个非常类似于WebAuthenticationBroker生成的Web视图。然后,对服务器的每个请求都附有标题X-ZUMO-AUTH和令牌。看来此令牌是由azure应用服务发出的,而不是原始提供商。它比Twitter或谷歌发行的令牌长得多。 同时当我在终点指向Web浏览器并完成登录过程时,我看到浏览器正在使用Cookie:ARRAffinity = c4b66198677464de573103f7aa267c33ea38617020514011cea4506e0a55d9d0; AppServiceAuthSession = EIVymV

问题:

  1. 问题是它提供的移动应用文档 有关如何使用SDK的说明。我不清楚我会怎么做 获取应用服务发布的令牌。

  2. 每个人都知道如何获取Google的访问权限 和Twitter。它们可以用于访问Azure API应用程序吗?

1 个答案:

答案 0 :(得分:2)

您认为API应用程序使用与移动应用程序相同的内置身份验证是正确的。基本流程如下所示:

  1. 使用提供商凭据登录应用。这可以使用提供者SDK的客户端定向流程完成,也可以使用涉及浏览器弹出窗口的服务器定向流程(即您提到的Web视图)完成。在后一种情况下,/.auth/login/上有一个端点,由App Service提供并管理您应用的登录流程。
  2. App Service将使用会话令牌(JWT)响应您的客户端应用程序。
  3. 使用来自#2的会话令牌调用您的API。它通过 x-zumo-auth HTTP请求标头传递(由于遗留原因,它以这种方式命名)。
  4. 您看到的AppServiceAuthSession cookie是您使用浏览器进行身份验证时的会话cookie。 ARRAffinity是App Service使用的内部路由cookie,与auth无关。

    如果您正在寻找有关内置App Service身份验证/授权如何工作的更多内部技术详细信息,请查看我的博客,从此帖开始:http://cgillum.tech/2016/02/01/architecture-of-azure-app-service-authentication-authorization/