多个网站,单点登录设计[关闭]

2024-04-26

我有个问题。我最近一直在做一些工作的一个客户有一系列具有不同登录机制的网站。他正在寻求慢慢迁移到单点登录他的网站机制(全部写在asp.net mvc).

我正在此处查看我的选项,因此以下是要求列表:

  1. 它必须是安全的(废话)
  2. 它需要支持除了通常的名称、地址之外的额外用户属性(例如用户的金钱或信用)
  3. 它必须提供一个集中的用户管理 Web 控制台以方便他(我知道这将是我选择的任何设计解决方案之上的一个小项目)
  4. 它必须与现有网站集成,而无需重新设计整个产品(我知道这取决于当前的产品实现)。
  5. 它必须在用户注册时向用户发送电子邮件(以便他激活他的帐户)
  6. 它必须处理当用户单击电子邮件中的“激活我”链接时激活用户的问题(我了解 5 和 6 需要某种形式的电子邮件模板系统来支持每个应用程序的不同电子邮件)

我正在考虑创建一个与表单身份验证一起工作的库,该库公开所需的任何方法(例如登录、注销、激活等)以及一个小型的安静服务来实现从电子邮件激活、注册处理等。

考虑到为了使这个问题简洁明了而省略了很多内容,这听起来是一个很好的设计吗?

但这看起来是一个非常常见的问题,所以没有我可以使用的现有项目吗?

谢谢阅读。


需要认识到的基本事实是,您无法跨多个域使用标准表单身份验证来对用户进行身份验证。例如,dev.google.com 和 www.google.com 是不同的域,如果用户登录 dev.google.com,他不会自动登录 www.google.com,除非 Google 采取特殊措施来启用此功能。这是因为浏览器无法访问其他网站的cookie。

真正使跨域登录发挥作用的唯一方法是在 URL 的查询字符串中包含一个键值(例如会话 ID),网站会检查该值并设置用户的身份验证 cookie。您可以使用少量您自己的自定义代码通过您的网站手动执行此操作。

例子:http://www.example.com/autoLogin.aspx?sessionid=23232323 http://www.example.com/autoLogin.aspx?sessionid=23232323

但这种方法的危险在于,有人可能通过找出用户使用的地址并检查会话 ID 来欺骗用户会话。因此,您需要确保用于跨域验证用户身份的值是时间敏感且动态的。不要将其设为用户的用户 ID 或用户名或类似内容。

现在,如果这些站点位于同一域中,您可以为它们提供相同的 MachineKey,然后当用户在同一域中的不同网站之间移动时,已经登录到一个站点的用户将不会被注销。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个网站,单点登录设计[关闭] 的相关文章

随机推荐

  • 根据给定分布对数据帧进行采样

    如何根据给定的类 标签分布值对 pandas 数据框或 graphlab sframe 进行采样 例如 我想对具有标签 类列的数据框进行采样以选择行 以便平等地获取每个类标签 从而具有相似的频率对于每个类标签对应一个均匀分布的类标签 或者最
  • Google 图表 - “缺少请求 ID 的查询:0”

    仅当我尝试将两个图表放在同一页面上时才会出现此错误 如果这两个图表是页面上唯一的图表 则它们可以完美地工作 在我添加第二个的那一刻 仅加载第一个 并且出现 缺少请求 id 的查询 0 错误 这是我的图表 js 文件 function dra
  • 如何获取子进程的返回值?

    程序计算从 1 到 N 的数字之和 子进程计算偶数之和 父进程计算奇数之和 我想在父进程中获取子进程的返回值 我怎么做 include
  • 如何从 Twig 中的多维数组中获取值?

    我的数组 strs key id 的 var dump 给出以下结果 array 2 0 gt array 4 8259 gt string 8260 ouvrir 1 8260 gt string 8261 fichier 2 8261
  • 使用 Json.net 解析 JSON

    我正在尝试使用 JSon Net 库解析一些 JSON 该文档似乎有点稀疏 我对如何完成我需要的内容感到困惑 这是我需要解析的 JSON 格式 displayFieldName OBJECT NAME fieldAliases OBJECT
  • 在其他包中使用 main.go 中声明的结构

    我有一个结构体声明于main go如下所示 type Organization struct ID string json id Count int json count node count 我有一个名为configuration并有这样
  • 当鼠标悬停在图标上时,字形会改变颜色

    我怎样才能让它工作 这样当我将鼠标悬停在 li gt a 时 它也会改变我的字形图标上的颜色 我在下面列出了我的 html 和我的内容tryed在CSS中做 但这只会改变它if我将鼠标悬停在字形图标而不是 a 上 和yes我也尝试在我的 a
  • 如何使用 PDF.js 显示 PDF(以 Base64 存储)中的所有页面?

    我正在使用以下脚本使用 PDF js 显示 PDF 但它在画布上没有显示任何内容 你能告诉我我哪里出了问题吗 我尝试在线查找文档 但找不到任何帮助 Model B 是 base64 字符串
  • wpf xceed工具包水印文本框使水印显示直到第一次输入

    默认行为是当文本框获得焦点时水印消失 我想让水印内容仅在用户键入第一个字符时消失 然后在清除文本后重新出现 有人有好的方法来实现这一点吗 我已经为你调整了默认样式 现在 水印默认显示为 稍暗 默认系统 非活动文本 颜色 并且当水印接收焦点但
  • 使用 @Valid 进行 Spring 验证

    我正在验证传入属性 但验证器甚至捕获未注释的其他页面 Valid RequestMapping value showMatches spr method RequestMethod GET public ModelAndView showM
  • 如何从存储库中删除 Sonatype Nexus OSS(3) 组件

    这是我的第一个问题 我尽力做到最好 如果有什么问题 请简单地告诉我 我会纠正自己 我是 Sonatypes Nexus 3 OSS 的新手 我找不到从我的存储库中删除组件的方法 我的存储库中的一个包已变得无用 现在我想将其删除 我已经删除了
  • spring data neo4j 5 - 没有名为“sessionFactory”的bean可用

    我正在使用 spring data neo4j 5 0 7 RELEASE 和 spring 5 0 6 RELEASE 使用文档中的配置https github com spring projects spring data neo4j
  • 如何让 G1 打印更多日志详细信息?

    我正在测试基于 Jetty 的 API 与基于 Netty 的 API 实验中唯一的区别是我使用哪个 API 相同的应用程序 相同的服务器 相同的内存配置 相同的负载等 我使用基于 Netty 的 API 时会得到更长的 GC 暂停 大多数
  • React Native 上的 MQTT?

    将 MQTT 添加到我的反应原生项目时 我很难找到正确的方法 该项目需要在 iOS 和 Android 上运行 因此理想情况下 MQTT 可以在 javascript 端处理 我意识到移动节点和经典节点的网络巢穴是不同的 所以我开始沿着分叉
  • 自定义 Windows 7 登录 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何为 Windows 7 登录屏幕进行编程 不仅仅是替换背景图像 就像我希望它通过 RFID 阅读器进行身份验证一样 我能做到吗 我知道 XP 可
  • 经济模拟的算法?

    我想创建一个游戏 玩家可以创建不同价格的不同产品 称为报价 然后我给他们一定数量的客户 称为需求 现在 我想要一个算法来确定每个参与者的市场份额 当然 我现在就可以使用随机的方式来制作我的 但在这样做之前 我更愿意先问一下 因为我确信在我之
  • 我可以在css中指定maxlength吗?

    我可以用 CSS 中的某些内容替换 maxlength 属性吗
  • 如何根据文件名将文件移动到不同的目录?

    好的 我创建了一个程序 它将根据创建日期重命名目录中的文件 我现在需要能够根据创建日期将这些文件移动到不同的目录中 20131202 1 jpg 将进入名为 20131202 的文件夹 名为 20131203 2 jpg 的文件将进入名为
  • 如何在ios中获取今天日期的开始和结束时间? [复制]

    这个问题在这里已经有答案了 我使用此代码获取当前日期和时间 let today NSDate NSDate let dateFormatter NSDateFormatter NSDateFormatter dateFormatter ti
  • 多个网站,单点登录设计[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有个问题 我最近一直在做一些工作的一个客户有一系列具有不同登录机制的网站 他正在寻求慢慢迁移到单点登录他的网站机制 全部写在asp net m