首页 > 解决方案 > 如何实现跨域网站的单点登录

问题描述

我需要为多个跨域网站实现单点登录。例如,我有三个网站 www.example.com、www.example1.com、www.example2.com。如果我登录到其中一个网站,我应该能够访问所有其他网站。我所有的网站都使用 .net 作为后端,使用 angular/angularjs 作为前端。

标签: single-sign-on

解决方案


您必须设置一些身份提供者 (IDP),然后您可以使用 OIDC 将所有应用程序连接到 IDP 并实现 SSO。

对于 IDP,您可以使用 Identity Server 等免费解决方案或 Okta、OneLogin、Idaptive 等企业解决方案。一般流程如下:

  1. 用户也尝试登录客户端应用程序
  2. 使用该应用程序唯一的 clientId 将用户重定向到 IDP
  3. 用户在 IDP 登录页面中输入他们的凭据并在 IDP 中进行身份验证
  4. 如果身份验证成功,用户将被重定向回带有 id_token (JWT) 的应用程序
  5. 客户端应用程序接收到 id_token 并使用公钥确认签名
  6. 如果一切成功,则为客户端应用程序建立用户会话

推荐阅读