将 Azure 流量管理器与移动应用程序结合使用

2023-11-29

Azure 流量管理器可以与移动应用程序一起使用,特别是通过社交登录吗?我已经配置了一个流量管理器和两个应用程序服务(例如 mobileapp1 和 mobileapp2)来使用它。它们似乎与邮递员和响应配合得很好,一切都正常。现在,我已在 xamarin 客户端应用程序中将流量管理器的 URL 声明为客户端,并且当我登录到 azure 时该应用程序会引发异常。登录 facebook 后,当我使用此行将令牌传递到服务器时

var user = await client.LoginAsync(MobileServiceAuthenticationProvider.Facebook, token);

它在这一行抛出异常,指出操作无效。

继续这个疑问..我有两个移动应用程序与一个流量管理器连接。他们俩都配置了 Facebook 登录。那么,它应该有效吗?如果当用户注册时,他/她被重定向到 mobileapp1 并在那里完成 azure 身份验证,而在后续的一些尝试中,用户被重定向到 mobileapp2,会发生什么情况。 mobileapp2的身份数据库是否了解用户?这是我使用移动应用程序附带的身份验证服务而不是 B2C 时的情况。


根据您的代码,您正在使用客户端管理的身份验证与 Azure 移动应用程序。对于应用程序服务身份验证/授权,例如移动客户端类型,将向客户端颁发 JSON Web 令牌 (JWT),并将其显示在x-zumo-auth向移动后端发送请求时的标头。想要了解更多详情,您可以参考身份验证在应用服务中的工作原理。这是将 Azure 流量管理器与移动应用程序一起使用时的 JWT 令牌,我们可以使用jwt.io解码令牌:

enter image description here

对于 JWT 令牌,它将使用WEBSITE_AUTH_SIGNING_KEY要签名的环境变量audience, issuer, Claims。想要了解更多详情,您可以参考here有关如何为您的应用程序使用自定义身份验证的信息。

每个移动应用程序都有不同的WEBSITE_AUTH_SIGNING_KEY,你可以使用kudu然后单击环境找到它。此外,我尝试更新我的两个移动应用程序以使用相同的签名密钥,但由于没有权限而失败。

Your LoginAsync将发送以下请求:

POST https://<yourname>.trafficmanager.net/.auth/login/facebook
Body {"access_token":"<access_token_from_facebook>"} 

你可以使用fiddler捕获网络跟踪。

Azure 流量管理器可以与移动应用程序一起使用,特别是通过社交登录吗?

对于自定义身份验证,您可以在 web.config 文件中配置签名密钥。对于社交登录并使用azure提供的身份验证,您无法在不同的移动应用程序之间共享签名密钥。此外,如果你设置Routing method to Geographic并且您的移动应用程序位于不同的地理位置,我假设您的场景可能会按预期工作。

UPDATE1:

经过一番试验,我发现你可以具体说明WEBSITE_AUTH_SIGNING_KEY在移动应用程序的“设置 > 应用程序设置”边栏选项卡下进行设置以覆盖WEBSITE_AUTH_SIGNING_KEY环境变量如下:

enter image description here

Note:签名密钥需要是 SHA-256 哈希字符串,您可以在两个移动应用程序之间同步密钥或生成自定义密钥。配置完成后,您可以利用 kudu 查看最新的WEBSITE_AUTH_SIGNING_KEY.

UPDATE2:

我的问题是弄清楚如何在两个不同的移动应用程序中使用社交身份验证,其中流量管理器根据性能进行重定向

作为官方文档提到流量路由方法表现如下:

表现:当您的端点位于不同的地理位置并且您希望最终用户使用网络延迟最低的“最近”端点时,请选择“性能”。

我做了一些测试,你可以参考一下。这是我的流量管理器配置文件下的端点:

enter image description here

Note:我的两个移动应用程序配置相同Client Id对于我的 MSA 身份验证并设置相同的WEBSITE_AUTH_SIGNING_KEY“设置 > 应用程序设置”下的值,用于对令牌进行编码/解码。

For my /api/valuesAPI端点,我只是返回WEBSITE_HOSTNAME环境变量如下:

return Request.CreateResponse(new { WEBSITE_HOSTNAME =Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME") });

For the 表现路由方法,我所有的请求都会被路由到bruce-mobile02.azurewebsites.net:

enter image description here

For the Weighted路由方法,我为两个端点配置了相同的权重。根据我的测试,具有相同的请求AuthenticationToken附加为x-zumo-auth授权的标头值将路由到我的两个端点,如下所示:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Azure 流量管理器与移动应用程序结合使用 的相关文章

  • 如何使用渲染器更改 Android 选项卡的背景颜色,同时使用自定义渲染器添加一些填充

    在我的应用程序中 我设置底部标签栏背景颜色 如下所示
  • 在 Xamarin.Forms 中编写设备平台特定的代码

    我有以下内容Xamarin Forms ContentPage类结构 public class MyPage ContentPage public MyPage do work to initialize MyPage public voi
  • Xamarin 表单从可绑定属性更新视图模型字段

    我觉得我错过了一些非常明显的东西 我有一个自定义控件 它有一个视图模型 其中包含一堆字段 但此示例中最重要的是文本值 我可以使用自定义控件 XAML 中的以下内容非常轻松地绑定到它
  • ITMS-90909:Xamarin Forms 应用程序中不推荐使用 iOS 的 API

    任何人都可以建议如何处理我将 Xamarin Forms 应用程序提交到 iOS 商店时收到的这条消息吗 对可能的重复进行评论 这个问题之前曾被问过 但没有得到解答 我认为不存在已答复的重复项 这是一个已知问题 最近由 Xamarin 团队
  • Xamarin 不尊重 JDK 位置 (VS2015)

    我无法在 Visual studio 2015 中构建 Xamarin 应用程序 因为 Xamarin 忽略配置的 JDK 位置 我将 Xamarin 配置为使用 JDK 1 8 但构建仍然失败 因为它使用的是我从计算机中删除的旧 JDK
  • 如何在 Xamarin.Forms 中设置不透明度动画

    我想知道如何对屏幕上可见元素的不透明度进行动画处理 例如 对于 Entry 我得到了这个 this Animate d gt Debug WriteLine anim d Username Opacity AnimationTime d A
  • 无法为 Android 源代码创建 Xamarin 组件

    我已经使用了命令 xamarin component exe package C cmp AndroidComponent component 用于创建 Xamarin 组件 在构建示例 android 项目时 它显示以下错误 我已使用命令
  • 减少 Xamarin.Forms 中的 APK 大小,APK 大小 80MB

    无法将 xamarin apk 大小减少到 80 MB 以下 执行以下操作 启用混淆器 配置 发布 平台 活动 任何 CPU 启用 Multi Dex true 启用开发人员检测 调试和分析 false 链接 SDK 和用户程序集 也仅尝试
  • 设置背景时按钮变大 - 如何使其变小

    我想让我的按钮在设置背景之前缩小或恢复正常 我知道使用背景色调可以使用相同的背景颜色来解决此问题 但我的问题是我在背景上使用选择器 当选择器设置为按钮背景时 它变得更宽 当我将背景切换为背景色调时 颜色变得不同 例如对我来说是紫色 并且按下
  • 在 Xamarin Studio for Mac 上添加 NuGet 包不起作用

    我已经尝试搜索这个问题 并且我遇到了许多人们无法添加 NuGet 包的问题 但没有发现任何可以解决我的问题的方法 我正在使用 Xamarin Studio for Mac 并尝试将 SQLite 包添加到我的 Xamarin Forms 项
  • 在 Monogame 和 UIKit 之间切换

    我一直在搜索和搜索 但似乎找不到适合我想做的事情的解决方案 而且我几乎已经到了不得不问它是否可能的地步 我正在使用 Xamarin Studio 开发 iOS 应用程序 我有几个不同的屏幕设置为 UIViewController 它们运行良
  • xamarin 谷歌地图不工作

    我使用以下链接创建了地图http developer xamarin com guides android platform features maps and location maps part 2 maps api http deve
  • Xamarin 中 QR 扫描后的处理对话框

    我在Xamarin应用程序中使用QR码扫描仪 当它扫描QR码时 它会执行一些操作 大约需要一分钟 而在执行操作时 我想在屏幕上显示一个加载对话框 但是 它没有显示在屏幕上 并且在应用程序的其他地方 它运行得很好 Code var expec
  • 无法在 UWP 中调试 .NET Standard 2.0 DLL

    我创建了一个新的 Xamarin Forms 解决方案 升级了所有 NuGet 确保 UWP 版本的目标版本为 16299 并确保 NET Standard 项目的目标版本为 2 0 我运行了该项目并能够很好地调试 NET Standard
  • 编辑和导入故事板更改从 Xcode 到 Visual Studio

    我正在将代码从 Xamarin Studio Mac 移动到 Visual Studio 我可以从 Xamarin Studio 在 Xcode 中打开故事板文件 如果我在 Xcode 中进行更改 关闭它 然后在 Xamarin Studi
  • Xamarin 无法从异步获取实例

    我编写了一个通过蓝牙连接到 ESP32 的 Xamarin Forms 应用程序 现在我想从 MainPage xaml 页面的 CustomControl JoystickControl 获取值 我已经这样尝试过了 MainPage xa
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • 未选择为此解决方案配置构建项目

    错误 gt Skipped Deploy Project DrawShape Android Configuration Debug Any CPU gt Project not selected to build for this sol
  • 如何在 Visual Studio for Mac 上开发 Windows 应用程序

    我最近购买了一台iMac 以便在更好的环境中在Visual Studio for Mac上开发我的应用程序 Windows上有很多问题 但是在Visual Studio for mac上 没有UWP项目 据了解 我必须创建一个新的 NET
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba

随机推荐

  • 如何在pyglet中连续播放音乐

    我和我的朋友正在开发一款游戏 我们希望音乐在游戏运 行时循环播放 求助 好像没有重复播放音乐的功能 在当前版本的 pyglet 中 您应该使用SourceGroup 设置loop归因于True 然后您可以将其排队到Player播放它 snd
  • javascript倒计时器暂停恢复

    起初 我的倒计时器没有暂停和恢复功能 并且计时器运行得很好 现在我刚刚添加了该功能 暂停没有问题 但恢复时间有问题 时间不会从当前位置开始显示 也不会从那里开始倒计时 如何更改我的代码 pause click function Get cu
  • Android 浮动操作按钮未返回到初始位置

    如果 FAB 浮动操作按钮 在小吃栏出现之前隐藏 在 CoordinatorLayout 中 那么下次我显示 FAB 时 它会在旧位置绘制 不会向下移动到原始位置 如果当小吃栏消失时 FAB 可见 则一切都按预期工作 我错过了什么还是一个错
  • “Set-AzureRmDataFactoryV2”未被识别为 cmdlet 的名称

    我已经在 Ubuntu 16 04 上安装了 Powershell 6 0 0 尝试使用 Powershell 创建 Azure 数据工厂时出现以下错误 Set AzureRmDataFactoryV2 The term Set Azure
  • 获取mp3文件长度

    我目前正在尝试用 C 编写一个音频播放器 我正在使用 BASS 库来处理播放音乐 但现在我在获取歌曲长度方面遇到了小问题 好吧 我读过 BASS 文档并找到了一种方法 我需要做的 所有 就是 int stream Bass BASS Str
  • 使用 Containable 对关联模型 (HABTM) 上的条件过滤的结果进行分页

    我需要对列表进行分页Products 属于特定Category HABTM 协会 In my Product我有的型号 var actsAs array Containable var hasAndBelongsToMany array C
  • 如何在cmake中链接所有LLVM库?

    我想链接我的 cmake C 项目中的所有 LLVM 库 I use llvm config components为了获得 LLVM 的所有组件 它给了我 llvm config components aarch64 aarch64asmp
  • 使用 Greasemonkey 将日期选择器添加到文本框

    有一个需要日期但没有日期选择器的文本框 我想用 Greasemonkey 添加一个 我寻找一个例子 但找不到 这可能吗 有这样做的例子吗 它不需要很花哨 我喜欢用jQuery UI 的 datepicker 因为我通常都会加载 jQuery
  • 为什么 git 会在每个命令名称前添加“git-”?

    如果我需要帮助git status命令 我可以输入git help status 并返回一个帮助页面 显示名称为 git status But git status 不是命令 命令是git status有一个空格 而不是连字符 如果我输入g
  • 来自 Qt 中 main.cpp 代码的 MainWindow

    想要了解之间的代码差异MainWindow和main cpp 具体来说 如何专门编写一段代码main cpp需要修改为的一部分mainwindow cpp and mainwindow h 作为一个例子 我试图修改这个罚款的代码answer
  • 函数返回后不更改指针

    语言是 Go Golang 功能initApp正在接收一个指向对象的指针 Go 中的 struct 在函数内部 我创建一个新的对象指针并初始化该对象的值 打印和调试器都显示在函数返回之前一切都很好 但在返回之后 作为函数参数的指针具有与函数
  • 如何从命令行重建并运行 android 项目

    我想创建与 android studio 通过命令行在后台运行的相同进程 like first clean project gt build project gt Run Project all through command line 可
  • PLC 中的定时器 - 结构化文本

    PLC 结构化文本 ST 中的计时器如何工作 我们如何声明它们 我一直在研究PLC的标准 IEC 61131 3 他们没有谈到ST中的定时器 我知道绝大多数 PLC 程序员都是用梯形图逻辑来完成这些任务 但在这种特殊情况下 我确实需要在 S
  • ActionBar 选项卡标题中的自定义字体

    我正在尝试在我的上设置自定义字体ActionBar选项卡的标题 我看到更多的开发人员要求以正确的方式在 SO 上执行此操作 例如如何自定义操作栏选项卡的字体 如何 如果可能 在选项卡文本的 ActionBar 中使用资产文件夹中的字体设置自
  • ValueError:应在输入列表上调用合并层。张量流 Keras

    我目前正在尝试使用 MobileNetV2 的前 50 层 因此 我想提取这些层并创建一个新模型 我以为我可以调用每一层 但是 block 2 add 层会导致错误 我不明白为什么 import tensorflow as tf from
  • 使用服务器进行表单验证

    我有一个表单 我想通过检查电子邮件是否存在来执行 http 验证 但它返回错误 这是我的表格 在表单组件上 constructor private formBuilder FormBuilder private validationServ
  • 如何隐藏jSlider的旋钮?

    我需要自定义JSlider的旋钮 我需要将我自己的旋钮图像放在 Jslider 的默认旋钮上 问题是目前有两个旋钮做出响应 一个是我自己的旋钮 第二个是默认旋钮 请告诉我如何隐藏默认旋钮或任何其他解决方案 下面的代码用于执行此操作 publ
  • 反向地理编码在某些 Android 设备上不起作用?

    我正在开发一个地图应用程序 无法在该手机中获取地址 其android版本是4 3 如下所示 但它在我的手机上运行良好 其版本是4 1 2 如下所示 它在某些棒棒糖版本中运行良好 final Geocoder gc new Geocoder
  • K8s:如何通过服务访问我的应用程序?

    我正在学习 K8s 并在 OSX 上安装了 minikube 我正在阅读 Nigel Poulton 的 K8s 书 并在第 5 章 部署 中进行实验 我有这样的部署 k8s cat deploy yaml apiVersion apps
  • 将 Azure 流量管理器与移动应用程序结合使用

    Azure 流量管理器可以与移动应用程序一起使用 特别是通过社交登录吗 我已经配置了一个流量管理器和两个应用程序服务 例如 mobileapp1 和 mobileapp2 来使用它 它们似乎与邮递员和响应配合得很好 一切都正常 现在 我已在