问题标签 [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 投票
1 回答
1560 浏览

authentication - 判断对错:跨域 SSO 始终需要第三方身份提供者

我目前有几个位于不同域的网站:

www.app1.com

www.app2.com

www.app3.com

每个都有自己的身份验证机制 - 有些通过 Web 服务查询活动目录,有些则有自己的用户数据库。

目标是通过一些不需要用户在跨域访问页面时重新输入密码的技术或产品实现单点登录。

问题:回顾SAML ,跨域 SSO 解决方案似乎总是需要第三方身份提供者对用户进行身份验证,例如:

www.my-master-login.com

这是真的?

如果是这样,是否每个现有网站都需要更新,以便第三方网站处理其身份验证?

0 投票
2 回答
5814 浏览

java - 来自我的自定义 servlet 的 Kerberos 身份验证?

我执行以下步骤从浏览器获取安全令牌以进行单点登录身份验证。

我能够从 http 标头中找到令牌。我的问题是:a)如何使用活动目录验证此令牌?b) 我如何从这个令牌中找到用户名?

在谷歌搜索时,Java API 似乎有 Kerberos5 登录模块来做我所期望的。但几乎所有页面都缺少简单的示例。

  1. Web 客户端通过 GET 请求访问 AS Java 资源。
  2. AS Java 通过将 HTTP 标头“WWW-Authenticate”设置为“Negotiate”,发送回 401 响应代码(未经授权)并请求启动 SPNego 身份验证。
  3. Web 客户端识别出 AS Java 主机是 Kerberos 领域的成员,并从 KDC 获取用于 AS Java 的 Kerberos 客户端/服务器会话票证。
  4. 然后,Web 客户端将 Kerberos 客户端/服务器会话票证发送到作为 SPNego 令牌包装在 HTTP 授权标头中的 AS Java。
  5. SPNegoLoginModule 从 HTTP 请求中读取令牌并将其提供给 JDK 的 Kerberos 实现。
  6. 结果是客户端身份验证成功或客户端请求被拒绝或需要再次往返 KDC 时失败。在失败的情况下,AS Java 的 Kerberos JDK 实现生成并将输出令牌发送回 Web 客户端。输出令牌包装为 SPNego 令牌并在 HTTP 授权标头中发送。

任何帮助,将不胜感激。

0 投票
1 回答
2686 浏览

session - Supporting Single sign-on changing domain of JSESSIONID session cookie domain on Jetty

I'm trying to support single sign-on with JETTY and we have 2 subdomains running webservers that will support single sign-on through Jetty's SSO support.

account.test.com app.test.com

We have a SSOSession cookie that is set to *.test.com, but to support sign-off I need to ensure that my Jetty server running at app.test.com has it's JSESSIONID cookie reset.

I'm currently using the Jetty JAAS FormAuthenticator and overriding SSORealm to support validation of the SSOSession cookie when the FormAuthenticator is called.

I want to be able to have the account.test.com allow users to sign in there which will cause it to invalidate the JSESSIONID cookie being used at app.test.com.

One solution I could do that would probably be more correct is to detect a change in teh SSOSession cookie and invalidate the JSESSIONID on my server.

0 投票
1 回答
209 浏览

wcf - WCF从win客户端传递AD登录,然后在WCF服务器中验证它是正确的

我想在 winforms 中创建一个应用程序,该应用程序调用我创建的新 WCF 应用程序,并且我希望它传递当前的 Windows 登录凭据,足以将其传递到 WCF 端,以便 WCF 端应用程序可以验证它是一个很好的用户。我想要这个,所以我可以启用单点登录。

0 投票
1 回答
1636 浏览

api - 关于 Google Provisioning API 和 SSO 密码更改传播的问题

我正在使用 Google Apps Provisioning API 将用户数据与我们的内部数据库 (MySQL) 同步。对于通过我们网站后端创建的每个新用户,都会在 GoogApp 系统中创建相应的用户。更改是密码也相应地同步。

我即将实施 SSO,以便在我们网站上执行的登录也会自动使用户登录到谷歌应用程序。

我的问题是,如果用户碰巧使用googapps 界面中的“帐户”>“设置”而不是我们自己的后端来更改他/她的密码,会发生什么?我们的系统无法知道变化!Prov API 或 SSO 中是否有一种方法可以关闭googapp 引擎中的密码更改机制并让用户仅通过我们的后端进行操作?

任何使用/设置类似系统的人,请对其有所了解。

谢谢,m^e

0 投票
1 回答
848 浏览

sharepoint - 通过 SharePoint 上的代码获取 SSO 凭据失败

以下代码用于自定义 WebPart,由于某种原因,它仅在第一次在页面上执行时才有效。之后它抛出一个 SingleSignonCredsNotFoundException

非常感谢任何有关如何解决此问题的帮助或建议。

0 投票
5 回答
49724 浏览

php - 如何使用 Microsoft AD 为内部 PHP 应用程序实施单点登录 (SSO)?

我隐约知道,在加入域的计算机上,可以要求 IE 发送一些额外的标头,我可以使用这些标头自动登录到应用程序。我在带有 mod_php 的 Windows 服务器上运行了 apache。我希望能够避免用户在必要时登录。我发现了一些关于 Kerberos 和 Apache 模块的链接。

http://www.onlamp.com/pub/a/onlamp/2003/09/11/kerberos.html?page=last https://metacpan.org/pod/Apache2::AuthenNTLM

由于我在 Windows 上运行,因此安装 Perl 或 Apache 模块已被证明并非易事。但是 PHP 不是已经可以访问 HTTP 标头了吗?

我发现了这个,但它没有做任何身份验证,它只是表明 PHP 可以读取 NTLM 标头。 http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/

我希望能够让我的用户只指向应用程序并让他们自动进行身份验证。有没有人有这方面的经验或让它工作?

更新 自从最初发布这个问题以来,我们已经将设置更改为 nginx 和 php-fcgi 仍然在 Windows 上运行。windows 上的 Apache2 和 php-cgi 可能是您可以在 windows 上配置的最慢的设置之一。看起来可能仍然需要 Apache(它适用于 php-fcgi),但我更喜欢 nginx 解决方案。

我也仍然不明白(并且很想接受教育)为什么 HTTP 服务器插件是必要的,我们不能有一个 PHP、Web 服务器不可知的解决方案。

0 投票
1 回答
12359 浏览

weblogic - 如何配置 WebLogic 10.3 Web 应用以使用 SAML 2 SSO 和身份提供程序?

我有几个 Web 应用程序都在 WebLogic 10 中运行,我想使用 SSO 和 WebLogic 的内置 SAML 2 SSO 支持对用户进行身份验证。
我在安全领域配置了一个 SAML2IdentityAsserter,并创建了一个 Web SSO 身份提供者合作伙伴,该合作伙伴使用来自我之前设置的身份提供者的元数据。这一切似乎都很顺利。
我部署了一个用于测试的简单 Web 应用程序,该应用程序配置为使用此领域。但是,当我尝试登录网络应用程序时,它似乎甚至没有尝试使用身份提供者。我将 BASIC 和 CLIENT-CERT 都设置为,但两者都表现得好像没有设置 SAM2IdentityAsserter。我尝试更改断言器的顺序并尝试删除默认断言器,但这些都没有产生任何影响。有没有人在 WLS 10.3 下成功做到这一点?

0 投票
3 回答
2590 浏览

oracle - 只允许 oracle db 登录到特定的应用程序?

我们希望仅通过我们自己的应用程序允许我们的用户访问数据库(Oracle) - 我们称之为“ourTool.exe”,安装在用户计算机上本地。目前,用户在启动“ourTool”时必须提供用户名/密码。提供的密码密码被解密,我们使用用户名/解密密码最终登录到 Oracle DB。这种方法可以防止用户使用第三方工具(SQLplus、Excel、Access...)直接访问我们的数据库,并且保证数据库中的所有内容都已使用“ourTool”输入/编辑。

现在,我们的一位客户希望允许其用户“单点登录”(使用 SmartCards/Oracle PKI)。这样,用户每次启动“ourTool”时都可以连接到我们的数据库,而无需提供任何密码。但对于 SQLplus、Excel、Access 等具有潜在危险的工具也是如此。

有没有办法防止这种情况?在这种情况下,我们如何确保仅使用“ourTool”创建/编辑/删除数据库中的每条记录?

0 投票
1 回答
704 浏览

asp.net - NTLM/Windows Authentication and GetAllUsers()

I'm designing a web app which will be used on an intranet so Windows authentication mode is ideal. However, part of the app would need the ability to get a list of users (to pick users for assignments. Membership.GetAllUsers() doesn't apply (on its own) with windows-authentication. I can't use ActiveDirectoryMembershipProvider because I won't be allowed to store credentials to bind with; so any AD access would have to be done as the authenticated user.

I've searched off and on for weeks for a clear cut example or solution to this, and I'm beginning to think that nobody in the world has this same problem.

Is my only option to use Application_AuthenticateRequest and connect the two worlds of "membership" to "windows auth"? But then how do I get a list of "all" users elsewhere in the app? Is there an ActiveDirectoryMembershipProvider which impersonates as the calling user?