gpt4 book ai didi

asp.net-mvc-4 - 如何在 MVC4 中实现单点登录

转载 作者:行者123 更新时间:2023-12-02 14:28:48 25 4
gpt4 key购买 nike

如何在跨域 MVC 4 Web 应用程序中实现单点登录 (SSO)

最佳答案

通过将表单例份验证 cookie 的 domain 属性设置为根域并为两个应用程序配置相同的计算 secret 钥,可以轻松实现相同域 SSO。

跨域SSO更具挑战性。有不同的技术来实现它。例如 StackExchange 使用 HTML5 本地存储。它们的机制在 this blog post 中有描述。 .

以下是一些基本步骤:

  1. 设置主域供用户登录。例如logon.com
  2. 当未经身份验证的用户尝试访问这 2 个应用程序中某些应用程序上的 protected 资源时,他会被重定向到登录域以进行身份​​验证。
  3. 用户进行身份验证,登录域会生成一个包含已登录用户的用户名的 session 标识符。该 session ID 使用对称算法进行加密,并在 3 个域之间共享 secret 。登录域还设置一个表单例份验证 cookie 以指示用户已在此处进行身份验证。
  4. 登录域重定向回传递 session 标识符的 protected 资源。
  5. 持有 protected 资源的应用程序会解密 session ID 以提取用户名并在其域上设置表单例份验证 Cookie。
  6. 用户请求第二个域上的 protected 资源。
  7. 由于他尚未通过身份验证,因此他被重定向到登录域。
  8. 用户已在登录域上进行了身份验证,并且使用相同技术生成并传回了 session 标识符
  9. 第二个域解密 session 标识符以提取用户名并为第二个域发出表单例份验证 Cookie。

作为将用户名加密到 session 标识符中的替代方案,登录域可以简单地将此信息存储到共享(3 个域之间)数据存储中,并且 session 标识符将只是此记录的标识符,以便其他记录域可以从此共享数据存储中检索用户名。

关于asp.net-mvc-4 - 如何在 MVC4 中实现单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15128624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com