根据您的代码,您正在将Client-managed authentication用于Azure移动应用程序。对于App Service身份验证/授权(例如移动客户端类型),将向客户端发送JSON Web令牌(JWT),并在向移动后端发送请求时将其显示在x-zumo-auth
标头中。有关更多详细信息,请参阅How authentication works in App Service。下面是使用与移动应用Azure的流量管理器时,智威汤逊的道理,我们可以使用jwt.io令牌解码:
对于JWT令牌,它将使用WEBSITE_AUTH_SIGNING_KEY
环境变量签署audience
,issuer
, Claims
。有关更多详细信息,请参阅here关于如何为您的应用程序使用自定义身份验证。
每个移动应用有不同的WEBSITE_AUTH_SIGNING_KEY
,你可以使用kudu并单击环境找到它。此外,我试图更新我的两个移动应用程序以使用相同的标志密钥,但因未获得许可而失败。
你LoginAsync
将发送以下请求:
POST https://<yourname>.trafficmanager.net/.auth/login/facebook
Body {"access_token":"<access_token_from_facebook>"}
你可以使用fiddler捕获网络跟踪。
Azure流量管理器可以与移动应用程序一起使用,专门用于社交登录吗?
对于自定义验证,您可以在web.config文件中配置符号密钥。对于社交登录并使用azure提供的身份验证,您不能在不同的移动应用程序之间共享标志密钥。此外,如果您将Routing method
设置为Geographic
,并且您的移动应用处于不同的地理位置,则我认为您的方案可能按预期工作。
UPDATE1:
一些试验后,我发现你能具体行动应用程式的“设置>应用程序设置”刀锋下WEBSITE_AUTH_SIGNING_KEY
设置覆盖WEBSITE_AUTH_SIGNING_KEY
环境变量,如下所示:
注意:签名密钥需要是SHA-256哈希字符串,您可以在两个移动应用程序之间同步密钥或生成您的密钥r自定义键。配置设置后,您可以利用kudu检查最新的WEBSITE_AUTH_SIGNING_KEY
。
UPDATE2:
我的问题是搞清楚如何使用社交权威性与在重定向按流量管理器的性能
基础作为官员发生两个不同的移动应用documentation提到有关交通路由方法性能如下:
性能:如果端点位于不同地理位置,并且希望最终用户使用“最近”端点的最低网络延迟,请选择性能。
我做了一些测试,你可以参考它。这是在我的流量管理器配置文件中的端点:
注:我的两个移动应用程序都配置了相同的Client Id
我MSA认证,并在“设置>应用程序设置”设置相同WEBSITE_AUTH_SIGNING_KEY
值编码/解码令牌。
对于我/api/values
API终点,我只返回WEBSITE_HOSTNAME
环境变量,如下所示:
return Request.CreateResponse(new { WEBSITE_HOSTNAME =Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME") });
对于性能路由的方法,我的所有请求将被路由到bruce-mobile02.azurewebsites.net
:
对于加权路由方法,我配置为我的两个端点提供相同的重量。
感谢您的答复:根据我的测试,如下用相同
AuthenticationToken
附着作为授权x-zumo-auth
头值的请求将被路由到我的两个端点。我确实了解身份验证如何在Azure移动应用程序中发挥作用,但它更加清晰。我也明白,如果转移到其中一个移动应用程序的限制是地理上的,它将起作用,因为那时来自一个位置的一个用户将总是到达一个始终具有他/她的身份的服务器。但在我们的案例中,我们试图将性能作为衡量指标。 – Nitish我用一些研究更新了我的答案,你可以参考它。 –
再次感谢布鲁斯。我理解你在说什么,但正如我所说的,我的问题是如何使用社交身份验证与两个不同的移动应用程序,其中流量管理器的重定向是基于性能进行的,并且在做了一些研究之后,似乎还不可能除非我使用B2C构建完整的自定义身份验证,而不依赖于Azure的开箱即用社交身份验证。 – Nitish