集成Intune SDK的iOS应用如何通过Edge完成SSO认证并接收回调
解决方案
- 配置Intune应用保护策略的跨应用通信白名单
该报错本质是Intune应用保护策略默认阻止了托管应用之间的未授权数据传输,你需要在Intune管理中心针对两个应用分别配置策略:- 针对Microsoft Edge的应用保护策略,进入「数据保护」配置项,将你的应用回调Scheme(示例中的
myapp://)添加到「允许向以下应用传输数据」的自定义URI列表中 - 针对你的业务应用的应用保护策略,同样进入「数据保护」配置项,将Edge的Intune托管Scheme添加到「允许接收来自以下应用的数据」列表中,同时开启「允许应用接收来自其他应用的回调」相关开关
- 针对Microsoft Edge的应用保护策略,进入「数据保护」配置项,将你的应用回调Scheme(示例中的
- 替换URL跳转的API实现
集成Intune App SDK的应用不能直接调用系统原生的UIApplication.shared.open方法处理跳转,该操作会被Intune的接管逻辑拦截。你需要改用Intune SDK提供的封装跳转API:// 使用Intune SDK提供的方法唤起Edge IntuneMAMPolicyManager.instance().open(url, options: [:]) { success in // 处理跳转结果 } - 调整回调URL的处理逻辑
不要在AppDelegate/SceneDelegate的原生OpenURL回调中直接解析令牌,需要先将收到的回调URL交给Intune SDK校验放行:func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { // 先交给Intune SDK处理 if IntuneMAMPolicyManager.instance().handle(url) { // Intune校验通过后再解析OAuth令牌 return handleAuthCallback(url: url) } return false } - 校验Azure AD应用注册配置
确认你的Azure AD应用注册中,已经将回调地址(示例中的myapp://callback)添加到「移动和桌面应用」分类的重定向URI列表中,避免AAD层面拦截回调。
内容的提问来源于stack exchange,提问作者Jeff Martin
相关产品推荐
相关产品推荐

