对 Apple 设备上的 Microsoft 企业 SSO 扩展插件进行故障排除

本文提供了供管理员用于解决企业 SSO 插件的部署和使用问题的故障排除指南。 Apple SSO 扩展可部署到 iOS/iPadOS 和 macOS。

组织可以选择将 SSO 部署到其企业设备,以便为最终用户提供更好的体验。 在 Apple 平台上,此过程涉及到通过主刷新令牌实现单一登录 (SSO)。 SSO 可减轻最终用户处理过多身份验证提示的负担。

Microsoft 实现了基于 Apple SSO 框架构建的插件,它为与 Microsoft Entra ID 集成的应用程序提供代理身份验证。 有关详细信息,请参阅适用于 Apple 设备的 Microsoft 企业 SSO 插件一文。

扩展类型

Apple 支持属于其框架的两种 SSO 扩展类型:重定向和凭据。 Microsoft 企业 SSO 插件已实现为重定向类型,最适合用于代理 Microsoft Entra ID 身份验证。 下表比较了这两种类型的扩展。

扩展类型 最适用于 工作原理 主要差异
重定向 新式身份验证方法,例如 OpenID Connect、OAUTH2 和 SAML (Microsoft Entra ID) 操作系统截获从应用程序到扩展 MDM 配置文件中定义的标识提供者 URL 的身份验证请求。 重定向扩展接收:URL、标头和正文。 在请求数据之前请求凭据。 在 MDM 配置文件中使用 URL。
凭据 质询和响应身份验证类型,例如 Kerberos(本地 Active Directory 域服务) 请求从应用程序发送到身份验证服务器(AD 域控制器)。 在 MDM 配置文件中使用 HOSTS 配置凭据扩展。 如果身份验证服务器返回与配置文件中列出的主机匹配的质询,操作系统会将质询路由到扩展。 扩展可以选择处理或拒绝质询。 如果已处理,扩展会返回授权标头来完成请求,身份验证服务器会向调用方返回响应。 然后,请求数据接受身份验证质询。 在 MDM 配置文件中使用 HOST。

Microsoft 为以下客户端操作系统提供了代理身份验证实现:

(OS) 身份验证代理
Windows Web 帐户管理器 (WAM)
iOS/iPadOS Microsoft Authenticator
Android Microsoft Authenticator 或 Microsoft Intune 公司门户
macOS Microsoft Intune 公司门户(通过 SSO 扩展)

所有 Microsoft 代理应用程序都使用称为主刷新令牌 (PRT) 的关键项目,这是一种 JSON Web 令牌 (JWT),用于获取受 Microsoft Entra ID 保护的应用程序和 Web 资源的访问令牌。 通过 MDM 部署时,适用于 macOS 或 iOS 的企业 SSO 扩展会获得一个 PRT,它类似于 Web 帐户管理器 (WAM) 在 Windows 设备上使用的 PRT。 有关详细信息,请参阅什么是主刷新令牌一文。

模型故障排除

下面的流程图概述了用于排查 SSO 扩展问题的逻辑流。 本文的其余部分将详细介绍此流程图中描述的步骤。 故障排除可以分为两个单独的重点领域:部署应用程序身份验证流

在 macOS 上选择停用平台 SSO 的步骤

若要选择停用错误启用的 PSSO,管理员应从设备中移除启用了 PSSO 的 SSO 扩展配置文件,并部署禁用/移除了 PSSO 标志的新 SSO 扩展配置文件。

  1. 移除启用了 PSSO 的 SSO 配置文件的目标
  2. 启动设备同步,以便从设备中移除启用了 PSSO 的 SSO 配置文件
  3. 使用禁用 PSSO 的新 SSO 配置文件定位设备
  4. 启动设备同步以获取设备上安装的新配置文件

重要

注意:在 PSSO 注册完成后更新设备上的现有 SSO 配置文件无法帮助禁用 PSSO。 只有从设备中完全移除 SSO 配置文件才会从设备中删除 PSSO 状态。

上下文:

用户将在两种情况下开始在 macOS 13+ 设备上看到 PSSO 注册通知:

  1. 如果设备已有支持 PSSO 的 Intune 公司门户版本,并且管理员部署了已启用 PSSO 的新 SSO 扩展策略
  2. 如果已使用启用了 PSSO 的 SSO 扩展策略将用户作为目标,并随后在设备上安装了支持 PSSO 的 Intune 公司门户版本。

注意

管理员不应使用启用了 PSSO 的 SSO 扩展策略将用户作为目标,除非已对其进行测试且其已做好部署准备,因为这可能会扰乱现有用户及其合规性条件

重要

注意:对于完成 PSSO 注册的用户,将从密钥链中移除旧的 WPJ 注册。 如果本不应进行 PSSO 注册,那么在管理员移除具有 PSSO 的 SSO 配置文件并安装没有 PSSO 的新配置文件后,应再次执行旧的 WPJ 注册,以使设备符合要求。

部署故障排除

客户遇到的大多数问题都源于 SSO 扩展配置文件的移动设备管理 (MDM) 配置不正确,或者 Apple 设备无法从 MDM 接收配置文件。 本部分介绍你可执行哪些步骤来确保 MDM 配置文件已部署到 Mac 且具有正确的配置。

部署要求

检查 macOS 操作系统版本

使用以下步骤检查 macOS 设备上的操作系统 (OS) 版本。 Apple SSO 扩展配置文件仅部署到运行 macOS 10.15 (Catalina) 或更高版本的设备。 可通过用户界面终端检查 macOS 版本。

用户界面
  1. 在 macOS 设备中,选择左上角的 Apple 图标,然后选择“关于此 Mac”。

  2. 操作系统版本在 macOS 旁边列出。

终端
  1. 在 macOS 设备上,双击“应用程序”文件夹,然后双击“实用工具”文件夹。

  2. 双击“终端”应用程序。

  3. 当终端在提示符下打开类型 sw_vers 时,查找如下所示的结果:

    % sw_vers
    ProductName: macOS
    ProductVersion: 13.0.1
    BuildVersion: 22A400
    

检查 iOS 操作系统版本

按照以下步骤检查 iOS 设备上的操作系统 (OS) 版本。 Apple SSO 扩展配置文件仅部署到运行 iOS 13 或更高版本的设备。 可通过“设置”应用检查 iOS 版本。 打开“设置”应用:

显示 iOS 设置应用图标的屏幕截图。

导航到“常规”,然后导航到“关于”。 此屏幕上列出了设备的相关信息,包括 iOS 版本号:

显示设置应用中的 iOS 版本的屏幕截图。

SSO 扩展配置文件的 MDM 部署

请与 MDM 管理员(或设备管理团队)协作,确保将扩展配置文件部署到 Apple 设备。 可以从支持 macOS 或 iOS 设备的任何 MDM 部署扩展配置文件。

重要

Apple 要求将设备注册到 MDM 中才能部署 SSO 扩展。

下表提供了具体的 MDM 安装指南,具体取决于要将扩展部署到哪种 OS:

重要

尽管任何 MDM 都支持用于部署 SSO 扩展,但许多组织通过评估 MDM 合规性策略来实施基于设备的条件访问策略。 如果使用第三方 MDM,请确保 MDM 供应商支持 Intune 合作伙伴合规性(如果想要使用基于设备的条件访问策略)。 通过 Intune 或支持 Intune 合作伙伴合规性的 MDM 提供商部署 SSO 扩展时,该扩展可以将设备证书传递给 Microsoft Entra ID,以便完成设备身份验证。

验证 macOS 设备上的网络配置

Apple 的 SSO 扩展框架和基于其生成的 Microsoft 企业 SSO 扩展要求某些域免受 TLS 拦截/检查(也称为中断和检查代理)。 以下域不得接受 TLS 检查:

  • app-site-association.cdn-apple.com
  • app-site-association.networking.apple
检查 SSO 配置是否因 TLS 检查而损坏

可以通过从受影响设备上的终端应用程序运行 sysdiagnose 来验证 TLS 检查是否影响 SSO 配置:

sudo sysdiagnose -f ~/Desktop/

sysdiagnose 将以 .tar.gz 存档的形式保存到桌面。 解压缩该存档并打开 system _logs.logarchive 文件。 此文件将在控制台应用程序中打开。 搜索 com.apple.appsso 并将筛选器更改为 SUBSYSTEM

显示 sysdiagnose 的屏幕截图。

查找表明存在关联域故障的事件,尤其是与 Microsoft 域(例如 login.microsoftonline.com)相关的事件。 这些事件可能表明出现了 TLS 检查问题,这会导致 SSO 扩展无法正常工作。 即使受到不支持的 TLS 检查配置的影响,Apple 域也不会出现在 sysdiagnose 日志中。

验证 TLS 检查配置

Apple 提供了一个 macOS 工具来检查许多常见配置问题,此工具名为 Mac Evaluation Utility。 可以从 AppleSeed for IT 下载此工具。 如果你有权访问 AppleSeed for IT,请从“资源”区域下载 Mac Evaluation Utility。 安装该应用程序后,运行评估。 评估完成后,导航到“HTTPS 拦截”-->“其他内容”--> 检查以下两项:

显示 Mac 评估实用工具的屏幕截图。

如果这些检查出现警告或错误,则表明设备上可能发生了 TLS 检查。 请求网络团队免除 *.cdn- apple.com 和 *.networking.apple 的 TLS 检查。

输出详细的 swcd 日志

Apple 提供了一个调用 swcutil 的命令行实用工具,用于监视关联域验证的进度。 可以使用以下命令监视任何关联的域错误:

sudo swcutil watch --verbose

在日志中找到以下条目,如果标记为已批准或存在任何错误,则检查:


    ```
    Entry s = authsrv, a = UBF8T346G9.com.microsoft.CompanyPortalMac, d = login.microsoftonline.com
    ```

清除 macOS TLS 检查缓存

如果关联域存在问题,并且设备上 TLS 检查工具中存在允许列表的域,则可能要花费一些时间来调查 Apple 的关联域验证缓存。 不幸的是,没有确定性的步骤能够在所有计算机上重新触发关联域重新验证,不过可以尝试几种方法。

可以运行以下命令来重置设备的缓存:

pkill -9 swcd
sudo swcutil reset
pkill -9 AppSSOAgent

重置缓存后,重新测试 SSO 扩展配置。

此命令有时并不足够,不能完全重置缓存。 在这种情况下,可以尝试使用以下方法:

  • 删除或将 Intune 公司门户应用移动到回收站,然后重启设备。 重启完成后,可以尝试重新安装公司门户应用。
  • 重新注册设备。

如果上述方法都无法解决问题,则环境中可能存在可能阻止关联域验证的其他内容。 如果发生这种情况,请联系 Apple 支持人员进行进一步故障排除。

验证 macOS 设备上的 SSO 配置文件

假设 MDM 管理员已按上一节 SSO 扩展配置文件的 MDM 部署中的步骤操作,下一步是验证是否已成功将配置文件部署到设备。

查找 SSO 扩展 MDM 配置文件
  1. 在 macOS 设备上,选择“系统设置”。

  2. “系统设置”出现时,键入“配置文件”并点击“返回”。

  3. 此操作应调出“配置文件”面板。

    显示配置文件的屏幕截图。

    屏幕截图标注 说明
    1 指示设备在 MDM 的管理下。
    2 可能有多个配置文件可供选择。 在此示例中,Microsoft 企业 SSO 扩展配置文件称为 Extensible Single Sign On Profile-32f37be3-302e-4549-a3e3-854d300e117a。

    注意

    根据所使用的 MDM 类型,可能会列出多个配置文件,其命名方案是任意的,具体取决于 MDM 配置。 选择每个配置文件,检查“设置”行是否指示它是“单一登录扩展”。

  4. 双击“设置”值为“单一登录扩展”的配置文件。

    显示 SSO 扩展配置文件的屏幕截图。

    屏幕截图标注 配置文件设置 说明
    1 Signed MDM 提供商的签名机构。
    2 已安装 显示扩展何时安装(或更新)的日期/时间戳。
    3 设置:单一登录扩展 指示此配置文件是 Apple SSO 扩展类型。
    4 扩展名 映射到应用程序(其运行 Microsoft 企业扩展插件)捆绑 ID 的标识符。 如果配置文件安装在 macOS 设备上,标识符必须始终设置为 com.microsoft.CompanyPortalMac.ssoextension,并且团队标识符必须显示为 (UBF8T346G9)。 如果有任何值不同,MDM 无法正确调用扩展。
    5 类型 Microsoft 企业 SSO 扩展必须始终设置为“重定向”扩展类型。 有关详细信息,请参阅重定向与凭据扩展类型
    6 URLs 属于标识提供者 (Microsoft Entra ID) 的登录 URL。 请参阅支持的 URL 列表。

    所有 Apple SSO 重定向扩展都必须在配置文件中具有以下 MDM 有效负载组件:

    MDM 有效负载组件 说明
    扩展标识符 包括运行扩展的 macOS 设备上应用程序的捆绑标识符和团队标识符。 注意:Microsoft 企业 SSO 扩展应始终设置为:com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9),以通知 macOS 操作系统扩展客户端代码是 Intune 公司门户应用程序的一部分。
    类型 必须设置为“重定向”,以指示“重定向扩展”类型。
    URLs 标识提供者 (Microsoft Entra ID) 的终结点 URL,操作系统在这里将身份验证请求路由到扩展。
    可选扩展特定配置 可充当配置参数的字典值。 在 Microsoft 企业 SSO 扩展的语境中,这些配置参数称为功能标志。 请查看功能标志定义

    注意

    可以在针对 Apple 设备的“可扩展单一登录”MDM 有效负载设置一文中参考 Apple SSO 扩展配置文件的 MDM 定义。Microsoft 基于此架构实现了我们的扩展。 请查看适用于 Apple 设备的 Microsoft 企业 SSO 插件

  5. 若要验证是否已为 Microsoft 企业 SSO 扩展安装正确的配置文件,“扩展”字段应当为:com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9)。

  6. 记下配置文件中的“已安装”字段,因为更改配置时,它可能是一个有用的故障排除指标。

如果验证的配置文件正确,接下来请转到应用程序身份验证流故障排除部分。

缺少 MDM 配置文件

如果按照上一部分操作后,SSO 扩展配置文件未显示在“配置文件”列表中,则可能是 MDM 配置启用了用户/设备定位,这会有效筛除用户或设备,使其无法接收配置文件。 请与 MDM 管理员联系,并收集在下一部分中找到的控制台日志。

收集特定于 MDM 的控制台日志
  1. 在 macOS 设备上,双击“应用程序”文件夹,然后双击“实用工具”文件夹。

  2. 双击“控制台”应用程序。

  3. 单击“开始”按钮,启用控制台跟踪日志记录。

    显示控制台应用和正在单击“开始”按钮的屏幕截图。

  4. 让 MDM 管理员尝试将配置文件重新部署到此 macOS 设备/用户,并强制实施一个同步周期。

  5. 在搜索栏中键入 subsystem:com.apple.ManagedClient 并点击“返回”。

    屏幕截显示了具有子系统筛选器的控制台应用。

  6. 在搜索栏中光标闪烁的位置键入 message:Extensible。

    屏幕截图显示正在对消息字段进行进一步筛选的控制台。

  7. 现在应看到根据“可扩展 SSO”配置文件活动筛选的 MDM 控制台日志。 以下屏幕截图显示了“已安装配置文件”日志条目,其中显示已安装配置文件。

应用程序身份验证流故障排除

本部分中的指南假定 macOS 设备具有正确部署的配置文件。 有关步骤,请参阅验证 macOS 设备上的 SSO 配置文件

部署后,适用于 Apple 设备的 Microsoft 企业 SSO 扩展针对每种应用程序类型支持两种应用程序身份验证流类型。 进行故障排除时,请务必了解所使用的应用程序类型。

应用程序类型

应用程序类型 交互式身份验证 无提示身份验证 说明 示例
原生 MSAL 应用 X X MSAL(Microsoft 身份验证库)是一个应用程序开发人员框架,专用于通过 Microsoft 标识平台 (Microsoft Entra ID) 生成应用程序。
基于 MSAL 1.1 或更高版本构建的应用能够与 Microsoft 企业 SSO 扩展集成。
如果应用程序可感知 SSO 扩展(代理),它无需进一步配置即可利用该扩展。有关详细信息,请查看 MSAL 开发人员示例文档
Microsoft To Do
非 MSAL 原生/浏览器 SSO X 可将使用 Apple 网络技术或 Web 视图的应用程序配置为从 SSO 扩展获取共享凭据
必须配置功能标志,确保允许每个应用的捆绑 ID 获取共享凭据 (PRT)。
Microsoft Word
Safari
Microsoft Edge
Visual Studio

重要

并非所有 Microsoft 第一方原生应用程序都使用 MSAL 框架。 在本文发布时,大多数 Microsoft Office macOS 应用程序仍依赖于较旧的 ADAL 库框架,因此依赖于浏览器 SSO 流。

如何在 macOS 上查找应用程序的捆绑 ID

  1. 在 macOS 设备上,双击“应用程序”文件夹,然后双击“实用工具”文件夹。

  2. 双击“终端”应用程序。

  3. 终端打开时,在提示符处键入 osascript -e 'id of app "<appname>"'。 请查看下面的一些示例:

    % osascript -e 'id of app "Safari"'
    com.apple.Safari
    
    % osascript -e 'id of app "OneDrive"'
    com.microsoft.OneDrive
    
    % osascript -e 'id of app "Microsoft Edge"'
    com.microsoft.edgemac
    
  4. 收集捆绑 ID 后,请按照功能标志配置指南操作,确保非 MSAL 原生/浏览器 SSO 应用可以利用 SSO 扩展。 注意:对于功能标志配置,所有捆绑 ID 都区分大小写。

注意

不使用 Apple 网络技术(例如 WKWebview 和 NSURLSession)的应用程序将无法使用来自 SSO 扩展的共享凭据 (PRT)。 Google Chrome 和 Mozilla Firefox 都属于此类别。 即使它们在 MDM 配置文件中进行配置,结果也会在浏览器中显示常规身份验证提示。

启动

默认情况下,只有 MSAL 应用调用 SSO 扩展,然后该扩展又会从 Microsoft Entra ID 获取共享凭据 (PRT)。 但可以通过配置 Safari 浏览器应用程序或其他非 MSAL 应用程序来获取 PRT。 请参阅允许用户从不使用 MSAL 和 Safari 浏览器的应用程序登录。 SSO 扩展获取 PRT 后,会将凭据存储在用户的登录钥匙串中。 接下来进行检查,确保 PRT 存在于用户的密钥链中:

检查密钥链访问中的 PRT

  1. 在 macOS 设备上,双击“应用程序”文件夹,然后双击“实用工具”文件夹。

  2. 双击“钥匙串访问”应用程序。

  3. 在“默认密钥链”下,选择“本地项(或 iCloud)”。

    • 确保选中“所有项”。
    • 在搜索栏中的右侧,键入 primaryrefresh(便于筛选)。

    显示如何在密钥链访问应用中查找 PRT 的屏幕截图。

    屏幕截图标注 密钥链凭据组件 说明
    1 所有项 显示密钥链访问中的所有凭据类型
    2 密钥链搜索栏 允许按凭据进行筛选。 若要筛选 Microsoft Entra PRT 类型 primaryrefresh
    3 种类 指凭据的类型。 Microsoft Entra PRT 凭据是“应用程序密码”凭据类型
    4 客户 显示拥有 PRT 的 Microsoft Entra 用户帐户,格式如下:UserObjectId.TenantId-login.windows.net
    5 Where 显示凭据的全名。 Microsoft Entra PRT 凭据以 primaryrefreshtoken-29d9ed98-a469-4536-ade2-f981bc1d605 格式开头。29d9ed98-a469-4536-ade2-f981bc1d605 是 Microsoft 身份验证代理服务的应用程序 ID,该服务负责处理 PRT 获取请求
    6 修改时间 显示上次更新凭据的时间。 对于 Microsoft Entra PRT 凭据,每当凭据由交互式登录事件启动或更新时,都会更新日期/时间戳
    7 密钥链 指示所选凭据所在的密钥链。 Microsoft Entra PRT 凭据位于“本地项目”或“iCloud”钥匙串中。 在 macOS 设备上启用 iCloud 后,“本地项目”钥匙串将变为“iCloud”钥匙串
  4. 如果在密钥链访问中找不到 PRT,请根据应用程序类型执行以下操作:

    • 原生 MSAL:检查应用程序开发人员(如果应用是使用 MSAL 1.1 或更高版本生成的)是否已启用可感知代理的应用程序。 此外,请查看部署故障排除步骤以排除任何部署问题。
    • 非 MSAL (Safari):进行检查,确保在 MDM 配置文件中将功能标志 browser_sso_interaction_enabled 设置为 1 而不是 0

启动 PRT 后的身份验证流

现已验证 PRT(共享凭据),在进行任何更深入的故障排除之前,了解每种应用程序类型的概要步骤以及它与 Microsoft 企业 SSO 扩展插件(代理应用)的交互方式很有帮助。 以下动画和说明应该有助于 macOS 管理员在查看任何日志记录数据之前了解相关场景。

原生 MSAL 应用程序

场景:开发的应用程序使用 MSAL(示例:Microsoft To Do 客户端)并在 Apple 设备上运行,它需要让用户使用其 Microsoft Entra 帐户登录,以便访问受 Microsoft Entra 保护的服务(示例:Microsoft To Do 服务)

GIF 动画显示了具有 PRT 的 MSAL 应用的身份验证流。

  1. 基于 MSAL 开发的应用程序直接调用 SSO 扩展,并将 PRT 以及该应用程序针对受 Microsoft Entra 保护的资源发出的令牌请求发送到 Microsoft Entra 令牌终结点
  2. Microsoft Entra ID 验证 PRT 凭据,并将特定于应用程序的令牌返回给 SSO 扩展代理
  3. 然后,SSO 扩展代理将令牌传递给 MSAL 客户端应用程序,后者再将其发送到受 Microsoft Entra 保护的资源
  4. 用户现已登录到应用,身份验证过程已完成
非 MSAL/浏览器 SSO

场景:Apple 设备上的一位用户打开 Safari Web 浏览器(或任何支持 Apple 网络堆栈的非 MSAL 原生应用),以登录到受 Microsoft Entra 保护的资源(示例:https://office.com)。

动画显示了使用 SSO 扩展的非 MSAL 应用的概要身份验证流。

  1. 该用户使用非 MSAL 应用程序(示例:Safari)尝试登录到 Microsoft Entra 集成应用程序(示例:office.com),并通过重定向从 Microsoft Entra ID 获取令牌
  2. 只要在 MDM 有效负载配置中将非 MSAL 应用程序列于允许列表,Apple 网络堆栈就会截获身份验证请求并将请求重定向到 SSO 扩展代理
  3. SSO 扩展收到截获的请求后,PRT 将发送到 Microsoft Entra 令牌终结点
  4. Microsoft Entra ID 验证 PRT,并将特定于应用程序的令牌返回给 SSO 扩展
  5. 将特定于应用程序的令牌提供给非 MSAL 客户端应用程序后,客户端应用程序发送该令牌以访问受 Microsoft Entra 保护的服务
  6. 用户现已完成登录,身份验证过程已完成

获取 SSO 扩展日志

在解决 SSO 扩展的各种问题时,最有用的工具之一是来自 Apple 设备的客户端日志。

保存来自公司门户应用的 SSO 扩展日志

  1. 在 macOS 设备中,双击“应用程序”文件夹。

  2. 双击“公司门户”应用程序。

  3. 公司门户加载时,导航到顶部菜单栏:“帮助”->“保存诊断报告”。 无需登录应用。

    显示如何导航到“帮助”顶部菜单以保存诊断报告的屏幕截图。

  4. 将公司门户日志存档保存到所选位置(例如:桌面)。

  5. 打开 CompanyPortal.zip 存档,并使用任何文本编辑器打开 SSOExtension.log 文件。

提示

查看日志的一种便捷方法是使用 Visual Studio Code 并安装日志查看器扩展。

在 macOS 上使用终端跟踪 SSO 扩展日志

在故障排除期间,在实时跟踪 SSOExtension 日志时重现问题可能很有用:

  1. 在 macOS 设备上,双击“应用程序”文件夹,然后双击“实用工具”文件夹。

  2. 双击“终端”应用程序。

  3. 终端打开时,键入:

    tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    

    注意

    末尾的 /* 指示将跟踪多个日志(如果存在)

    % tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    ==> /Users/<username>/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/SSOExtension 2022-12-25--13-11-52-855.log <==
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Handling SSO request, requested operation: 
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Ignoring this SSO request...
    2022-12-29 14:49:59:282 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Finished SSO request.
    2022-12-29 14:49:59:599 | I | Beginning authorization request
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_interaction_enabled, value in config 1, value type __NSCFNumber
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Feature flag browser_sso_interaction_enabled is enabled
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_disable_mfa, value in config (null), value type (null)
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag disable_browser_sso_intercept_all, value in config (null), value type (null)
    2022-12-29 14:49:59:600 | I | Request does not need UI
    2022-12-29 14:49:59:600 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag admin_debug_mode_enabled, value in config (null), value type (null)
    
  4. 重现问题时,使“终端”窗口保持打开状态,以观察跟踪的 SSOExtension 日志的输出。

在 iOS 上导出 SSO 扩展日志

无法实时查看 iOS SSO 扩展日志,因为它在 macOS 上。 可以从 Microsoft Authenticator 应用导出 iOS SSO 扩展日志,然后在另一台设备上查看这些日志:

  1. 打开 Microsoft Authenticator 应用:

    iOS 上的 Microsoft Authenticator 应用图标的屏幕截图。

  2. 按左上角的菜单按钮:

    显示 Microsoft Authenticator 应用中菜单按钮位置的屏幕截图。

  3. 选择“发送反馈”选项:

    显示 Microsoft Authenticator 应用中“发送反馈”选项的位置的屏幕截图。

  4. 选择“遇到问题”选项:

    显示 Microsoft Authenticator 应用中“遇到问题”选项的位置的屏幕截图。

  5. 按下“查看诊断数据”选项:

    显示 Microsoft Authenticator 应用中的“查看诊断数据”按钮的屏幕截图。

    提示

    如果正在与 Microsoft 支持部门合作,则在此阶段,可按下“发送”按钮,将日志发送给支持部门。 这将为你提供事件 ID,你可将它提供给 Microsoft 支持部门联系人。

  6. 按下“全部复制”按钮,将日志复制到 iOS 设备的剪贴板中。 然后,可将日志文件保存到其他位置以供查看,或者通过电子邮件或其他文件共享方法发送它们:

    显示 Microsoft Authenticator 应用中的“复制所有日志”选项的屏幕截图。

了解 SSO 扩展日志

若要排查向 Microsoft Entra ID 发送身份验证请求的应用程序的身份验证流问题,分析 SSO 扩展日志一种绝佳的方法。 每当调用 SSO 扩展代理时,都将生成一系列日志记录活动,这些活动称为“授权请求”。 日志包含以下用于故障排除的有用信息:

  • 功能标志配置
  • 授权请求类型
    • 原生 MSAL
    • 非 MSAL/浏览器 SSO
  • 与 macOS 密钥链交互以执行凭据重试/存储操作
  • Microsoft Entra 登录事件的相关 ID
    • PRT 获取
    • 设备注册

注意

SSO 扩展日志非常详细,尤其是在查看密钥链凭据操作时。 因此,在故障排除期间查看日志之前,最好先了解相关情况。

日志结构

SSO 扩展日志分为多列。 以下屏幕截图显示了日志的列明细:

屏幕截图显示了 SSO 扩展日志的列结构。

列名称 描述
1 本地日期/时间 显示的本地日期和时间
2 I-信息
W-警告
E-错误
显示信息、警告或错误
3 线程 ID (TID) 显示 SSO 扩展代理应用执行的线程 ID
4 MSAL 版本号 Microsoft 企业 SSO 扩展代理插件以 MSAL 应用形式生成的。 此列表示代理应用正在运行的 MSAL 版本
5 macOS 版本 显示 macOS 操作系统的版本
6 UTC 日期/时间 显示的 UTC 日期和时间
7 相关 ID 日志中与 Microsoft Entra ID 或密钥链操作相关的行使用相关 ID 扩展 UTC 日期/时间列
8 Message 显示日志的详细消息。 可以通过查看此列找到大多数故障排除信息

功能标志配置

在 Microsoft 企业 SSO 扩展的 MDM 配置期间,可以发送特定于扩展的可选数据,作为更改 SSO 扩展行为方式的说明。 这些特定于配置的说明称为“功能标志”。 功能标志配置对于非 MSAL/浏览器 SSO 授权请求类型尤其重要,因为捆绑 ID 可以确定是否要调用扩展。 请参阅功能标志文档。 每个授权请求都以功能标志配置报告开头。 以下屏幕截图演示了一个示例功能标志配置:

屏幕截图显示了 Microsoft SSO 扩展的示例功能标志配置。

标注 功能标志 说明
1 browser_sso_interaction_enabled 非 MSAL 或 Safari 浏览器可以启动 PRT
2 browser_sso_disable_mfa (现已弃用)在启动 PRT 凭据期间,默认情况下需要 MFA。 请注意,此配置设置为 null,这意味着将强制实施默认配置
3 disable_explicit_app_prompt 替换来自应用程序的 prompt=login 身份验证请求,以减少提示
4 AppPrefixAllowList SSO 扩展代理可以截获和处理捆绑 ID 以 com.micorosoft. 开头的任何非 MSAL 应用程序

重要

功能标志设置为 null 意味着已实施其默认配置。 有关更多详细信息,请查看功能标志文档

MSAL 原生应用程序登录流

以下部分演示如何检查原生 MSAL 应用程序身份验证流的 SSO 扩展日志。 对于此示例,我们使用 MSAL macOS/iOS 示例应用程序作为客户端应用程序,应用程序正在调用 Microsoft Graph API 来显示登录用户的信息。

MSAL 原生:交互式流演练

若要成功进行交互式登录,应执行以下操作:

  1. 用户登录到 MSAL macOS 示例应用。
  2. 会调用 Microsoft SSO 扩展代理并处理请求。
  3. Microsoft SSO 扩展代理将进行启动来获取已登录用户的 PRT。
  4. 将 PRT 存储在密钥链中。
  5. 检查 Microsoft Entra ID (WPJ) 中是否存在设备注册对象。
  6. 将访问令牌返回到客户端应用程序,以访问范围为 User.Read 的 Microsoft Graph。

重要

后面的示例日志代码段已用注释标头 // 进行注释,这些注释标头在日志中是看不到的。 它们用于帮助说明正在执行的具体操作。 我们以这种方式记录了日志代码片段,以帮助执行复制和粘贴操作。 此外,日志示例已进行剪裁,仅显示对故障排除有意义的行。

用户单击“调用 Microsoft Graph API”按钮来调用登录过程。

屏幕截图显示了使用“调用 Microsoft Graph API”按钮启动的适用于 macOS 的 MSAL 示例应用。

//////////////////////////
//get_accounts_operation//
//////////////////////////
Handling SSO request, requested operation: get_accounts_operation
(Default accessor) Get accounts.
(MSIDAccountCredentialCache) retrieving cached credentials using credential query
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 00001111-aaaa-2222-bbbb-3333cccc4444, scopes (null)
(Default accessor) No accounts found in default accessor.
(Default accessor) No accounts found in other accessors.
Completed get accounts SSO request with a personal device mode.
Request complete
Request needs UI
ADB 3.1.40 -[ADBrokerAccountManager allBrokerAccounts:]
ADB 3.1.40 -[ADBrokerAccountManager allMSIDBrokerAccounts:]
(Default accessor) Get accounts.
No existing accounts found, showing webview

/////////
//login//
/////////
Handling SSO request, requested operation: login
Handling interactive SSO request...
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/common";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
    "client_version" = "1.1.7";
    "correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
    "extra_oidc_scopes" = "openid profile offline_access";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    prompt = "select_account";
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
}

////////////////////////////////////////////////////////////
//Request PRT from Microsoft Authentication Broker Service//
////////////////////////////////////////////////////////////
Using request handler <ADInteractiveDevicelessPRTBrokerRequestHandler: 0x117ea50b0>
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 11112222-bbbb-3333-cccc-4444dddd5555, scopes (null)
Attempting to get Deviceless Primary Refresh Token interactively.
Caching AAD Environements
networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
Resolved authority, validated: YES, error: 0
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Start webview authorization session with webview controller class MSIDAADOAuthEmbeddedWebviewController: 
[MSAL] Presenting web view controller. 

日志记录示例可以分为三个部分:

Segment 说明
get_accounts_operation 检查缓存中是否存在任何现有帐户
- ClientID:在 Microsoft Entra ID 中为此 MSAL 应用注册的应用程序 ID
ADB 3.1.40 指示该版本的 Microsoft 企业 SSO 扩展代理插件
login 代理处理 Microsoft Entra ID 的请求:
- 处理交互式 SSO 请求…:表示交互式请求
- correlation_id:与 Microsoft Entra 服务器端登录日志进行交叉引用非常有用
- scope:从 Microsoft Graph 请求的 User.Read API 权限范围
- client_version:应用程序运行的 MSAL 版本
- redirect_uri:MSAL 应用使用 msauth.com.<Bundle ID>://auth 格式
PRT 请求 以交互方式获取 PRT 的启动过程已经发起并会呈现 Web 视图 SSO 会话

Microsoft 身份验证代理服务
- clientId:29d9ed98-a469-4536-ade2-f981bc1d605e
- 所有 PRT 请求都向 Microsoft 身份验证代理服务发出

此时会显示 SSO Web 视图控制器,并提示用户输入其 Microsoft Entra 登录名(UPN/电子邮件)

显示 Apple SSO 提示的屏幕截图,其中正在输入用户信息,并框出了“更多信息”。

注意

单击 Web 视图控制器左下角的 i 可显示有关 SSO 扩展的详细信息,以及已调用该扩展的应用的相关详细信息

屏幕截图显示了 SSO 提示屏幕中有关 SSO 扩展的详细信息。 用户成功输入其 Microsoft Entra 凭据后,以下日志条目将写入 SSO 扩展日志

SSOExtensionLogs
///////////////
//Acquire PRT//
///////////////
[MSAL] -completeWebAuthWithURL: msauth://microsoft.aad.brokerplugin/?code=(not-null)&client_info=(not-null)&state=(not-null)&session_state=(not-null)
[MSAL] Dismissed web view controller.
[MSAL] Result from authorization session callbackURL host: microsoft.aad.brokerplugin , has error: NO
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId 29d9ed98-a469-4536-ade2-f981bc1d605e, scopes (null)
Saving PRT response in cache since no other PRT was found
[MSAL] Saving keychain item, item info Masked(not-null)
[MSAL] Keychain find status: 0
Acquired PRT.

///////////////////////////////////////////////////////////////////////
//Discover if there is an Azure AD Device Registration (WPJ) present //
//and if so re-acquire a PRT and associate with Device ID            //
///////////////////////////////////////////////////////////////////////
WPJ Discovery: do discovery in environment 0
Attempt WPJ discovery using tenantId.
WPJ discovery succeeded.
Using cloud authority from WPJ discovery: https://login.microsoftonline.com/common
ADBrokerDiscoveryAction completed. Continuing Broker Flow.
PRT needs upgrade as device registration state has changed. Device is joined 1, prt is joined 0
Beginning ADBrokerAcquirePRTInteractivelyAction
Attempting to get Primary Refresh Token interactively.
Acquiring broker tokens for broker client id.
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Enrollment id read from intune cache : (null).
Handle silent PRT response Masked(not-null), error Masked(null)
Acquired broker tokens.
Acquiring PRT.
Acquiring PRT using broker refresh token.
Requesting PRT from authority https://login.microsoftonline.com/<TenantID>/oauth2/v2.0/token
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId (null), scopes (null)
[MSAL] Acquired PRT successfully!
Acquired PRT.
ADBrokerAcquirePRTInteractivelyAction completed. Continuing Broker Flow.
Beginning ADBrokerAcquireTokenWithPRTAction
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Handle silent PRT response Masked(not-null), error Masked(null)

//////////////////////////////////////////////////////////////////////////
//Provide Access Token received from Azure AD back to Client Application// 
//and complete authorization request                                    //
//////////////////////////////////////////////////////////////////////////
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm TenantID, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed interactive SSO request.
Completed interactive SSO request.
Request complete
Completing SSO request...
Finished SSO request.

此时,在身份验证/授权流中,PRT 已启动,你应该可以在 macOS 密钥链访问中看到它。 请参阅检查密钥链访问中的 PRT。 MSAL macOS 示例应用程序使用从 Microsoft SSO 扩展代理收到的访问令牌来显示用户的信息。

接下来,根据从客户端 SSO 扩展日志中收集的相关 ID 检查服务器端 Microsoft Entra 登录日志。 有关详细信息,请参阅 Microsoft Entra ID 中的登录日志

按关联 ID 筛选器查看 Microsoft Entra 登录日志
  1. 打开在其中注册应用程序的租户的 Microsoft Entra 登录。
  2. 选择“用户登录(交互式)”。
  3. 选择“添加筛选器”,然后选择“相关 ID”单选按钮。
  4. 复制并粘贴从 SSO 扩展日志获取的相关 ID,然后选择“应用”。

对于 MSAL 交互式登录流,我们预计会看到资源 Microsoft 身份验证代理服务的交互式登录。 此事件是用户输入其密码来启动 PRT 的位置。

显示 Microsoft Entra ID 中交互式用户登录的屏幕截图,其中显示了 Microsoft 身份验证代理服务的交互式登录。

此外,还有非交互式登录事件,因为 PRT 用于获取客户端应用程序请求的访问令牌。 根据按相关 ID 筛选器查看 Microsoft Entra 登录日志进行操作,但在步骤 2 中,请选择“用户登录(非交互式)”。

屏幕截图显示 SSO 扩展如何使用 PRT 获取 Microsoft Graph 的访问令牌。

登录日志属性 说明
应用程序 在其中进行身份验证的 Microsoft Entra 租户中应用程序注册的显示名称。
应用程序 ID 也指 Microsoft Entra 租户中应用程序注册的 ClientID。
资源 客户端应用程序尝试获取其访问权限的 API 资源。 在此示例中,资源是 Microsoft Graph API。
传入令牌类型 主刷新令牌 (PRT) 的传入令牌类型显示用于获取资源访问令牌的输入令牌。
用户代理 此示例中的用户代理字符串表明 Microsoft SSO 扩展是处理此请求的应用程序。 这个有用的指示器指示正在使用 SSO 扩展,并且正在处理代理身份验证请求。
Microsoft Entra 应用身份验证库 使用 MSAL 应用程序时,将在此处写入库和平台的详细信息。
Oauth 范围信息 为访问令牌请求的 Oauth2 范围信息。 (User.Read、profile、openid、email)。
MSAL 原生:无提示流演练

一段时间后,访问令牌将不再有效。 因此,如果用户重新单击“调用 Microsoft Graph API”按钮, SSO 扩展会尝试使用已获取的 PRT 刷新访问令牌。

SSOExtensionLogs
/////////////////////////////////////////////////////////////////////////
//refresh operation: Assemble Request based on User information in PRT  /  
/////////////////////////////////////////////////////////////////////////
Beginning authorization request
Request does not need UI
Handling SSO request, requested operation: refresh
Handling silent SSO request...
Looking account up by home account ID dbb22b2f, displayable ID auth.placeholder-61945244__domainname.com
Account identifier used for request: Masked(not-null), auth.placeholder-61945244__domainname.com
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/<TenantID>";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
    "client_version" = "1.1.7";
    "correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
    "extra_oidc_scopes" = "openid profile offline_access";
    "home_account_id" = "<UserObjectId>.<TenantID>";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
    username = "auth.placeholder-61945244__domainname.com";
}
//////////////////////////////////////////
//Acquire Access Token with PRT silently//
//////////////////////////////////////////
Using request handler <ADSSOSilentBrokerRequestHandler: 0x127226a10>
Executing new request
Beginning ADBrokerAcquireTokenSilentAction
Beginning silent flow.
[MSAL] Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm <TenantID>, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
[MSAL] (MSIDAccountCredentialCache) retrieving cached credentials using credential query
[MSAL] Silent controller with PRT finished with error Masked(null)
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed silent SSO request.
Request complete
Completing SSO request...
Finished SSO request.

日志记录示例可以分为两个部分:

Segment 说明
refresh 代理处理 Microsoft Entra ID 的请求:
- 处理无提示 SSO 请求…:表示无提示请求
- correlation_id:与 Microsoft Entra 服务器端登录日志进行交叉引用非常有用
- scope:从 Microsoft Graph 请求的 User.Read API 权限范围
- client_version:应用程序运行的 MSAL 版本
- redirect_uri:MSAL 应用使用 msauth.com.<Bundle ID>://auth 格式

刷新与请求有效负载存在显著差异:
- authority:包含 Microsoft Entra 租户 URL 终结点,而不是常用终结点
- home_account_id:以 <UserObjectId>.<TenantID> 格式显示用户帐户
- username:经过哈希处理后的 UPN 格式 auth.placeholder-XXXXXXXX__domainname.com
PRT 刷新并获取访问令牌 在将访问令牌返回给调用客户端应用程序之前,此操作会重新验证 PRT 并在必要时刷新它。

我们可以再次获取从客户端 SSO 扩展日志中获得的相关 ID,并与服务器端 Microsoft Entra 登录日志交叉引用。

屏幕截图显示了使用企业 SSO 代理插件的 Microsoft Entra 无提示登录请求。

Microsoft Entra 登录显示的信息与上一个交互式登录部分中登录操作中的 Microsoft Graph 资源相同。

非 MSAL/浏览器 SSO 应用程序登录流

以下部分演示如何检查非 MSAL/浏览器应用程序身份验证流的 SSO 扩展日志。 在此示例中,我们使用 Apple Safari 浏览器作为客户端应用程序,该应用程序正在调用 Office.com (OfficeHome) Web 应用程序。

非 MSAL/浏览器 SSO 流演练

若要成功登录,应执行以下操作:

  1. 假设已经历启动过程的用户已有 PRT。
  2. 在部署了 Microsoft SSO 扩展代理的设备上,会检查配置的功能标志,确保 SSO 扩展可以处理应用程序。
  3. 由于 Safari 浏览器遵循 Apple 网络堆栈,因此 SSO 扩展会尝试截获 Microsoft Entra 身份验证请求。
  4. PRT 用于获取所请求资源的令牌。
  5. 如果设备已注册到 Microsoft Entra,它会传递请求和设备 ID。
  6. SSO 扩展会填充浏览器请求的标头,以登录到资源。

以下客户端 SSO 扩展日志显示 SSO 扩展代理以透明方式处理请求,从而完成请求。

SSOExtensionLogs
Created Browser SSO request for bundle identifier com.apple.Safari, cookie SSO include-list (
), use cookie sso for this app 0, initiating origin https://www.office.com
Init MSIDKeychainTokenCache with keychainGroup: Masked(not-null)
[Browser SSO] Starting Browser SSO request for authority https://login.microsoftonline.com/common
[MSAL] (Default accessor) Found 1 tokens
[Browser SSO] Checking PRTs for deviceId 73796663
[MSAL] [Browser SSO] Executing without UI for authority https://login.microsoftonline.com/common, number of PRTs 1, device registered 1
[MSAL] [Browser SSO] Processing request with PRTs and correlation ID in headers (null), query aaaa0000-bb11-2222-33cc-444444dddddd
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] No cached preferred_network for authority
[MSAL] Caching AAD Environements
[MSAL] networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
[MSAL] networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
[MSAL] networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
[MSAL] networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
[MSAL] networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Found registration registered in login.microsoftonline.com, isSameAsRequestEnvironment: Yes
[MSAL] Passing device header in browser SSO for device id 43cfaf69-0f94-4d2e-a815-c103226c4c04
[MSAL] Adding SSO-cookie header with PRT Masked(not-null)
SSO extension cleared cookies before handling request 1
[Browser SSO] SSO response is successful 0
[MSAL] Keychain find status: 0
[MSAL] (Default accessor) Found 1 tokens
Request does not need UI
[MSAL] [Browser SSO] Checking PRTs for deviceId 73796663
Request complete
SSO 扩展日志组件 说明
已创建浏览器 SSO 请求 所有非 MSAL/浏览器 SSO 请求都以以下行开头:
- 捆绑标识符 IDcom.apple.Safari
- 发起源:浏览器在访问某个 Microsoft Entra ID 的登录 URL 之前访问的 Web URL (https://office.com)
为颁发机构启动浏览器 SSO 请求 解析 PCT 数,如果设备已注册:
https://login.microsoftonline.com/common,PCT 数 1、注册设备数 1
相关 ID [浏览器 SSO] 使用标头 (null) 中的 PRT 和相关 ID 处理请求,查询 <CorrelationID>。 此 ID 对于与 Microsoft Entra 服务器端登录日志进行交叉引用非常重要
设备注册 (可选)如果设备已注册 Microsoft Entra,SSO 扩展可以在浏览器 SSO 请求中传递设备标头:
- 找到注册,注册位置
- login.microsoftonline.com,isSameAsRequestEnvironment: Yes

在浏览器 SSO 中为设备 ID 43cfaf69-0f94-4d2e-a815-c103226c4c04 传递设备标头

接下来,使用从 Browser SSO 扩展日志获取的相关 ID 交叉引用 Microsoft Entra 登录日志。

屏幕截图显示了浏览器 SSO 扩展的 Microsoft Entra 登录日志中的交叉引用。

登录日志属性 说明
应用程序 在其中进行身份验证的 Microsoft Entra 租户中应用程序注册的显示名称。 在此示例中,显示名称为 OfficeHome。
应用程序 ID 也指 Microsoft Entra 租户中应用程序注册的 ClientID。
资源 客户端应用程序尝试获取其访问权限的 API 资源。 在此示例中,资源是 OfficeHome Web 应用程序。
传入令牌类型 主刷新令牌 (PRT) 的传入令牌类型显示用于获取资源访问令牌的输入令牌。
检测到身份验证方法 在“身份验证详细信息”选项卡下,Microsoft Entra SSO 插件的值是有用的指示器,可指示正在使用 SSO 扩展辅助处理浏览器 SSO 请求
Microsoft Entra SSO 扩展版本 在“其他详细信息”选项卡下,此值显示 Microsoft 企业 SSO 扩展代理应用的版本。
设备 ID 如果设备已注册,SSO 扩展可传递设备 ID 来处理设备身份验证请求。
操作系统 显示操作系统的类型。
符合 SSO 扩展可以通过传递设备标头来帮助满足合规性策略。 要求如下:
- Microsoft Entra 设备注册
- MDM 管理
- Intune 或 Intune 合作伙伴合规性
托管 指示设备受到管理。
联接类型 macOS 和 iOS(如果已注册)只能属于“已注册到 Microsoft Entra”类型。

提示

如果使用 Jamf Connect,建议遵循有关将 Jamf Connect 与 Microsoft Entra ID 集成的最新 Jamf 指南。 建议的集成模式可确保 Jamf Connect 与条件访问策略和 Microsoft Entra ID 标识保护正常配合使用。

后续步骤