React Native MSAL - SSO不能从Native到Web - iOS工作



我们正在开发两个新的react native应用程序,需要在这两个地方集成Azure AD认证。我们也有现有的web应用程序,Azure AD启用,用户可以从我们的(新的)本地应用程序打开web链接。

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

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

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

注意:为了通过本地应用验证用户,我们使用">认证会话";与prefersEphemeralWebBrowserSession = false";理想情况下应该分享SSO和Safari浏览器cookie。

但很明显,这似乎并不工作。

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

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

// Store the user details after login
document.cookie = "msal_details=Paul@xyz-corp.com;domain=.xyz-corp.com;path=/"
// use the user details
var user = getCookieByName("msal_username"); 
  userAgentApplication.loginRedirect(scopes, "&login_hint=" + user);

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

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

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

相关内容

  • 没有找到相关文章

最新更新