React Native MSAL - SSO 无法从本机到 Web - iOS

问题描述 投票:0回答:2

我们正在开发两个新的 React Native 应用程序,并且需要在这两个地方集成 Azure AD 身份验证。我们还有启用了 Azure AD 的现有 Web 应用程序,用户可以从我们的(新)本机应用程序打开 Web 链接。

我们决定使用 MSAL 库(react-native-msal)来实现身份验证部分,主要是为了支持本机应用程序 + 我们在 Safari 浏览器中打开的 Web 应用程序之间的 SSO。

我们已遵循react-native-msal库建议的所有步骤,并且能够在两个本机应用程序之间实现SSO。

但是,当我登录到一个本机应用程序并尝试使用 React 链接打开 Web 应用程序链接时,该 Web 应用程序会提示输入登录凭据。

注: 为了通过本机应用程序对用户进行身份验证,我们使用“Authentication Session”和“prefersEphemeralWebBrowserSession = false”,理想情况下应与 Safari 浏览器共享 SSO cookie。

但显然,这似乎行不通。

我想了解一下这个问题,并看看其他人是否也面临这个问题?还是只有我们?

ios react-native azure-active-directory single-sign-on azure-ad-msal
2个回答
1
投票

在这种情况下,您需要一个首选用户令牌并将其与登录请求一起发送。为了同时捕获用户的详细信息,我建议将详细信息存储在所有应用程序都知道的域范围 cookie 中。

  // Store the user details after login
document.cookie = "[email protected];domain=.xyz-corp.com;path=/"

  // use the user details
 var user = getCookieByName("msal_username"); 
  userAgentApplication.loginRedirect(scopes, "&login_hint=" + user);

最后,您需要在您的应用程序中实现这一点。


1
投票

嗯,原来是模拟器的问题。此功能仅适用于物理设备(iPhone/iPad),不适用于模拟器。

这应该已记录在react-native-msal 的文档中。

© www.soinside.com 2019 - 2024. All rights reserved.