iOS应用程序中集成MSAL的两个登录流

iOS应用程序中集成MSAL的两个登录流,ios,msal,intune,Ios,Msal,Intune,我们有自己的iOS应用程序,它有自己的登录机制,我们的一个客户在我们的应用程序中使用SSO登录(使用MS帐户)。现在,他们要求将MS Intune集成到应用程序中,因为他们希望在我们的应用程序上使用苹果应用程序保护策略 我已经开始集成ms Intune iOS SDK以及MSAL库,如文档中所述 但是我遇到了一个文档中描述的问题() “不使用ADAL或MSAL的应用程序 未使用ADAL或MSAL登录用户的应用程序仍可通过调用API让SDK处理该身份验证来从Intune MAM服务接收应用程序保护

我们有自己的iOS应用程序,它有自己的登录机制,我们的一个客户在我们的应用程序中使用SSO登录(使用MS帐户)。现在,他们要求将MS Intune集成到应用程序中,因为他们希望在我们的应用程序上使用苹果应用程序保护策略

我已经开始集成ms Intune iOS SDK以及MSAL库,如文档中所述

但是我遇到了一个文档中描述的问题()

“不使用ADAL或MSAL的应用程序

未使用ADAL或MSAL登录用户的应用程序仍可通过调用API让SDK处理该身份验证来从Intune MAM服务接收应用程序保护策略。如果应用程序尚未使用Azure AD对用户进行身份验证,但仍需检索应用程序保护策略以帮助保护数据,则应使用此技术。例如,如果正在使用另一个身份验证服务进行应用程序登录,或者该应用程序根本不支持登录。为此,应用程序可以在Intune MenRollmentManager实例上调用loginAndEnrollAccount方法:“

根据它的说法,为了让应用程序接收策略,它必须通过调用LoginAndEnrollAccountAPI进行登录和注册。但一旦我调用了这个API,它就会把我带到MS登录页面,在那里我可以输入电子邮件/密码,如果调用了successdelegate方法

但我的问题是,我的应用程序中有两个登录流(一个是我们自己的登录流,另一个是ms Intune的登录流),所以不确定这是否是正确的行为

如果您已经在iOS中使用ms Intune,请告诉我


谢谢。

这是您不使用MSAL时的预期行为;MAM需要一个Azure身份。如果您没有使用MSAL(或不推荐使用的ADAL),那么MAM要求用户进行身份验证以获得该身份。通过调用此方法,如果找不到现有令牌,SDK将提示用户提供凭据。可以使用“nil”作为标识调用此方法。在这种情况下,SDK将与设备上的现有托管用户注册(对于MDM),或者如果找不到现有用户,则提示用户提供用户名@Paulw11:即使我尝试使用MSAL进行身份验证,我也能够成功登录(接收到访问令牌),但由于我们的服务器API是身份验证调用,因此如何对我们自己的服务器进行进一步的身份验证呢。感谢如果您的服务器无法对Azure AD令牌进行身份验证,则用户需要完成两次身份验证。他们只需完成一次intune MAM认证;您有责任检查他们是否随后使用其他帐户登录到您的服务器,并在再次调用
loginAndEnrollAccount
之前调用
DeregisterandUnrollAccount
。@Paulw11:好的,我可以询问我们的服务器是否可以验证azure AD令牌。但如果我使用MSAL进行身份验证,我仍然需要从Intune调用LoginAndEnrollAccountAPI,以便应用程序接收策略,对吗?是的,这可能会起作用。它实际上是一种代币交换。有可能发生MITM攻击,攻击者可以拦截该令牌,然后针对您的/验证端点重播该令牌,并将其交换以访问您的后端;这种可能性有多大,影响有多大,这是你需要评估的。