Azure Active Directory Saty登录或记住我的选项

时间:2016-09-28 19:31:07

标签: azure-active-directory remember-me

我们计划从当前基于自定义窗体的身份验证迁移到Azure Active Directory。在过程中想知道以下是否可能(下面的自定义表单身份验证实现)。如何使用Azure Active Directory实现此目的。

目前公司网站具有此功能,会员可以选择保持登录状态。选择保持登录状态的用户可以获得持续90天的持久性cookie。在该设备上再次访问成员区域时,成员不需要输入其用户名和密码。

此外,其他网站(如我的帐户/维护配置文件)不提供停留登录功能,尽管它们都使用相同的凭据存储。但为方便会员,如果他们已登录网站并转到我的帐户/维护配置文件应用程序,则会预先填充其用户名。会员仍需要输入密码。

现在在新的范例中,网站和我的帐户/维护配置文件应用程序将使用AAD进行身份验证,我们将如何实现上述功能,即 •有选择地为某些应用程序保留登录功能。该功能是可选的,对于选择单击此功能的成员,不需要在该设备上再次登录90天。 •如果成员已登录到一个资产并且需要登录其他资产,请预先填充用户ID。

1 个答案:

答案 0 :(得分:1)

Azure AD在用户登录时创建的会话实际上无法由用户控制。它有关于会话长度,持久性等的相当静态的规则。很快,Azure AD租户管理员将能够通过配置控制其中一些方面。但这并不取决于用户。

话虽如此,您绝对可以实现您在应用中描述的体验。如果用户希望保持登录状态,则必须在自己的UX中询问用户(而不是Azure AD登录用户体验)。我会这样做:

  • 在登录按钮旁边有一个复选框
  • 在OpenID Connect授权请求的state参数中对复选框的值进行编码(OWIN - 使用AuthenticationProperties
  • 当Azure AD发回其id_token响应时,解码state中的复选框值(OWIN - OWIN应该为您处理此问题)
  • 使用该值设置应用发布的会话Cookie的长度/持久性(OWIN - 从AuthenticationProperties检索复选框值,如下所示:Is it possible to set an ASP.NET Owin security cookie's ExpireTimeSpan on a per-user basis?

对于另一个范例,您可以通过在OpenID Connect授权请求上传递login_hint查询参数来预填充Azure AD登录页面。我留给您了解如何跟踪用户的用户名。