如果我们为B2C开发本机应用程序,并且在用户登录后他单击一个链接,该链接是具有B2C相同租户的Web应用程序。并且如果B2C中的SSO设置设置为“租户”。
https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-token-session-sso
我们可以实现SSO,即不要求用户重新输入凭据吗?
答案 0 :(得分:0)
不管如何向Azure AD B2C租户注册不同的应用程序以及将SSO选项设置为什么,SSO会话都是由Azure AD B2C在浏览器会话中维护的浏览器cookie实现的。 / p>
因此,如果您可以在同一设备上的本机应用程序和网站之间共享浏览器cookie,那么您应该在两个应用程序之间体验SSO。
身份验证库,例如AppAuth for Android,AppAuth for iOS,Microsoft Authentication Library (MSAL) for Android和MSAL 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数据。