问题标签 [single-sign-on]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
7030 浏览

ldap - 了解具有 ldap、radius、openid 等的 SSO 交钥匙设备吗?

我正在帮助一家典型的小公司,该公司从几个外包系统(谷歌应用程序、svn/trac)开始。添加了一个内部 jabber 服务器(ejabber 主要用于 iChat 客户端)。订阅了几个网络服务(例如 highrisehq)。并具有由 pfsense freebsd 防火墙提供的 vpn 服务。

所有这一切的最终结果是他们淹没在密码和帐户中。

似乎如果他们有一个统一的登录/单点登录服务,他们可以在很长的时间内将这些结合起来。例如:ldap 作为主存储库,radius 链接到它以用于 vpn、ejabber 甚至 WPA2 无线访问,用于登录谷歌应用程序的插件,以及可能用于外部网站(如 highrisehq)的 openid 服务器。

似乎所有这些工具都是单独存在的,但有谁知道将它们与漂亮的 GUI 和自动更新相结合的单个盒子?(例如,pfsense/m0n0wall 用于防火墙,freeNAS 用于存储)。它不一定是 FOSS。付费的盒子也可以。

我认为这一定存在。Microsoft 的 Active Directory 可能是一种解决方案,但如果可能,他们宁愿避免使用 Windows。ISP 使用或用于企业防火墙/路由器管理的似乎有各种“AAA”服务器,但这似乎不太正确。

我缺少任何明显的解决方案吗?谢谢!

0 投票
3 回答
638 浏览

sharepoint - 如何打开从一个 Web 应用程序到另一个已经过身份验证的链接?

我们有一个从不同来源收集信息的 Web 应用程序(sharepoint)。我们希望能够将用户链接到这些不同来源的主要网站并对其进行预认证。IE 他们输入其他来源的凭据(这些来源有许多不同类型的 LDAP、AD 和自制!),我们为他们检索一些信息,并记住那里的详细信息(可能单点登录以保持他们的良好和安全) . 然后,用户可以单击一个链接,该链接将在另一个已经过身份验证的窗口中打开完整的应用程序。

这甚至可能吗?

0 投票
1 回答
1792 浏览

c# - 远程报告服务的 Windows 身份验证

我有一个 ASP.NET Web 应用程序,用于使用报表查看器显示 MS 报表。报告位于远程服务器上。我需要使用 Windows 身份验证来连接到报告服务,因为我需要根据谁登录到 Web 应用程序来显示报告。

我在网上搜索了解决方案,但找不到任何东西。

有人可以帮忙吗。

0 投票
1 回答
6613 浏览

apache - 跨多个子域使用 Apache 的 mod_auth 进行单点登录?

我有一个域和一组需要身份验证才能访问的子域。我目前正在使用 mod_auth 在 domain.tld 级别对用户进行身份验证(mod_auth basic)。我的目标是在域和所有子域之间进行单点登录。

这些凭证会自动继续到子域,还是通过简单的虚拟主机配置更改,或者有更好的方法来做到这一点?

0 投票
5 回答
44133 浏览

security - 跨域登录 - 如何在从一个域转移到另一个域时自动登录用户

我们提供多种在线服务。domain1.com如果用户从一项服务 (on ) 转移到另一项服务 (on ),我们需要开发一个为用户提供快速/简单体验的系统domain2.com

用户转移到新服务后,是否有一种安全可靠的方式自动登录?

如果以下解决方案完全不安全/错误,请对我大喊大叫。

我们正在考虑一个类似于许多在线服务提供的用于密码恢复的系统——通过电子邮件向他们发送一个带有唯一哈希值的链接,该哈希值过期,允许他们更改密码。

domain1.com站点将生成一个唯一的散列并将其存储在一个数据库中,该散列与一个用户链接以及一个过期日期时间字段。

用户将被转移到domain2.com/auto/?hash=d41d8cd98f00b204e9800998ecf8427e

domain2.com接下来将使用哈希发出请求以domain1.com获取有关用户的信息。domain1.com然后将从数据库中删除哈希。domain2.com将登录用户并设置cookie等。

基于 OpenID 或 OAuth 的东西能达到同样的效果吗?

0 投票
7 回答
1162 浏览

facebook - OpenID 的命运如何?

谷歌宣布了Google 朋友连接,而 Facebook 也宣布了Facebook 连接。这两种服务都试图解决单点登录问题。既然 OpenID 就是为了解决这个问题而创建的,那么它会在 Facebook 和 Google 这对双胞胎重量级人物面前失败吗?

0 投票
3 回答
2712 浏览

security - 在站点之间传递凭据

我在具有两个不同域的两个不同服务器上运行两个不同站点。一个站点正在运行 Joomla,另一个站点正在运行 Moodle。我已将 Moodle 服务器配置为基于 Joomla 站点上的用户表进行身份验证,因此我们拥有用户信息的权威来源。

我想做的是:在有人登录 Joomla 站点后,提供一个指向 Moodle 站点的链接,该站点将静默登录,有点假装单点登录解决方案。Joomla 中的密码是 MD5 的,每个都有自己的秘密盐。

如何解决这个问题的第一个想法是告诉 Moodle 密码是以纯文本形式存储的,然后通过隐藏的表单输入,在他们点击链接时发送加密的密码。除了明显的安全问题外,这还意味着如果他们尝试通过 Moodle 界面登录,他们需要输入一个巨大的 MD5 字符串,因为这就是 Moodle 认为他们的密码。

我一直在考虑更改 Moodle 中的身份验证模块,以便如果提交的密码符合某些标准(例如:它是 32 个十六进制字符),那么在与 Joomla 版本进行比较之前不要对其进行 MD5 处理——问题是任何人都可以(在发现加密密码后)然后使用它登录。我需要一些特殊的方式将加密密码从 Joomla 发送到 Moodle,并向 Moodle 发出信号以区别对待该登录请求。

有什么想法吗?

0 投票
3 回答
24114 浏览

apache - 使用 AuthType Digest 跨子域对用户进行一次身份验证的示例?

我有一个域将由一小群私人访问。所以我想通过身份验证来控制访问。

该域安装了一组应用程序,每个应用程序都有自己的子域。例如:domain.com、app1.domain.com、app2.domain.com、app3.domain.com

我希望有一个单点登录解决方案,这样他们就不必为每个应用程序验证自己。此外,应用程序是用不同的语言(PHP、Python 和 Perl)编写的,因此通过 Apache 模块对用户进行身份验证是理想的选择。

我是消化身份验证的新手,但这似乎是一个很好的解决方案。我曾经htdigest创建我的用户。我已经配置了我的域和子域(见下文)。

如果我转到域或任何子域,它将提示输入用户名和密码。如果我输入正确的用户名和密码,它将对我进行身份验证并加载页面。但是,如果我转到另一个子域,它会要求我再次输入用户名和密码。如果我输入相同的用户名和密码,它将起作用。

所以密码文件没问题,认证也没问题,但问题似乎出在AuthDigestDomain.

我在网上搜索了一个在多个域上使用摘要身份验证的示例,但我找不到解决我的问题的具体示例。

我希望这里有人可以提供帮助。我是否将相同的身份验证信息放入每个Directory? 我应该使用Directoryor LocationorFiles吗?我错过了什么吗?

提前致谢!

下面是我的 domain.com 的 Apache 配置示例:

以下是 app1.domain.com 的示例:

更令人困惑的是,这在使用 IE6 时有效,但不适用于 Firefox 或 Chrome。是客户端没有正确发送身份验证,还是服务器没有发送正确的凭据?

我也一直在阅读RFC 2617并使用 PHP 编写身份验证标头以确保请求/响应质询是正确的。这根本没有帮助!

0 投票
2 回答
35159 浏览

java - 如何通过 GSS-API 获取 kerberos 服务票据?

有谁知道如何使用 Java GSS-API 从密钥分发中心 (KDC) 获取服务票证?

我有一个胖客户端应用程序,它首先使用 Krb5LoginModule 通过 JAAS 进行身份验证,以从票证缓存中获取 TGT(背景:Windows 例如使用 kerberos 实现并将票证授予票证存储在安全内存区域中)。从 LoginManager 我得到包含 TGT 的 Subject 对象。现在我希望当我为我的服务创建一个特定的 GSSCredential 对象时,服务票证也将被放入主题的私有凭据中(我已经在网络的某个地方读过)。所以我尝试了以下方法:

不幸的是,我收到 GSSException:未提供有效凭据(机制级别:找不到任何 Kerberos tgt)。

0 投票
3 回答
1593 浏览

php - 如何无缝混合 ASP.NET 和 PHP Web 应用程序

我有两个网站,一个由 ASP.NET 驱动,另一个由 PHP 驱动。PHP 站点托管在一个相对便宜的主机提供商上(“每月 10 美元的无限带宽和磁盘空间)。PHP 站点还提供 REST URL,这将帮助我通过我的网站获利。

另一个站点(可以说是“主”站点)是一个包含登录机制的 ASP.NET 网站。我的目标是允许用户登录到 ASP.NET 站点,然后重定向到基于 PHP 的域。是否有一个简单可行的解决方案可以做到这一点?

关于这种方法,我有几个问题:

我如何将会话信息和变量从 ASP.NET 应用程序传递到基于 PHP 的应用程序,以促进“单点登录”的光环?

一个“简单”的 cookie 是否能够处理这种情况?还是我需要使用加密的查询字符串?

这些网站上没有“敏感”数据,因此保护用户数据不是首要任务。该网站是“为了好玩”而建造的。

是否有主机允许子域托管在与主域不同的语言平台上?如果我将 www.example.com 托管在 ASP.NET 服务器上,我是否可以将子域 (forum.example.com) 托管在 PHP 服务器上?这可能吗?

非常感谢您对此的任何帮助。