我们可以在B2C中注册的本机应用程序和Web应用程序之间实现SSO吗?

时间:2019-01-09 05:49:51

标签: azure-ad-b2c

如果我们为B2C开发本机应用程序,并且在用户登录后他单击一个链接,该链接是具有B2C相同租户的Web应用程序。并且如果B2C中的SSO设置设置为“租户”。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-token-session-sso

我们可以实现SSO,即不要求用户重新输入凭据吗?

1 个答案:

答案 0 :(得分:0)

不管如何向Azure AD B2C租户注册不同的应用程序以及将SSO选项设置为什么,SSO会话都是由Azure AD B2C在浏览器会话中维护的浏览器cookie实现的。 / p>

因此,如果您可以在同一设备上的本机应用程序和网站之间共享浏览器cookie,那么您应该在两个应用程序之间体验SSO。

身份验证库,例如AppAuth for AndroidAppAuth for iOSMicrosoft Authentication Library (MSAL) for AndroidMSAL for iOS,可为您实现本机应用程序与Azure AD B2C之间的浏览器集成。他们还实施了“当前的最佳实践,即在外部用户代理(通常是浏览器)而不是嵌入式用户代理(例如通过Web视图实现的代理)中执行OAuth授权请求。”

要跟踪本机平台是否允许浏览器cookie在同一设备上的应用程序和网站之间共享是一个挑战,但是我将尝试总结我的当前理解。

对于Android,AppAuth和MSAL使用Chrome Custom Tabs,它确实允许共享cookie数据(“ cookie jar”),因此“用户不必登录到站点[例如Azure AD B2C]他们已经连接到”。

对于iOS 11,AppAuth和MSAL使用SFAuthenticationSession,它确实允许共享cookie数据,但是“对话框提示用户给出明确同意”。

对于iOS 10和9,AppAuth和MSAL使用SFSafariViewController,这也允许共享cookie数据。