使用OpenID登录多个域:这个方案可行吗?

2024-02-15

例如:

  • 我们正在两个域上运行两个社区站点(称它们为example.com and example.net).
  • 我们希望以后能够将其扩展到更多领域。
  • 我们希望允许多种类型的登录(OpenID、Facebook、Twitter、标准用户名/密码)。
  • 我们希望登录一个站点的人能够自动登录其他站点。

换句话说,它有点类似于 StackExchange 网络。

既然如此,这个计划能行得通吗?

  • Set up example.com and example.net(以及任何后续添加)作为 OpenID 依赖方,接受 OpenID 登录id.example.org only.
  • Set up example.com and example.net在您第一次访问它们时执行 OpenID 立即回复请求,这样如果您登录id.example.org您会立即自动登录到您正在访问的网站。如果您未登录,他们应该设置一个 cookie,以保存他们在每个页面请求上执行此操作。
  • Set up id.example.org作为 OpenID 提供者和消费者。它还应该使用 Facebook 和其他身份提供商,并允许标准用户名/密码访问。 (一个帐户可以附加多种登录方式。)
  • 注销时,只需更改数据库中的身份验证令牌即可。用户仍然会拥有 cookie,但它们毫无意义。因此,用户可以同时从所有站点注销。可以一次针对一个用户存储多个身份验证令牌(并且每个站点应该不同),以便用户可以在一个浏览器中注销,但仍可以在另一个浏览器中登录。注销时始终会注销所有网站。

我在上面看到的唯一问题是:

  • 有人来访example.com。设置“未登录”cookie。
  • Zie 然后继续example.net. Ditto.
  • 然后 Zie 登录并继续浏览example.net.
  • Zie 然后回到example.com并且,由于“未登录”cookie,不会对其进行检查id.example.org因此未登录。
  • 但是,一旦 zie 单击“登录”按钮,zie 就会登录。

我认为这不是一个大问题。

总的来说,我认为这是一个非常好的系统。我只是想看看它的评论。有什么问题是我没有预见到的吗?会不会有问题或者很慢? StackExchange 使用一种非常不同的方法。我认为他们这样做有充分的理由吗?


总体而言,您的设置看起来不错。希望您已经了解了如何处理会话过期/超时。

我看到的唯一问题(而且更不方便)是需要明确单击“登录”。就我个人而言,我更喜欢自动登录(例如 Google、MS 和许多其他主要网站)。

SO 会检测您是否具有有效的登录名并显示一条消息,要求刷新页面。虽然有点烦人,但它至少仍然告诉我我已经登录了。

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

使用OpenID登录多个域:这个方案可行吗? 的相关文章

  • 使用 Azure Active Directory 验证 .NET Core 2.2 API 时出现 CORS 错误

    我正在尝试在基于 Visual Studio 2019 Core 2 2 的基本 NET Core 2 2 React 项目模板构建的网页上使用 AzureAD 设置多租户 OpenId 身份验证 Core 2 2 因为 3 0 上的身份验
  • SECURITY_ERR:DOM 异常 18 仅在 Safari 中

    我有两台服务器 prod example com 和 img example com 所以在 prod 上 我使用画布处理 img 中的图像 在 FF 和 Chrome 中一切正常 但在 Safari 中我得到了这个SECURITY ERR
  • 从另一个域获取发布的数据时,ASP.NET Webform 丢失会话

    Simply 在网站中 用户登录并创建一些会话对象 网站 A 使用 Response Redirect 将用户重定向到网站 B 中的页面 网站 B 使用提交按钮将表单集合发布到网站 A 上的页面 在此特定点上 该特定用户的所有会话都会丢失
  • 如何将变量从一个应用程序域传递到另一个应用程序域

    我想知道 如果我有一个变量 例如一个字符串 如何将其值传递到我的新应用程序域 static string str static void Main string args str abc AppDomain domain AppDomain
  • OpenID 登录机制 - 保持登录状态

    我正在用 PHP 开发一个网站 并尝试使用 OpenID 进行登录机制 我想要类似于 StackOverflow 的行为 我的意思是 每当我打开 stackoverflow 时 我就已经登录了 我在 StackOverflow 上发现了两个
  • Internet Explorer中跨域POST请求ajax

    我正在使用 jQuery 1 7 2 并且想向另一个域发出 POST 请求 它必须是 POST 请求 但这确实无法在 Internet Explorer 中工作 我在IE9上试过 它适用于所有其他浏览器 我有这个脚本
  • plupload跨域上传200 http错误

    我想使用 plupload 库将文件上传到远程服务器 使用 html5 运行时的 Chrome 32 0 和 IE 10 一切正常 但当我尝试使用 Firefox 27 html5 运行时 或 IE 8 html4 运行时 时 出现错误Er
  • 我应该将跨域 XML 放在 Tomcat 中的什么位置?

    我有一个跨域策略文件 希望添加到我拥有的 Tomcat 服务器中 如果tomcat是localhost 8080并且安装在 usr local tomcat 我应该放置此策略文件的根文件夹在哪里 将您的跨域策略放入ROOT webapp f
  • 为 Oauth2 Spring Boot 创建自定义 OpenId 提供程序

    我使用 Oauth2 框架进行授权和访问控制 以保护我的 Spring Boot 微服务 api Oauth2 框架工作正常 但现在我的客户需要一个专用的 OpenId 提供程序 用于在 Oauth2 框架之上进行身份验证 我已经在 Goo
  • 加载从跨文档消息传递中作为 event.data 获得的 pdf

    对于知道答案的人来说很简单 我的代码通过跨文档消息传递成功从网站下载 pdf 但是 我现在想在浏览器中显示 pdf 可能是在 iframe 或数据对象中 可能我需要知道 pdf 下载后存储的本地 URL 请帮忙 可能很简单 看这里的小提琴
  • Apache和Nodejs跨域ajax问题

    我正在开发一个应用程序 其中我使用了托管在同一台机器上的两台服务器 其中一台是 apache 它将作为基本主机来服务 php 页面 另一台 Nodejs 用于其余 api 的通信 整个应用程序构建在backbone marionette r
  • 跨域字体问题

    请在发表评论之前阅读所有内容 我目前正在开发一个托管在 Amazon Web Services AWS 上的大型网站 这使我们能够在网站可能承受较大流量负载的情况下使用可扩展性功能 最初 我们首先将网站的代码分离为 HTML PHP Jav
  • 带有 openid 的 Facebook

    参考文献Facebook 是 OpenID 提供商吗 https stackoverflow com questions 1827997 is facebook an openid provider这里 这是一个基于此的附加问题 我还读过这
  • 如何在 Nginx 中将会话/cookie 从主域传递到子域?

    因此 我的主域中有一个子域的 iframe 页面 并且该子域页面需要用户登录并具有要访问的成员资格 基本上我需要将会话变量和 cookie 传递到子域以便加载 iframe 我怎样才能在 Nginx 中实现这一目标 饼干有一个domain属
  • 与 Post 进行交叉呼叫,但在飞行前失败

    我必须从我的网站向第三方域 服务器进行网络服务调用 当我使用 jQuery Ajax by Post 方法和 content type text plain 进行此调用时 它工作正常 但是 当我将其更改为 content type text
  • Camel JAX-RS 和跨域请求

    我希望能够在我的本地 Camel 实例上执行 HTTP 请求 仅出于开发目的 我知道这是不好的做法 现在 我坚持 Origin http localhost 8000 is not allowed by Access Control All
  • JavaScript 文件中的代码如何获取文件的 URL?

    我需要将 CSS 样式表动态加载到位于不同的领域 如何获取 JS 文件的完整 URL 以在href样式表的属性 例如 结构如下 http bla com js script js http bla com css style css 我想将
  • 如何在 PHP 中实现 Google OpenID 身份验证并在本地主机上测试

    我是 OpenID 新手 想在我的网站上实施 Google OpenID 身份验证 我找不到任何例子 任何人都可以建议我一些好的教程 一步一步 或任何带有代码的工作示例 以使用 PHP 实现 Google OpenID 身份验证 我建议使用
  • 如何获取 OpenIdConnectOptions StateDataFormat

    我有一个自定义 Open Id Connect 服务器 使用身份服务器4 https github com IdentityServer IdentityServer4 此 SSO 服务器具有用于非标准 Open Id Connect 操作
  • 跨域XMLHttp请求

    这是我的情况 我有一台 Web 服务器机器 一台客户端机器和第三台运行一些侦听 XMLHttpRequest 的程序的机器 客户端从客户端计算机访问网络服务器 进行一些更改 然后单击 保存 此时 数据被发送回网络服务器和第三台机器 所有这些

随机推荐

  • Titanium api.info 从不在控制台中显示任何内容

    我刚刚开始使用钛 但我无法制造Ti API info 我的日志消息 在控制台中打印任何内容 我尝试在我的 Android 设备 Android 模拟器 iPhone 模拟器中以及 GoogleChrome 中作为移动 Web 项目运行该应用
  • 为此我需要哪种音频播放技术?

    我在选择正确的音频播放技术时遇到了困难 iPhone 上使用了大量的技术 令人眼花缭乱 我需要做的是这样的 开始播放 0 1 到 2 秒之间的短声音 高品质播放 无爆裂声 我听说一些 iPhone 音频播放技术在开始或结束时会发出爆裂声 这
  • 替换标准 Android JSON 解析器以获得更好的性能?

    我知道 Android 有一个内置的 JSON 解析器 但我想知道是否值得使用提供更好性能的东西 比如 Jackson 请参阅http jackson codehaus org http jackson codehaus org 有人试过吗
  • 会议结束后如何获取 Twilio 会议参与者?

    根据 Twiliodocs https www twilio com docs api rest participant list get filters curl G https api twilio com 2010 04 01 Acc
  • Android 6.0.1 - 权限问题 = wifiManager.getScanResults() 返回 0

    PermissionsList add 不起作用 但 MainActivity this requestPermissions 工作正常 问题是它会带来一个对话框 询问用户是否允许位置权限 为什么添加权限不起作用 有没有办法避免对话框 请参
  • Jenkins - 将数组/列表传递给参数化远程构建

    我正在使用 Jenkins 通过以下方式远程运行 Ansible playbookPublish Over SSH命令 这个命令 curl k v X POST https jenkins myhost com job Ansible De
  • 将数据框的列名称作为每列图的标题

    我有一个包含 36 列和 3000 多行的数据框 我正在使用绘图函数for loop绘制每列的图表 我希望图表的标题显示为列名称 我怎样才能做到这一点 for i in c 1 36 plot DowData i type l main c
  • CSS 背景图像未显示高度自动

    我有一个带有背景图像的 div 我必须指定一个以 px 为单位的高度才能显示 但我希望它在宽度调整时以自动高度显示 我被困住了 当我有高度自动时 它根本不显示图像 slider shadow1 z index 9999 margin 0 a
  • Git 挑选那些包含关键字(跟踪 ID)的提交

    出于代码审查的目的 我想 樱桃选择特定提交 与他们一起创建一个新分支并 将该分支推送到远程 这样我就可以将分支 url 提供给同行进行审核 我想创建一个 shell 脚本并发出简单的命令 例如 git review
  • 无法在 sqlfiddle (oracle) 上的选择查询中使用列名

    如果我错误地使用 sqlfidle 或者缺少功能 我不会 重现步骤 选择oracle选项 左上角 创建表并插入数据 CREATE TABLE products P Id int ProductName varchar2 10 UnitPri
  • 如何测试 img 标签是否存在?

    if I do expect img not toBe null 然后我得到一个错误 Error expect called with WebElement argment expected a Promise Did you mean t
  • 从 Azure 中的图像调整器请求接收到 400 错误请求

    ImageResizer 作为 Azure 虚拟应用程序运行 在 ImageResizer 修补程序之后 这在 Azure 模拟中运行良好 但在 Azure 云中遇到问题 如果未指定查询字符串参数并且 URL 重定向到 Blob 存储 则图
  • 解释一下这个 Kotlin 函数结构

    我正在使用这个 Kotlin 函数 我知道我们有一个函数叫做mPasswordView setOnEditorActionListener 采用参数TextView OnEditorActionListener 但是后面是什么 我们的参数里
  • 来自 cURL 请求的 RestSharp POST 请求翻译

    我正在尝试使用 RestSharp 发出 POST 请求以在 JIRA 中创建问题 而我必须使用的是一个使用 cURL 的示例 我对这两者都不够熟悉 不知道我做错了什么 这是example https developer atlassian
  • 使用 mongod 以 utc 存储日期时如何处理时区问题?

    我有一个 mongodb 集合 其中每个文档都有一些属性和 utc 时间戳 我需要从集合中提取数据并使用聚合框架 因为我使用集合中的数据在用户界面上显示一些图表 但是 我需要根据用户的时区进行聚合 假设我知道用户的时区 从浏览器的请求或以其
  • 使用 Python 解析文件 (ics/icalendar)

    我有一个以下格式的 ics 文件 解析它的最佳方法是什么 我需要检索每个条目的摘要 描述和时间 BEGIN VCALENDAR X LOTUS CHARSET UTF 8 VERSION 2 0 PRODID Lotus Developme
  • XSD 中复杂类型的选择

    在 XML 模式中 复杂类型可以包含其他复杂类型的选择吗 我找不到任何相关信息 是的 请参阅第3 4 2节 http www w3 org TR xmlschema 1 declare typeXML 模式参考 AcomplexType确实
  • Chrome Mobile 108:touchcancel 未触发

    当触摸被取消时 如何让处理程序运行 例如 我可以取消突出显示按钮当 CSS 不能帮我做这件事时 https stackoverflow com questions 74843213 chrome mobile javascript even
  • 将元素附加到matlab中的单元格

    为了将 类似 python 的追加 元素添加到 Matlab 列表中 我使用以下迭代 list element1 element2 list 如果列表元素是数字或字符 它就可以正常工作 但如果我尝试将它们结合起来 它就不起作用 我希望将 2
  • 使用OpenID登录多个域:这个方案可行吗?

    例如 我们正在两个域上运行两个社区站点 称它们为example com and example net 我们希望以后能够将其扩展到更多领域 我们希望允许多种类型的登录 OpenID Facebook Twitter 标准用户名 密码 我们希