问题描述

移动端集成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. CCPC Finals 2021 H Harie Programming Contest (网络流&支配树的妙用)

    Link 题意: 给一个二分图,求有多少种方案删去恰好两个点,使得最大匹配数不变.\(n,m\le 2\times 10^5\). 二话不说先跑一遍 Dinic 网络流,设残量网络形成的图为 \(G\ ...

  2. Gorm 数据库表迁移与表模型定义

    目录 一.Docker快速创建MySQL实例 1.1 创建 1.3 创建数据库 二.AutoMigrate介绍与使用 2.1 AutoMigrate介绍 2.2 AutoMigrate 基本使用 三. ...

  3. uni-app 实现下拉刷新功能

    我们在运用uni-app开发小程序或h5时,常常需要页面实现下拉刷新功能. 在 js 中定义 onPullDownRefresh 处理函数(和onLoad等生命周期函数同级),监听该页面用户下拉刷新事 ...

  4. ABP 领域服务层学习记录

    在ABP框架中有一个约定,所有的领域服务都应该继承并实现IDomainService接口,在领域层Core创建某一个实体的领域服务类,继承并实现IDomainService接口.在ABP框架中,领域服 ...

  5. Vue双向数据绑定原理-上

    Vue响应式的原理(数据改变界面就会改变)是什么? 时时监听数据变化, 一旦数据发生变化就更新界面, 这就是Vue响应式的原理. Vue是如何实现时时监听数据变化的 通过原生JS的defineProp ...

  6. 解决idea登录github出现的invalid authentication data 404 not found以及登录 token 失效

    0.错误提醒: Your token is invalid, please re-login github and get token again. 报错无效的用户名(invalid username ...

  7. python3 牛客网:OJ在线编程常见输入输出练习(ACM模式)

    牛客网: 校招笔试真题_C++工程师.golang工程师_牛客网 其他语言输入输出见链接 1.输入两个数,输入数据包括多组. while True: try: a = list(map(int,inp ...

  8. 通过Demo学WPF—数据绑定(二)

    准备 今天学习的Demo是Data Binding中的Linq: 创建一个空白解决方案,然后添加现有项目,选择Linq,解决方案如下所示: 查看这个Demo的效果: 开始学习这个Demo xaml部分 ...

  9. clickhouse导入和导出

    一.连接clickhouse--客户端连接default库clickhouse-client -h localhost --port 9001 -u default --password 123456 ...

  10. [JVM] JVM的类加载机制

    JVM的类加载 首先我们来看下Java虚拟机的类加载过程: 如上图. 当JVM需要用到某个类的时候,虚拟机会加载它的 .class 文件.加载了相关的字节码信息之后,会常见对应的 Class 对象,这 ...