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

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

注意

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

阶段Goals

  • 使用 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 对用户进行身份验证,请参阅 将应用程序迁移到适用于 iOS 和 macOS 的 MSAL ,详细了解如何将应用从 ADAL 迁移到 MSAL。

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

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

配置 MSAL

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

以下各点包含用于配置 MSAL 并链接到它的其他信息。 如果它们适用于应用程序,请遵循这些规则。

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

为 Intune 应用 SDK 配置 MSAL 设置

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

  • ADALClientId
  • ADALAuthority
  • ADALRedirectUri
  • ADALRedirectScheme
  • ADALCacheKeychainGroupOverride

需要以下配置:

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

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

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

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

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

    注意

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

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

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

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

警告

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

退出条件

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

常见问题

ADAL 呢?

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

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

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

后续步骤

完成上述所有退出条件后,请继续学习第 3 阶段:Intune SDK 集成到 iOS 应用