第 2 阶段:MSAL 先决条件和设置

Intune 应用 SDK 将 Microsoft 身份验证库用于其身份验证和条件启动方案。 它还依赖 MSAL 向 MAM 服务注册用户标识,以便在没有设备注册方案的情况下进行管理。

注意

本指南分为几个不同的阶段。 首先查看 第 1 阶段:规划集成

阶段目标

  • 向 Microsoft Entra ID 注册应用程序。
  • 将 MSAL 集成到 iOS 应用程序中。
  • 验证你的应用程序能否获取授予对受保护资源的访问权限的令牌。

设置和配置 Microsoft Entra 应用注册

MSAL 要求应用向 Microsoft Entra ID 注册,并创建唯一的客户端 ID 和重定向 URI,以保证授予应用的令牌的安全性。 如果你的应用程序已使用 MSAL 进行自己的身份验证,则应该已经有一个与应用关联的 Microsoft Entra 应用注册/客户端 ID/重定向 URI。

如果你的应用尚未使用 MSAL,则需要在 Microsoft Entra ID 中配置应用注册,并指定 Intune SDK 应使用的客户端 ID 和重定向 URI。

如果你的应用当前使用 ADAL 对用户进行身份验证,请参阅将应用从 ADAL 迁移到 MSAL 的详细信息,将 应用程序迁移到适用于 iOS 和 macOS 的 MSAL

建议应用链接到最新版本的 MSAL

按照 安装 部分将 MSAL 二进制文件放入应用中。

配置 MSAL

按照 配置 部分配置 MSAL。 确保按照配置部分中的所有步骤操作。 如果你的应用已在 Microsoft Entra ID 中注册,请忽略第一步。

以下几点包含用于配置 MSAL 并链接到 MSAL 的其他信息。 如果适用于您的应用程序,请遵循以下内容。

  • 如果应用未定义任何密钥链访问组,请将应用的捆绑包 ID 添加为第一个组。
  • 通过添加到 com.microsoft.adalcache 密钥链访问组来启用 MSAL 单一登录 (SSO) 。
  • 如果是显式设置 MSAL 共享缓存密钥链组,请确保将其设置为 <appidprefix>.com.microsoft.adalcache。 除非你重写它,否则 MSAL 将为你设置此项。 如果要指定要替换 com.microsoft.adalcache的自定义密钥链组,请在 IntuneMAMSettings 下的 Info.plist 文件中使用密钥 ADALCacheKeychainGroupOverride.

配置 Intune 应用 SDK 的 MSAL 设置

在 Microsoft Entra ID 中为应用程序配置应用注册后,可以配置 Intune 应用 SDK,以便在针对 Microsoft Entra ID 进行身份验证期间使用应用注册中的设置。 有关填充以下设置的信息,请参阅配置 Intune 应用 SDK 的设置

  • ADALClientId
  • ADALAuthority
  • ADALRedirectUri
  • ADALRedirectScheme
  • ADALCacheKeychainGroupOverride

需要以下配置:

  1. 在项目的 Info.plist 文件中,在具有键名称ADALClientIdIntuneMAMSettings 字典下,指定要用于 MSAL 调用的客户端 ID。

  2. 如果映射到步骤 1 中配置的客户端 ID 的 Microsoft Entra 应用注册配置为仅在单个 Microsoft Entra 租户中使用,请在应用程序的 Info.plist 文件中的 IntuneMAMSettings 字典下配置ADALAuthority密钥。 指定 MSAL 用于获取 Intune 移动应用程序管理服务令牌的 Microsoft Entra 机构。

  3. 此外,在具有键名称ADALRedirectUriIntuneMAMSettings 字典下,指定要用于 MSAL 调用的重定向 URI。 或者,如果应用程序的重定向 URI 采用格式scheme://bundle_id,也可以改为指定ADALRedirectScheme

    或者,应用可以在运行时替代这些 Microsoft Entra 设置。 为此,只需在类上IntuneMAMSettings设置 aadAuthorityUriOverride、 和aadClientIdOverrideaadRedirectUriOverride属性。

  4. 确保遵循向 Intune 移动应用管理 (MAM) 服务授予 iOS 应用权限的步骤。 使用“授予应用对 Intune 移动应用管理服务的访问权限”下的 Intune SDK 入门指南中的说明。

    注意

    如果应用保护策略与托管设备相关,则还需要为集成了 Intune 的应用程序创建应用配置文件。

    建议将 Info.plist 方法用于所有静态且无需在运行时确定的设置。 运行时分配给 IntuneMAMSettings 类属性的值优先于 Info.plist 中指定的任何对应值,并且即使在重启应用后仍将保留。 SDK 将继续使用它们进行策略检查,直到取消注册用户或清除或更改值。

使用 MSAL 进行应用启动的身份验证时的特殊注意事项

建议应用程序不要使用 SFSafariViewController、SFAuththenticationSession 或 ASWebAuthenticationSession 作为其 Web 视图来执行任何应用启动的 MSAL 交互式身份验证操作。 默认情况下,MSAL 使用 ASWebAuthenticationSession,因此应用开发人员应 显式将 web 视图类型设置为 WKWebView。 如果出于某种原因,应用必须使用除 WKWebView 以外的 Web 视图类型来执行任何交互式 MSAL 身份验证操作,则它还必须设置为SafariViewControllerBlockedOverridetrue应用程序的 Info.plist 中的字典下IntuneMAMSettings

警告

这将关闭 Intune 的 SafariViewController 挂钩以启用身份验证会话。 如果应用程序使用 SafariViewController 查看公司数据,则这确实存在应用中其他位置的数据泄露风险,因此应用程序不应在任何这些 Web 视图类型中显示公司数据。

退出条件

  • 是否已在 Microsoft Entra 应用注册页上注册应用?
  • 是否已将 MSAL 集成到应用程序中?
  • 是否已通过生成重定向 URI 并在 MSAL 配置文件中设置它来启用代理身份验证?
  • 是否已确保 IntuneMAMSettings 字典中 MSAL 所需的配置信息与 Microsoft Entra 应用注册中的配置信息匹配?

常见问题

ADAL 呢?

Microsoft 以前的身份验证库 Azure Active Directory 身份验证库 (ADAL) 弃用

如果应用程序已集成 ADAL,请参阅 更新应用程序以使用 MSAL (身份验证库Microsoft) 。 若要将应用从 ADAL 迁移到 MSAL,请参阅 将应用程序迁移到适用于 iOS 和 macOS 的 MSAL

建议在集成 Intune 应用 SDK 之前从 ADAL 迁移到 MSAL。

后续步骤

完成上述所有退出条件后,继续执行阶段 3:将 Intune SDK 集成到 iOS 应用。