【问题标题】:How to implement SSO using Identity Server?如何使用 Identity Server 实现 SSO?
【发布时间】:2018-02-14 22:54:26
【问题描述】:

我有许多使用 .NET 成员资格和表单身份验证的旧版 .NET Framework Web 应用程序。他们每个人都有自己的登录页面,但都在同一个域中(例如 .mycompany.com),共享一个 ASP.NET 成员资格数据库并共享一个机器密钥,以便他们能够识别彼此的 cookie 以实现 SSO;即,如果您登录一个应用程序,那么您将全部登录,与注销相同。

现在我希望所有未来的应用程序都在 .NET Core 中开发,并使用通用的身份服务器作为集中式身份验证机制。我有一个简单的 Identity Server 启动并运行,还有几个不同风格的 .NET Core 客户端应用程序。这一切都很好。我似乎无法克服的障碍是所有 mycompany.com 应用程序中的 SSO。 Brock Allen 推荐了here,让我看看客户样本以获得灵感。

MVC OWIN 客户端(隐式) 示例让我了解了大部分情况。我可以移植我的旧应用程序以使用 OWIN cookie 身份验证和 OIDC,但这不是真正的 SSO。目前,如果我登录 app1.thirdparty.com,我会被重定向到 identityserver.mycompany.com 进行身份验证。在我登录到 identityserver.mycompany.com 之后,我就可以访问 app1.thirdparty.com,这很好,但我还必须为每个 mycompany.com 应用程序执行相同的过程。当然,我不必每次都输入我的凭据,因为我已经与 identityserver.mycompany.com 建立了一个会话,但我仍然必须在正式登录之前转到每个应用程序并单击登录按钮。我会更喜欢登录到 identityserver.mycompany.com 使用 mycompany.com 域中的所有其他应用程序启动 SSO。同样,如果我已经登录到 mycompany.com 应用程序,那么我希望 identityserver.mycompany.com 知道这一点,并且不需要我再次输入我的凭据。

这可能吗?我该怎么办?

【问题讨论】:

    标签: asp.net-identity single-sign-on owin openid-connect identityserver4


    【解决方案1】:

    This article 正是我正在寻找的信息。 Microsoft.Owin.Security.Interop 提供了让其工作所需的填充程序。

    【讨论】:

      猜你喜欢
      • 2017-09-14
      • 2021-05-18
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 2015-03-17
      • 2012-05-18
      相关资源
      最近更新 更多