【Azure 环境】移动应用 SSO 登录AAD, MSAL的配置为Webview模式时登录页面无法加载
问题描述
移动端集成MASL登录过程中,配置文件中配置项“authorization_user_agent”使用“DEFAULT”可以正常登录,但是改为“WEBVIEW”后就无法登陆,一直处于Loading状态。
参考的示例文档:
- https://docs.microsoft.com/zh-cn/azure/active-directory/develop/tutorial-v2-android
- 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
- 添加Browser Safelist到.conf文件里:https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-configuration#browser_safelist
- 最新的MSAL模块中包含的browser safelist: https://github.com/AzureAD/microsoft-authentication-library-for-android/blob/dev/msal/src/main/res/raw/msal_default_config.json
PS: 目前缺省的华为浏览器(com.huawei.browser)不在MSAL default browser safelist里。可以在Github提交问题,看能否添加华为浏览器到 MSAL default browser safelist里。

[END]
【Azure 环境】移动应用 SSO 登录AAD, MSAL的配置为Webview模式时登录页面无法加载的更多相关文章
- 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)
问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...
- php登录注册页面及加载
php注册界面 <h1>注册页面</h1> <form acti ...
- php做登录注册页面及加载
//SQL注入攻击 //1.过滤用户的输入 //2.使用预处理语句 //3.写代码的时候尽量避免 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...
- Exploit Kit——hacker入侵web,某iframe中将加载RIG EK登录页面,最终下载并执行Monero矿工
RIG Exploit Kit使用PROPagate注入技术传播Monero Miner from:https://www.4hou.com/technology/12310.html 导语:Fire ...
- Andriod中WebView加载登录界面获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息。
Android使用WebView加载登录的html界面,则通过登录成功获取Cookie并同步,可以是下一次不用登录也可以查看到个人信息,注:如果初始化加载登录,可通过缓存Cookie信息来验证是否要加 ...
- SpringBoot在启动时的多环境配置以及加载顺序
通常我们在开发完成一个SpringBoot项目时,总是要打包部署的. 在启动SpringBoot应用时,我们常常会使用命令java -jar xxx.jar来启动这个服务. 命令java -jar 除 ...
- ant design pro解决初始加载,有顺序的请求/请求顺序报错问题/登录后再加载其他数据/异步的顺序问题/偷跑
方法是:如在Authorized.jsx中解决,当未登录成功(包括登录失败和登录验证中),就显示loading,否则继续 加载渲染children 一个三目运算或者if分支就可以解决,但是要写到最先加 ...
- 【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
问题描述 通过PowerShell 连接到Microsoft Graph 中国区Azure,一直出现AADSTS700016错误, 消息显示 the specific application was ...
- 【Azure 环境】由为存储账号(Storage Account)拒绝分配权限而引出的Azure 蓝图(Blueprint)使用问题
问题描述 当打开Azure存储账号(Storage Account)门户页面时,从 "访问控制(标识和访问管理)" 页面中发现有"拒绝分配"的功能,所以就思考, ...
- ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session
Session 嘛,占一点儿服务器资源,但是总归比 ViewState 和 Cookie 安全点儿,所以还是要用的. Windows Azure 环境中的 Web 服务器经由负载均衡调度,根本无法保证 ...
随机推荐
- Spring Cloud 系列:基于Seata 实现 XA模式
https://seata.io/zh-cn/docs/user/mode/xa https://seata.io/zh-cn/docs/dev/mode/xa-mode XA 规范 是 X/Open ...
- 【转载】基于Tablestore Timeline的IM(即时通讯)消息系统架构 - 架构篇
本文原作者:木洛,阿里云高级技术专家,内容有优化和修订,感谢原作者.原文链接:https://developer.aliyun.com/article/698301 IM全称是『Instant Mes ...
- 【心理学CPCI收录,AP独立出版】 2023年应用心理学与现代化教育国际学术会议(ICAPME 2023)
[心理学CPCI收录,AP独立出版] 2023年应用心理学与现代化教育国际学术会议(ICAPME 2023) 大会官网:www.icapme.org 大会时间:2023年9月22-24日 大会地点: ...
- 【学习日志】Java基本数据类型的自动装箱和拆箱
// 测试代码 public static void main(String[] args) { Integer a = 1; Integer b = 2; Integer c = 3; Intege ...
- 大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍
大语言模型的预训练[1]:基本概念原理.神经网络的语言模型.Transformer模型原理详解.Bert模型原理介绍 1.大语言模型的预训练 1.LLM预训练的基本概念 预训练属于迁移学习的范畴.现有 ...
- C/C++ 反汇编:针对加减乘除的还原
算术运算通常是指,加减乘除四则运算,而计算机中的四则运算与数学中的有所不同,同样是实现算术运算,高级语言与汇编语言的实现思路完全不同,往往一个简单的减法运算,都要几条指令的配合才能得出计算结果,而为了 ...
- 有用的工具类(Java)
IP地址获取 public class IPUtil { private static final String UNKNOWN = "unknown"; protected IP ...
- Docker从认识到实践再到底层原理(二-2)|Namespace+cgroups
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- (python)做题记录||2024.2.4||题目是codewars的【 All Balanced Parentheses】
题目链接:https://www.codewars.com/kata/5426d7a2c2c7784365000783/python 我的解决方案: def balanced_parens(n): # ...
- 如何快速获取AWR中涉及到的表
最近遇到一个很少见的需求,是关于应用测试方面的. 具体来说,这个应用的测试需求要基于一个固定的时间点数据,而且只能测试一轮,再测试就需要还原到测试前状态. 因为我们使用的存储是分层的(热数据在Flas ...