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

配置,AAD,模式,Webview · 浏览次数 : 147

小编点评

## MSAL Configuration 的 authorization_user_agent 配置项 MSAL 的 authorization_user_agent 配置项用于指定客户端在登录时使用的浏览器名称。 * **DEFAULT**:使用系统默认浏览器访问 AAD。 * **webview**:使用 WebView 访问 AAD。 由于webview 使用嵌入式的 Web 弹出框访问 AAD,而 Default 将采用系统默认的浏览器访问 AAD。因此,使用webview 时登录可能无法成功。 参考文档中说明,webview 需要使用 AAD Application 使用 Brokered Authentication 进行授权。 **设置 authorization_user_agent:** 1. 确保设备安装了 Microsoft Authenticator 或者 Intune Company Portal。 2. 在 MSAL 配置中设置 `broker_redirect_uri_registered` 为 `true`。 3. 安装并使用分配好 license 的 AAD 用户在 Microsoft Authenticator 或 Intune 中注册设备。 4. 设置使用移动应用发送通知。 5. 在 WebView 和 broken authentication 的配置中,请确保浏览器名称添加到 MSAL 默认浏览器 safelist。

正文

问题描述

移动端集成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模式时登录页面无法加载相似的内容:

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

问题描述 移动端集成MASL登录过程中,配置文件中配置项“authorization_user_agent”使用“DEFAULT”可以正常登录,但是改为“WEBVIEW”后就无法登陆,一直处于Loading状态。 参考的示例文档: https://docs.microsoft.com/zh-cn/a

【Azure 环境】使用az login登录遇见OSError: [WinError -2146893813] : '' 错误

az login | Decryption failed:[WinError -2146893813] Key not vaid for use in specified state | msal_extensions.persistence: DPAPI error likely caused by file content not previously encrypted. App dev

【Azure 环境】把OpenSSL生产的自签名证书导入到Azure Key Vault Certificate中报错

问题描述 通过本地生成的自签名证书导入到Azure Key Vault Certificate报错。 错误信息 the specified PEM X.509 certificate content can not be read. Please check if certificate is in

【Azure 环境】Azure 云环境对于OpenSSL 3.x 的严重漏洞(CVE-2022-3602 和 CVE-2022-3786)的处理公告

问题描述 引用报告:(OpenSSL3.x曝出严重漏洞 : https://www.ctocio.com/ccnews/37529.html ) 最近OpenSSL 3.x 爆出了严重安全漏洞,分别是 CVE-2022-3602 和 CVE-2022-3786. CVE-2022-3602 缓冲区溢

【Azure 环境】Azure 流分析服务(Steam Analytics) 报出 OutputDataConversionError 错误引起延迟及超时

问题描述 Azure 流分析服务(Steam Analytics) 报出 OutputDataConversionError 错误引起延迟及超时。 查看详细错误: 问题解答 在错误消息中,有非常明确的提示:Cannot write event(s) to SQL Database due to is

【Azure 环境】向Azure Key Vault中导入证书有输入密码,那么导出pfx证书的时候,为什么没有密码呢?

问题描述 将pfx证书导入Key Vault的证书时,这个PFX需要输入正确的密码导入成功。但是当需要导出时,生成的pfx证书则不需要密码。这是正常的情况吗? 问题解答 是的,这是Azure Key Vault 证书导入/导出 功能的设计使然。当一个PFX不需要密码的时候,也可以直接导入到Azure

【Azure 环境】使用 az ad group create 时候遇见 Insufficient privileges to complete the operation

问题描述 使用China Azure,通过Azure CLI 创建AAD组报错,提示权限不足 Insufficient privileges to complete the operation # 使用这个登录: az login --service-principal --username xxx

【Azure 环境】中国区Azure是否可以根据资源组的模板,生成一个可视化的架构图呢?

问题描述 这是一个国际版链接(https://docs.microsoft.com/en-us/answers/questions/370410/how-to-generate-architecture-diagram-from-azure-re.html), 介绍如何从 Azure 资源生成架构图

【Azure 环境】Azure CLI 获取Access Token的脚本实例

问题描述 如何使用azure CLI命令获取到中国区的Access Token呢? 问题解答 首先,需要通过 az cloud set --name AzureChinaCloud 来设置登录中国区的环境 然后,通过 az login 登录成功 最后,就可以设定特定的订阅号(subscription

【Azure 环境】标准版 Logic App 如何查看 Workflow的执行成功数和失败数的指标呢?

问题描述 在Azure中创建逻辑应用(Logic App),有两种计划类型。一是消费型,另一种是标准型。 在消费型的Logic App Metrics页面中,我们可以看见Workflow的执行成功数指标和失败数指标。如: RunsCancelled 取消的运行数 Count 总计 已取消的工作流运行