问题描述

移动端集成MASL登录过程中,配置文件中配置项“authorization_user_agent”使用“DEFAULT”可以正常登录,但是改为“WEBVIEW”后就无法登陆,一直处于Loading状态。

参考的示例文档:

  1. https://docs.microsoft.com/zh-cn/azure/active-directory/develop/tutorial-v2-android
  2. https://docs.microsoft.com/zh-cn/azure/active-directory/develop/msal-configuration?source=recommendations

问题解答

按照 MSAL Configuration 文档对 authorization_user_agent 的描述, default和webview的区别是webview使用嵌入式的 Web 弹出框访问AAD. Default将采用系统默认的浏览器访问AAD。

如果使用 BROWSER 和DEFAULT 都没有问题,那么就是因为使用WEBVIEW,需要 AAD Application使用 Brokered Authentication。 详细说明见:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-android-single-sign-on#sso-through-system-browser

这需要实现:
1. 设备需要安装 Microsoft Authenticator 或者 Intune Company Portal. 并且完成设备在 Microsoft Authenticator 或者 Intune中的注册。
2. MSAL 配置中设置"broker_redirect_uri_registered": true

附录:

1)安装Company Portal App,并且使用分配好license的AAD用户enroll android设备到AAD. https://docs.microsoft.com/en-us/mem/intune/user-help/enroll-device-android-company-portal

2)安装 Microsoft Authenticator应用 https://support.microsoft.com/zh-cn/account-billing/%E4%B8%AD%E5%9B%BD%E5%85%AC%E6%9C%89%E4%BA%91%E4%B8%AD%E9%80%82%E7%94%A8%E4%BA%8E-android-%E7%9A%84authenticator-ebbef05c-a429-4236-8570-1bb1900fec35

3) 设置使用移动应用(Android)发送通知 https://docs.azure.cn/zh-cn/active-directory/authentication/howto-mfa-mfasettings

请注意,设置扫描QR码的时候,由于国内手机用户不能使用 Google App store的限制, 需要点击Configure app without notification。

4)  WEBVIEW和broken authentication在Android设备上的具体要求 https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-android-single-sign-on#sso-through-system-browser

5) 使用的是系统默认浏览器。华为P30,华为Pad,小米手机所使用的System Browser没有包含在MSAL的缺省Browser Safelist里,无法登录访问AAD

PS: 目前缺省的华为浏览器(com.huawei.browser)不在MSAL default browser safelist里。可以在Github提交问题,看能否添加华为浏览器到 MSAL default browser safelist里。

[END]

【Azure 环境】移动应用 SSO 登录AAD, MSAL的配置为Webview模式时登录页面无法加载的更多相关文章

  1. 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)

    问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...

  2. php登录注册页面及加载

                           php注册界面                               <h1>注册页面</h1> <form acti ...

  3. php做登录注册页面及加载

    //SQL注入攻击 //1.过滤用户的输入 //2.使用预处理语句 //3.写代码的时候尽量避免 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  4. Exploit Kit——hacker入侵web,某iframe中将加载RIG EK登录页面,最终下载并执行Monero矿工

    RIG Exploit Kit使用PROPagate注入技术传播Monero Miner from:https://www.4hou.com/technology/12310.html 导语:Fire ...

  5. Andriod中WebView加载登录界面获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息。

    Android使用WebView加载登录的html界面,则通过登录成功获取Cookie并同步,可以是下一次不用登录也可以查看到个人信息,注:如果初始化加载登录,可通过缓存Cookie信息来验证是否要加 ...

  6. SpringBoot在启动时的多环境配置以及加载顺序

    通常我们在开发完成一个SpringBoot项目时,总是要打包部署的. 在启动SpringBoot应用时,我们常常会使用命令java -jar xxx.jar来启动这个服务. 命令java -jar 除 ...

  7. ant design pro解决初始加载,有顺序的请求/请求顺序报错问题/登录后再加载其他数据/异步的顺序问题/偷跑

    方法是:如在Authorized.jsx中解决,当未登录成功(包括登录失败和登录验证中),就显示loading,否则继续 加载渲染children 一个三目运算或者if分支就可以解决,但是要写到最先加 ...

  8. 【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误

    问题描述 通过PowerShell 连接到Microsoft Graph 中国区Azure,一直出现AADSTS700016错误, 消息显示 the specific application was ...

  9. 【Azure 环境】由为存储账号(Storage Account)拒绝分配权限而引出的Azure 蓝图(Blueprint)使用问题

    问题描述 当打开Azure存储账号(Storage Account)门户页面时,从 "访问控制(标识和访问管理)" 页面中发现有"拒绝分配"的功能,所以就思考, ...

  10. ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session

    Session 嘛,占一点儿服务器资源,但是总归比 ViewState 和 Cookie 安全点儿,所以还是要用的. Windows Azure 环境中的 Web 服务器经由负载均衡调度,根本无法保证 ...

随机推荐

  1. Skia 编译及踩坑实践

    本文要点 •了解并入门 Skia.OpenGL 和 Vulkan •了解 Skia 在后端渲染上的坑点 前言 Skia 是什么 Skia 是一个开源 2D 图形库,提供可跨各种硬件和软件平台工作的通用 ...

  2. Qt中qreal的坑

    今天在写Qt的时候遇到了一个bug:同样一个方程在PC机上算的结果是11,但在arm-Linux设备上算出来的结果是12,我自己用计算器按出来的结果也是12. 该段程序是这样的: maxnumbar ...

  3. ClickHouse(14)ClickHouse合并树MergeTree家族表引擎之VersionedCollapsingMergeTree详细解析

    目录 建表语法 使用场景 合并算法 使用例子. 资料分享 参考文章 VersionedCollapsingMergeTree引擎继承自MergeTree并将折叠行的逻辑添加到合并数据部分的算法中.Ve ...

  4. vue 动态路由刷新页面404

    1.如果你的静态路由最后有如下代码: // 404 page must be placed at the end !!! { path: "*", redirect: " ...

  5. MySQL 常见面试题/知识点总结!(2021 最新版)| JavaGuide

    相关阅读: 2.7w字!Java基础面试题/知识点总结!(2021 最新版) 这篇文章之前发过,不过,我最近对其进行了重构完善并且修复了很多小问题.所以,在公号再同步一下! 内容很硬!强烈建议小伙伴们 ...

  6. 领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA)

    领域知识图谱-中式菜谱知识图谱:实现知识图谱可视化和知识库智能问答系统(KBQA) A knowledge graph for Chinese cookbook(中式菜谱知识图谱),可以实现知识图谱可 ...

  7. 5.1 Windows驱动开发:判断驱动加载状态

    在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态,这个功能看似没啥用实际上在某些特殊场景中还是需要的,如下代码实现了判断当前驱动是否加载成功,如果加载成功, 则输出该驱动的详细路径信息. 该功 ...

  8. 4.0 Python 变量与作用域

    在python中,变量的作用域决定了变量在哪些位置可以被访问.一个程序中的变量并不是所有的地方都可以访问的,其访问权限决定于变量的赋值位置.python中有两种最基本的变量作用域:局部作用域和全局作用 ...

  9. WinForm之ComboBox实现模糊查询

    ComboBox实现模糊查询 第一步:在Form_Load事件中绑定数据源 第二步:写一个方法,返回一个List<string>类型的集合来存储控件中的Items 第三步:在Form_Lo ...

  10. auto_ptr|unique_ptr|shared_ptr|weak_ptr|你都搞明白了吗?

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量干货博客汇总https://blog. ...