使用MSAL的SPA App Azure B2C身份验证。让用户登录

时间:2018-01-07 11:34:37

标签: oauth-2.0 azure-ad-b2c msal

我有一个SPA应用程序(VueJS),它使用Azure B2C和MSAL对用户进行身份验证。身份验证工作正常。

但是不起作用的是,用户没有保持登录状态。

只要我使用该应用程序,一切正常。但是当我第二天启动我的应用程序时,我必须重新登录(或者只是重新选择我想要使用的帐户),但我希望拥有相同的使用体验,例如天蓝色的门户网站。我可以在一周后重新访问门户网站,而不必重新登录。

我如何使用MSAL实现此行为?这个库甚至可以实现吗?该库使用了隐含的流程。

我可以使用另一个库吗?

2 个答案:

答案 0 :(得分:1)

通常,基于浏览器的应用程序不应该让用户登录,因为身份提供者的活动(例如密码更改或重置)可能会使持久会话无效,并且应该强制进行交互式登录。

您应该考虑为the "keep me signed in (KMSI)" capability启用的custom policies

答案 1 :(得分:0)

在回答之前......

我认为您可能需要通过查看网络跟踪工具来扩展所发生的事情。此外,正如另一个答案所说,KMSI将有所帮助,但可能不是这里唯一的问题。我建议查看是否正在设置cookie(检查下方),您的应用程序是否成功获取ID,访问令牌,并在后续身份验证请求中检查此状态。

基本

使用MSAL.js的SSO是绝对可能的,并且应该在没有太多配置的情况下发生。对于实现身份验证的基于浏览器的应用程序中的某些背景,实现SSO是cookie /会话的一个因素,而不是令牌/令牌管理。

如何运作

当您的单页应用将用户重定向到Azure AD B2C登录页面并且最终用户成功登录时,Azure AD将在该最终用户的浏览器中设置Cookie。然后,当您的应用想要为用户获取ID令牌或访问令牌时(假设初始登录中的现有签名已过期),MSAL可以在后台启动静默i帧,重定向到Azure AD具有特殊查询参数(prompt=none)的网站,并使用之前设置的Cookie。