Compartilhar via

适用于 Apple 设备的 Microsoft 企业 SSO 插件

适用于 Apple 设备的 Microsoft Enterprise SSO 插件为 macOS、iOS 和 iPadOS 上 Microsoft Entra 账户提供单一登录(SSO),并支持所有兼容 Apple 企业单一登录功能的应用程序。 该插件可为你的企业可能依赖但尚未支持最新标识库或协议的较旧应用程序提供 SSO。 此插件是在 Microsoft 与 Apple 的密切合作下开发的,可以提高应用程序的可用性,同时提供可用的最佳保护。

企业 SSO 插件目前是下列应用中的内置功能:

功能

适用于 Apple 设备的 Microsoft 企业 SSO 插件具有以下优势:

  • 它为所有支持 Apple Enterprise SSO 功能的应用程序提供Microsoft Entra帐户的 SSO。
  • 它可由任何移动设备管理 (MDM) 解决方案启用,并在设备和用户注册中受支持。
  • 它将 SSO 扩展到尚未使用Microsoft Authentication Library(MSAL)的应用程序。
  • 将 SSO 扩展到使用 OAuth 2、OpenID Connect 和 SAML 的应用程序。
  • 它原生集成了 MSAL,在启用 Microsoft Enterprise SSO 插件时为终端用户提供流畅的原生体验。

要求

若要使用适用于 Apple 设备的 Microsoft 企业 SSO 插件:

  • 设备必须 支持 并安装有包含 Microsoft Enterprise SSO 插件的应用,该插件适用于 Apple 设备。
  • 例如,设备必须在 MDM 中注册,例如通过Microsoft Intune。
  • 必须将配置推送到设备,以启用企业 SSO 插件。 Apple 需要此安全约束。
  • 必须允许 Apple 设备访问标识提供者的 URL 以及其自身的 URL。 有关更多信息,请参阅 在企业网络上使用 Apple 产品

SSO 插件在 2022 年后发布且未针对平台 SSO 的操作系统版本上运行所需允许的最低 URL 集如下:(在最新的操作系统版本上,Apple 完全依赖于其 CDN):

  • app-site-association.cdn-apple.com
  • app-site-association.networking.apple
  • config.edge.skype.com - 维护与实验配置服务(ECS)的通信可确保Microsoft能够及时响应严重的错误。

SSO 插件在平台 SSO 所针对的设备或在2022年之前发布的操作系统版本上运行时,需要允许的最低 URL 集:

  • app-site-association.cdn-apple.com
  • app-site-association.networking.apple
  • login.microsoftonline.com
  • login.microsoft.com
  • sts.windows.net
  • login.partner.microsoftonline.cn(**)
  • login.chinacloudapi.cn(**)
  • login.microsoftonline.us(**)
  • login-us.microsoftonline.com(**)
  • config.edge.skype.com(***)

( * ) 仅在 2022 年之前发布的操作系统版本上需要允许 Microsoft 域。 在最新的作系统版本中,Apple 完全依赖于其 CDN。 ( ** )仅当依赖于环境中的主权云域时,才需要允许主权云域。 ( *** ) 维护与试验配置服务(ECS)的通信可确保Microsoft能够及时响应严重错误的问题。

设备注册流程中需要允许的 URL

确保默认允许流向 此处 列出的 URL 的流量,并显式免除 TLS 拦截或检查。 这对于依赖于 TLS 挑战才能成功完成的注册流程至关重要。

重要

注意:最近更新了注册流中使用的 TLS 终结点。 请验证环境的允许列表是否反映了最新的 URL 要求,以避免中断。


Microsoft 企业 SSO 插件依赖于 Apple 的企业 SSO 框架。 Apple 的企业 SSO 框架使用称为关联域的技术,确保只有批准的 SSO 插件才能适用于每个标识提供者。 若要验证 SSO 插件的标识,每个 Apple 设备都会向标识提供者拥有的终结点发送网络请求,并阅读有关已批准的 SSO 插件的信息。除了直接联系标识提供者外,Apple 还为此信息实现了另一种缓存。

警告

如果组织使用针对数据丢失防护或租户限制等方案拦截 SSL 流量的代理服务器,请确保在 TLS 中断和检查中排除发往这些 URL 的流量。 未能排除这些 URL 会导致客户端证书身份验证干扰、导致设备注册问题以及基于设备的条件访问。 在完全排除 Apple CDN 域拦截的情况下,SSO 插件将无法可靠地工作,并且你将遇到间歇性问题,直到执行此操作。 如果你的组织使用 2022 年之后发布的 OS 版本,则无需从 TLS 检查中排除 Microsoft 登录 URL。 使用租户限制功能的客户可以对Microsoft登录 URL 执行 TLS 检查,并在请求中添加必要的标头。

注意事项

使用公司代理部署租户限制时,平台 SSO 与 Microsoft Entra ID 租户限制 v2 功能不兼容。 备用选项在 TRv2 已知限制中列出

如果组织阻止这些 URL,用户可能会看到 1012 NSURLErrorDomain error1000 com.apple.AuthenticationServices.AuthorizationError1001 Unexpected 等错误。

其他可能需要允许的 Apple URL 记录在其支持文章《在企业网络上使用 Apple 产品》中。

iOS 要求

  • 必须在设备上安装 iOS 13.0 或更高版本。
  • 必须在设备上安装提供适用于 Apple 设备的 Microsoft 企业 SSO 插件的 Microsoft 应用程序。 此应用是 Microsoft Authenticator 应用

macOS 要求

  • 必须在设备上安装 macOS 10.15 或更高版本。
  • 必须在设备上安装提供适用于 Apple 设备的 Microsoft 企业 SSO 插件的 Microsoft 应用程序。 此应用是 Intune Company Portal 应用

启用 SSO 插件

使用以下信息可通过 MDM 启用 SSO 插件。

Microsoft Intune配置

如果使用 Microsoft Intune 作为 MDM 服务,可以使用内置的配置文件设置来启用 Microsoft Enterprise SSO 插件:

  1. 对配置文件的 SSO 应用插件设置进行配置。
  2. 如果尚未分配配置文件,请将配置文件分配给用户或设备组

在每台设备下次向 Intune 上线时,启用 SSO 插件的配置文件设置会自动应用于该组的设备。

其他 MDM 服务的手动配置

如果你不使用 Intune 进行 MDM 管理,可以为 Apple 设备配置一个可扩展的单一登录配置文件。 使用以下参数来配置 Microsoft 企业 SSO 插件及其配置选项。

。iOS 设置:

  • 扩展 IDcom.microsoft.azureauthenticator.ssoextension
  • 团队 ID:iOS 不需要此字段。

macOS 设置:

  • 扩展 IDcom.microsoft.CompanyPortalMac.ssoextension
  • 团队 IDUBF8T346G9

通用设置:

  • 类型:重定向
    • https://login.microsoftonline.com
    • https://login.microsoft.com
    • https://sts.windows.net
    • https://login.partner.microsoftonline.cn
    • https://login.chinacloudapi.cn

部署指南

使用以下部署指南通过所选 MDM 解决方案启用 Microsoft 企业 SSO 插件:

Intune:

Jamf Pro:

其他 MDM:

更多配置选项

可以添加更多配置选项,将 SSO 功能扩展到其他应用。

启用不使用 MSAL 的应用程序的 SSO

SSO 插件允许任何应用程序参与 SSO,即使该应用程序不是通过使用 Microsoft SDK(例如 Microsoft Authentication Library (MSAL))开发的。

具有以下特征的设备会自动安装 SSO 插件:

  • 在 iOS 或 iPadOS 上下载 Authenticator 应用,或在 macOS 上下载 Intune Company Portal应用。
  • MDM 已向组织注册其设备。

组织可能会使用 Authenticator 应用来应对多重身份验证、无密码身份验证和条件访问等方案。 使用 MDM 提供程序可以为应用程序启用 SSO 插件。 Microsoft 已经简化了通过 Microsoft Intune 配置插件的过程。 允许列表用于配置这些应用程序来使用 SSO 插件。

重要

Microsoft 企业 SSO 插件仅支持使用本机 Apple 网络技术或 Web 视图的应用。 它不支持提供自己的网络层实现的应用程序。

使用以下参数为不使用 MSAL 的应用配置 Microsoft 企业 SSO 插件。

重要

无需向此允许列表添加使用Microsoft Authentication Library的应用。 默认情况下,这些应用会参与 SSO。 大多数Microsoft生成的应用都使用Microsoft Authentication Library。

为所有托管应用启用 SSO

  • 键: Enable_SSO_On_All_ManagedApps
  • 类型Integer
  • :1 或 0。 默认情况下,此值设置为 0。

如果启用此标志(将其值设置为 1),则不在 AppBlockList 中的所有 MDM 托管应用都可以参与 SSO。

为特定应用启用 SSO

  • 键: AppAllowList
  • 类型String
  • :允许加入 SSO 的应用程序的应用程序捆绑包 ID 的逗号分隔列表。
  • 示例com.contoso.workapp, com.contoso.travelapp

注意事项

默认允许 Safari 和 Safari 视图服务参与 SSO。 可以通过在 AppBlockList 中添加 Safari 和 Safari 视图服务的捆绑 ID 将其配置为参与 SSO。 iOS 捆绑 ID:[com.apple.mobilesafari, com.apple.SafariViewService] macOS BundleID: [com.apple.Safari]

为具有特定捆绑 ID 前缀的所有应用启用 SSO

  • 键: AppPrefixAllowList
  • 类型String
  • :允许加入 SSO 的应用程序的应用程序包 ID 前缀的逗号分隔列表。 此参数会使所有以特定前缀开头的应用都可加入 SSO。 对于 iOS,默认值将设置为 com.apple.,这将为所有 Apple 应用启用 SSO。 对于 macOS,默认值将设置为 com.apple.com.microsoft.,这将为所有 Apple 和 Microsoft 应用启用 SSO。 管理员可以覆盖默认值或将应用添加到 AppBlockList,以防止它们参与 SSO。
  • 示例com.contoso., com.fabrikam.

为特定应用禁用 SSO

  • 键: AppBlockList
  • 类型String
  • :允许不参与 SSO 的应用程序的逗号分隔的应用程序捆绑 ID 列表。
  • 示例com.contoso.studyapp, com.contoso.travelapp

若要为 Safari 或 Safari 视图服务禁用 SSO,必须通过将其捆绑 ID 添加到 来显式禁用AppBlockList

  • iOS:com.apple.mobilesafaricom.apple.SafariViewService
  • macOS:com.apple.Safari

注意事项

使用 Microsoft Authentication Library 的应用无法通过此设置禁用 SSO。

对特定应用程序启用通过 cookies 来进行的 SSO

某些具有高级网络设置的 iOS 应用在启用 SSO 后,可能会遇到意想不到的问题。 例如,可能有错误消息指出网络请求已取消或中断。

如果即使在你通过其他设置启用 SSO 之后,用户在登录到某个应用程序时也会遇到问题,请尝试将该应用程序添加到 AppCookieSSOAllowList 以解决问题。

注意事项

通过 Cookie 机制使用 SSO 存在严重的局限性。 例如,它与Microsoft Entra ID条件访问策略不兼容,它仅支持单个帐户。 除非微软工程或支持团队明确建议,您不应使用此功能,仅适用于被确定与常规SSO不兼容的有限应用程序。

  • 键: AppCookieSSOAllowList
  • 类型String
  • :可加入 SSO 的应用程序的应用程序包 ID 前缀的逗号分隔列表。 以列出的前缀开头的所有应用都允许加入 SSO。
  • 示例com.contoso.myapp1, com.fabrikam.myapp2

其他要求:若要使用 AppCookieSSOAllowList 为应用程序启用 SSO,还必须添加其捆绑 ID 前缀 AppPrefixAllowList

请仅对发生意外登录失败的应用程序尝试此配置。 此密钥仅用于 iOS 应用,不适用于 macOS 应用。

键汇总

注意事项

本节中所述的密钥仅适用于不使用Microsoft Authentication Library的应用。

密钥 类型
Enable_SSO_On_All_ManagedApps 整数 1 表示为所有托管应用启用 SSO,0 表示为所有托管应用禁用 SSO。
AppAllowList 字符串
(逗号分隔的列表)
允许其参与 SSO 的应用程序的捆绑 ID。
AppBlockList 字符串
(逗号分隔的列表)
不允许参与 SSO 的应用程序的 Bundle ID。
AppPrefixAllowList 字符串
(逗号分隔的列表)
允许参与 SSO 的应用程序的捆绑 ID 前缀。 对于 iOS,默认值将设置为 com.apple.,这将为所有 Apple 应用启用 SSO。 对于 macOS,默认值将设置为 com.apple.com.microsoft.,这将为所有 Apple 和 Microsoft 应用启用 SSO。 开发人员、客户或管理员可以覆盖默认值或将应用添加到 AppBlockList,以防止它们参与 SSO。
AppCookieSSOAllowList 字符串
(逗号分隔的列表)
允许参与 SSO 的应用程序的捆绑 ID 前缀,但这些应用使用特殊网络设置,并且在使用其他设置时 SSO 会出现问题。 添加到 AppCookieSSOAllowList 的应用也必须添加到 AppPrefixAllowList。 请注意,此密钥仅用于 iOS 应用,而不适用于 macOS 应用。

常见场景设置

  • 方案:我想要为大部分而不是所有托管应用程序启用 SSO。

    密钥
    Enable_SSO_On_All_ManagedApps 1
    AppBlockList 要阻止其参与 SSO 的应用的捆绑 ID(逗号分隔的列表)。
  • 方案:我想要为 Safari 禁用 SSO(默认已启用),但要为所有托管应用启用 SSO。

    密钥
    Enable_SSO_On_All_ManagedApps 1
    AppBlockList 不希望参与 SSO 的 Safari 应用捆绑 ID(以逗号分隔的列表)。
    • 对于 iOS:com.apple.mobilesafaricom.apple.SafariViewService
    • 对于 macOS:com.apple.Safari
  • 方案:我想要对所有托管应用以及少量的非托管应用启用 SSO,但要为其他几个应用禁用 SSO。

    密钥
    Enable_SSO_On_All_ManagedApps 1
    AppAllowList 要启用以参与 SSO 的应用程序的捆绑 ID(逗号分隔的列表)。
    AppBlockList 要阻止其参与 SSO 的应用的捆绑 ID(逗号分隔的列表)。
在 iOS 设备上查找应用程序包标识符

Apple 不提供从 App Store 获取应用程序包 ID 的简单方法。 要获取要用于 SSO 的应用的应用程序包 ID,最简单的方法是询问供应商或应用开发人员。 如果该选项不可用,那么可使用 MDM 配置来查找应用程序包 ID:

  1. 在 MDM 配置中暂时启用以下标志:

    • 键: admin_debug_mode_enabled
    • 类型Integer
    • :1 或 0
  2. 当此标志启用时,在设备上登录到你想要知道其应用程序包 ID 的 iOS 应用。

  3. 在 Authenticator 应用中,选择“帮助”>“发送日志”>“查看日志”。

  4. 在日志文件中,查找以下行:[ADMIN MODE] SSO extension has captured following app bundle identifiers。 此行应捕获 SSO 扩展可见的所有应用程序包 ID。

使用应用程序包 ID 为应用配置 SSO。 完成后禁用管理模式。

允许用户通过不使用 MSAL 的应用程序和 Safari 浏览器登录

默认情况下,Microsoft 企业 SSO 插件在通过 MSAL 进行新令牌获取期间,被其他应用调用时会获取共享凭据。 根据配置,Microsoft 企业 SSO 插件也可以在被不使用 MSAL 的应用调用时获取共享凭据。

启用 browser_sso_interaction_enabled 标志后,不使用 MSAL 的应用可执行初始启动并获取共享凭据。 Safari 浏览器也可执行初始启动并获取共享凭据。

如果 Microsoft Enterprise SSO 插件还没有共享凭据,则每当从 Safari 浏览器、ASWebAuthenticationSession、SafariViewController 或其他允许的本机应用程序内Microsoft Entra URL 请求登录时,它就会尝试获取一个。

使用以下这些参数启用标志:

  • 键: browser_sso_interaction_enabled
  • 类型Integer
  • :1 或 0。 默认情况下,该值设置为 1。

iOS 和 macOS 都需要此设置,以便 Microsoft 企业 SSO 插件可以在所有应用中提供一致的体验。 此设置默认处于启用状态,仅当最终用户无法使用其凭据登录时,才应禁用此设置。

禁用 OAuth 2 应用程序提示

如果应用程序提示你的用户进行登录,即使 Microsoft 企业 SSO 插件对设备上的其他应用程序起作用,该应用也可能在协议层绕过 SSO。 共享的凭据也会被此类应用程序忽略,因为插件通过将凭据追加到允许的应用程序发送的网络请求中来提供 SSO。

这些参数指定 SSO 扩展是否应阻止本机或 Web 应用程序在协议层绕过 SSO 并强制向用户显示登录提示。

为了在设备上的所有应用中获得一致的 SSO 体验,建议为不使用 MSAL 的应用启用其中一个设置。 仅当用户遇到意外提示时,才应为使用 MSAL 的应用启用此功能。

不使用 Microsoft Authentication Library 的应用程序:

禁用应用提示并显示帐户选取器:

  • 键: disable_explicit_app_prompt
  • 类型Integer
  • :1 或 0。 默认情况下,该值设置为 1,此默认设置会减少提示。

禁用应用提示并自动从匹配的 SSO 帐户列表中选择帐户:

  • 键: disable_explicit_app_prompt_and_autologin
  • 类型Integer
  • :1 或 0。 默认情况下,此值设置为 0。
使用Microsoft Authentication Library的应用:

如果使用应用保护策略,以下设置不推荐。

禁用应用提示并显示帐户选取器:

  • 键: disable_explicit_native_app_prompt
  • 类型Integer
  • :1 或 0。 默认情况下,此值设置为 0。

禁用应用提示并自动从匹配的 SSO 帐户列表中选择帐户:

  • 键: disable_explicit_native_app_prompt_and_autologin
  • 类型Integer
  • :1 或 0。 默认情况下,此值设置为 0。

意外出现的 SAML 应用程序提示信息

如果应用程序提示你的用户进行登录,即使 Microsoft 企业 SSO 插件对设备上的其他应用程序起作用,该应用也可能在协议层绕过 SSO。 如果应用程序使用 SAML 协议,则 Microsoft 企业 SSO 插件将无法向应用提供 SSO。 应用程序供应商应收到有关此行为的通知,并在其应用中进行更改,使其不绕过 SSO。

更改已启用 MSAL 的应用程序的 iOS 体验

使用 MSAL 的应用将始终针对交互式请求以本机方式调用 SSO 扩展。 在某些 iOS 设备上,可能不需要这样做。 具体而言,如果用户还需要在Microsoft Authenticator应用中完成多重身份验证,则对应用的交互式重定向可能会提供更好的用户体验。

可以使用 disable_inapp_sso_signin 标志配置此行为。 如果启用此标志,则使用 MSAL 的应用将重定向到所有交互式请求的 Microsoft Authenticator 应用。 此标志不会影响来自这些应用的无提示令牌请求、不使用 MSAL 的应用的行为或 macOS 应用。 默认情况下,此标志处于禁用状态。

  • 键: disable_inapp_sso_signin
  • 类型Integer
  • :1 或 0。 默认情况下,此值设置为 0。

配置Microsoft Entra设备注册

对于 Intune 托管的设备,当用户尝试访问资源时,Microsoft Enterprise SSO 插件可以执行Microsoft Entra设备注册。 这可实现更简化的最终用户体验。

使用以下配置在 iOS/iPadOS 上使用 Microsoft Intune 启用及时注册:

  • 键: device_registration
  • 类型String
  • 值:{{DEVICEREGISTRATION}}

在此处详细了解实时注册。

条件访问策略和密码更改

适用于 Apple 设备的 Microsoft Enterprise SSO 插件与各种 Microsoft Entra 条件访问策略和密码更改事件兼容。 需要启用 browser_sso_interaction_enabled 才能实现兼容性。

以下部分介绍了兼容的事件和策略:

密码更改和令牌吊销

当用户重置其密码时,将吊销之前颁发的所有令牌。 如果用户在密码重置事件后尝试访问资源,则用户通常需要在每个应用中重新登录。 启用 Microsoft 企业 SSO 插件后,系统会要求用户登录参与 SSO 的第一个应用程序。 Microsoft 企业 SSO 插件将在当前处于活动状态的应用程序顶部显示其自己的用户界面。

Microsoft Entra多重身份验证

多重身份验证是一种过程。在该过程中,系统会在用户登录时提示其输入其他形式的标识,例如在其手机上输入代码或提供指纹扫描。 可以为特定资源启用多重身份验证。 启用 Microsoft 企业 SSO 插件后,系统会要求用户在需要它的第一个应用程序中执行多重身份验证。 Microsoft 企业 SSO 插件将在当前处于活动状态的应用程序顶部显示其自己的用户界面。

用户登录频率

登录频率定义了在用户尝试访问资源时被要求重新登录之前所经过的时间段。 如果用户在各种应用中经过一段时间后试图访问资源,则用户通常需要在每个应用中重新登录。 启用 Microsoft 企业 SSO 插件后,系统会要求用户登录参与 SSO 的第一个应用程序。 Microsoft 企业 SSO 插件将在当前处于活动状态的应用程序顶部显示其自己的用户界面。

使用 Intune 简化配置

可以使用 Intune 作为 MDM 服务来方便配置 Microsoft 企业 SSO 插件。 例如,可以使用 Intune 启用该插件,并将旧应用添加到允许列表,以便它们实现 SSO。

有关详细信息,请参阅使用 Intune 部署适用于 Apple 设备的 Microsoft 企业 SSO 插件

在应用程序中使用 SSO 插件

适用于 Apple 设备的 MSAL 1.1.0 及更高版本支持适用于 Apple 设备的 Microsoft 企业 SSO 插件。 建议的方式是为 Microsoft 企业 SSO 插件添加支持。 它可确保获取 Microsoft 标识平台的完整功能。

如果要为一线工作人员方案构建应用程序,请参阅适用于 iOS 设备的共享设备模式,以获取设置信息。

了解 SSO 插件的工作原理

Microsoft 企业 SSO 插件依赖于 Apple 企业 SSO 框架。 加入该框架的标识提供者可以拦截其域的网络流量,并改进或更改这些请求的处理方式。 例如,SSO 插件可以显示更多 UI,以安全方式收集最终用户凭据、需要进行 MFA 或以无提示方式向应用程序提供令牌。

本机应用程序还可以实现自定义操作,并直接与 SSO 插件进行通信。 有关详细信息,请参阅此 2019 Apple 全球开发者会议视频

提示

若要详细了解 SSO 插件的工作原理以及如何对 Microsoft 企业 SSO 扩展进行故障排除,请查看面向 Apple 设备的 SSO 故障排除指南

使用 MSAL 的应用程序

适用于 Apple 设备的 MSAL 版本 1.1.0 及更高版本支持工作和学校帐户本机使用适用于 Apple 设备的 Microsoft 企业 SSO 插件。

如果遵循所有建议的步骤并使用默认的重定向 URI 格式,则无需进行任何特殊配置。 在具有 SSO 插件的设备上,MSAL 会自动为所有交互式和无提示令牌请求调用它。 还会为帐户枚举和帐户删除操作调用它。 由于 MSAL 实现了依赖于自定义操作的本机 SSO 插件协议,此设置可为最终用户提供最流畅的本机体验。

在 iOS 和 iPadOS 设备上,如果 MDM 未启用 SSO 插件,但设备上存在Microsoft Authenticator应用,则 MSAL 将 Authenticator 应用用于任何交互式令牌请求。 Microsoft 企业 SSO 插件与 Authenticator 应用共享 SSO。

不使用 MSAL 的应用程序

如果管理员将不使用 MSAL 的应用程序添加到允许列表中,则这些应用程序仍然可以获得 SSO。

只要满足以下条件,便无需更改这些应用中的代码:

  • 应用程序使用 Apple 框架运行网络请求。 例如,这些框架包括 WKWebViewNSURLSession
  • 应用程序使用标准协议与Microsoft Entra ID通信。 例如,这些协议包括 OAuth 2、SAML 和 WS 联合身份验证。
  • 应用程序不在本机 UI 中收集纯文本用户名和密码。

在这种情况下,应用程序创建网络请求并打开 Web 浏览器以让用户登录时,系统将提供 SSO。 当用户重定向到Microsoft Entra登录 URL 时,SSO 插件将验证 URL 并检查该 URL 的 SSO 凭据。 如果找到凭据,SSO 插件会将其传递给Microsoft Entra ID,这会授权应用程序完成网络请求,而无需要求用户输入凭据。 此外,如果设备已被 Microsoft Entra ID 识别,SSO 插件会传递设备证书以满足设备条件访问检查。

为了支持非 MSAL 应用的 SSO,SSO 插件实现的协议类似于 什么是主刷新令牌?

与基于 MSAL 的应用相比,SSO 插件对非 MSAL 应用执行的操作更加透明。 它与应用提供的现有浏览器登录体验集成。

最终用户会看到熟悉的体验,无需在每个应用程序中都再次登录。 例如,SSO 插件不会显示本机帐户选取器,而是将 SSO 会话添加到基于 Web 的帐户选取器体验中。

设备标识密钥存储

2024年3月,Microsoft宣布,Microsoft Entra ID将从苹果的密钥链过渡到 Apple 的安全 Enclave,用于存储设备标识密钥。 从 2025 年 8 月开始,安全存储推出将使安全 Enclave 成为所有新设备注册的默认密钥存储。 默认情况下,新的设备注册将使用安全存储模型。 不支持安全 Enclave 的现有设备将有注册密钥存储在用户的密钥链中(但不存储在旧登录密钥链中)。 没有安全存储的设备的现有功能保持不变。

如果应用程序或 MDM 解决方案依赖于通过密钥链访问Microsoft Entra设备注册密钥,则必须更新它们以使用 Microsoft Authentication Library (MSAL) 和企业 SSO 插件来保持与Microsoft标识平台的兼容性。

使用 Microsoft Authentication Library (MSAL) 读取注册设备信息

可以调用此可用的 MSAL API 来读取详细的设备注册:

- (void)getWPJMetaDataDeviceWithParameters:(nullable MSALParameters *)parameters
                               forTenantId:(nullable NSString *)tenantId
                           completionBlock:
                               (nonnull MSALWPJMetaDataCompletionBlock)
                                   completionBlock;

在此处找到有关此 API 文档的更多详细信息。

对基于 Secure Enclave 的设备身份进行故障排除

启用基于安全隔区的存储后,可能会遇到一条错误消息,提示你设置设备以获取访问权限。 此错误消息指示应用程序无法识别设备的托管状态,这表明与新的密钥存储位置不兼容。

条件访问错误消息的屏幕截图,告知用户必须先管理设备,然后才能访问此资源。

此错误显示在Microsoft Entra ID登录日志中,其中包含以下详细信息:

  • 登录错误代码:530003
  • 失败原因:Device is required to be managed to access this resource.

如果测试期间看到此错误消息,请先确保已成功启用 SSO 扩展,并已安装任何必需的特定于应用程序的扩展(例如,适用于 Chrome 的 Microsoft 单一登录)。 如果继续看到此消息,建议联系应用程序的供应商,提醒他们与新存储位置不兼容。

安全区疑难解答

如果必须排查安全 Enclave 问题,可以通过更新 Apple 设备的 MDM 配置中的以下密钥来禁用它:

  • 键: use_most_secure_storage
  • 类型Integer
  • :0

警告

在故障排除期间只能禁用 Secure Enclave。

故障排除:禁用 Secure Enclave 进行测试

如果出于任何原因需要禁用 Secure Enclave,请执行以下步骤:

  1. 更新配置:通过在 MDM 配置中将整数类型的标志设置为use_most_secure_storage禁用0

  2. 注销设备:使用以下方法之一删除设备注册:

  • Microsoft Authenticator:导航到设备注册菜单并按照注销步骤操作。
    1. 从左上角的“主”屏幕中选择菜单...
    2. 按“设置”按钮,选择“设备注册”。
    3. 请按设备当前注册公司的名称进行注册。
    4. 按“注销设备”。
  • Intune Company Portal:登录Company Portal并选择“设备”选项卡:
    1. 从设备列表中选择设备。
    2. 在名称下,按 ...一个菜单将弹出。
    3. 选择“删除设备”。
  1. 重新注册设备:注销后,使用以下任一方法再次注册设备:
  • Intune Company Portal:选择设备并再次注册
  • Microsoft Authenticator:转到菜单,选择“设备注册”,然后再次注册设备(注意:此方法在 macOS 上不可用)

重要

必须注销设备,并重新注册存储位置更改才能生效。 只需在不重新注册的情况下更新配置标志就不会更改现有设备注册的存储位置。

禁用安全存储

若要将租户选择退出安全存储发布,请联系 Microsoft 客户支持以请求不参与安全存储部署。 处理后,您的租户将暂时不包括在此部署计划中,最长可达 6 个月。 在您的租户中,任何之前已注册到安全存储空间的设备,都必须遵循先前的指南,在临时选择退出完成后,删除并重新添加设备。

重要

安全存储的临时排除期限限制为 6 个月,因此不建议这样做,因为这可能会阻止组织从当前和未来的安全改进中受益,并可能在 Microsoft 最终淘汰传统存储方法时减少可用的支持选项。

受影响的方案

以下列表包含受到这些更改影响的一些常见方案。 默认情况下,任何依赖于通过 Apple 密钥链访问设备标识项目的应用程序都将受到影响。

注意事项

这不是一个详尽的列表,我们建议应用程序使用者和供应商测试其软件,以便与这一新数据存储兼容。

浏览器中已注册/已登记设备的条件访问策略支持

启用基于安全 Enclave 的存储后,浏览器需要特定配置来支持设备条件访问策略:

Safari (iOS 和 macOS)

  • 内置 SSO 集成 - 无需其他配置

Google Chrome (macOS)

  • 安装 Microsoft Single Sign On 扩展,或
  • 升级到 Chrome 135+ 以自动支持企业单点登录

Microsoft Edge (iOS 和 macOS)

Firefox (macOS)

macOS 15.3 和 iOS 18.1.1 影响企业 SSO 的重要更新

概述

macOS 15.3 和 iOS 18.1.1 的最新更新可防止企业 SSO 扩展框架正常运行,从而导致所有与 Entra ID 集成的应用中出现意外的身份验证失败。 受影响的用户也可能遇到标记为“4s8qh”的错误。

根源

此问题的根本原因是基础 PluginKit 层的潜在缺陷,这妨碍了操作系统启动 Microsoft Enterprise SSO 扩展。 苹果正在调查这个问题,并与我们合作解决。

识别受影响的用户

若要确定用户是否受到影响,可以收集 sysdiagnose,并查找以下错误信息:

“Error Domain=PlugInKit Code=16 other version in use”

下面是此错误的外观示例:

Request for extension <EXConcreteExtension: 0x60000112d080> {id = com.microsoft.CompanyPortalMac.ssoextension} failed with error Error Domain=PlugInKit Code=16 "other version in use: <id<PKPlugIn>: 0x1526066c0; core = <[...] [com.microsoft.CompanyPortalMac.ssoextension(5.2412.0)],[...] [/Applications/Company Portal.app/Contents/PlugIns/Mac SSO Extension.appex]>, instance = [(null)], state = 1, useCount = 1>" UserInfo={NSLocalizedDescription=other version in use: <id<PKPlugIn>: 0x1526066c0; core = <[...] [com.microsoft.CompanyPortalMac.ssoextension(5.2412.0)],[...] [/Applications/Company Portal.app/Contents/PlugIns/Mac SSO Extension.appex]>, instance = [(null)], state = 1, useCount = 1>}

恢复步骤

如果用户受到此问题的影响,他们可以重新启动其设备以恢复。

另请参阅

了解适用于 iOS 设备的共享设备模式

了解如何对 Microsoft 企业 SSO 扩展进行故障排除