使用框架促进Asp.Net Forms身份验证和Asp.Net Core 1.0之间的单点登录

Mad*_*ady 6 asp.net-mvc single-sign-on openid-connect identityserver3 asp.net-core-1.0

我们在一个域下有多个应用程序,每个应用程序都在asp.net mvc中构建.目前,使用表单身份验证,共享计算机密钥可以简化单点登录.目前所有应用程序都在同一台服务器上.

对于我们的新应用程序,我们考虑使用框架选项的asp.net核心.我们有一个Accounts应用程序,用于处理现有应用程序的身份验证(登录/注销).我们使用Identity Server3构建STS 到同一个应用程序中.

www.mydomain/Accounts
www.mydomain/app1
www.mydomain/app2
www.mydomain/asp.netcoreApp1
Run Code Online (Sandbox Code Playgroud)

使用openIdConnect的新测试asp.net核心应用程序(客户端)与STS,Identity Server3进行通信,并且工作正常.

挑战:必须在现有应用程序(使用表单身份验证)和新的Asp.Net Core之间进行单点登录.

运营/环境事实:

  1. 所有应用程序都在同一台机器上

  2. 访问机器密钥.

  3. 在从app1到asp.net的导航中,核心cookie可在Request标头中找到.

问题场景:

  1. 如果用户成功登录到app1并导航到asp.net核心,则用户必须再次登录才能获得授权访问权限.没有匿名访问问题.
  2. 与#1类似,反之亦然.
  3. 如果用户在任何一个应用程序中注销,则用户应该从所有应用程序注销.

由于使用带有框架选项的Asp.net核心构建的测试应用程序,FormsAuthentication是否兼容?把我引导到文档或代码片段?

请分享您的想法.