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

web-applications - Web 应用程序的单点登录

我正在寻找解决方案,让我们注册网站的用户无需显式登录我们的应用程序即可访问我们的应用程序。

  1. 网站所有者将向我们注册以访问我们的应用程序
  2. 用户将登录他们的网站并查看我们网站的链接以访问它。
  3. 一旦用户点击链接,用户将能够访问它。
  4. 如果用户尝试通过浏览器访问此链接并登录到他们的网站,则会显示错误消息。

有没有办法通过cookies、webservices或HTTP post方法等来解决这个问题

0 投票
2 回答
6011 浏览

asp.net - 当有多个重定向时,如何在 ASP.NET 中获取引荐来源网址?

我正在开发一个使用内部 SSO 服务器进行身份验证的 Web 应用程序。我的主页上有一个指向名为 Logout.aspx 的页面的链接。Logout.aspx 清除 Forms Authentication cookie、所有会话数据,然后执行重定向到 Forms 身份验证配置中指定的 LoginUrl,该配置当前设置为名为 Login.aspx 的页面。

但是,当 Login.aspx 加载时,会尝试使用先前发布的 SSO 身份验证票证对 SSO 服务器隐式重新验证用户。如果此工单仍然存在,则之前的用户将重新登录并返回主页。我想确定,当登录页面加载时,请求是否来自注销页面。请求的 UrlReferrer 属性仍然引用 Home.aspx,大概是因为这是客户端请求的最后一个 url。

目前我有一个解决方法,我将一个查询字符串变量附加到来自注销页面的请求,指示登录页面不要执行隐式登录,而是提示用户输入凭据。如何以编程方式确定请求是否来自注销页面的重定向?

2009 年 4 月 29 日编辑:

在与 jellomonkey 的对话之后,我应该指出 SSO 服务器与消费网站的本地表单身份验证之间的交互与手头的问题没有直接关系。简而言之,我的问题是:

  1. 用户单击 Home.aspx 中的 HTML 超链接,这会将他们带到 Logout.aspx
  2. Logout.aspx 的 Page_Load 事件处理程序清除 Forms Authentication 票证和 Session 数据并将用户重定向到 Login.aspx
  3. Login.aspx 的 Page_Load 事件检查 Request 对象的 UrlReferrer 属性以确定请求是否来自 Logout 页面。但是,在通过从 Logout.aspx 重定向而来的请求中,Request 对象的 UrlReferrer 属性是 Home.aspx。

为什么是这样?为什么是 UrlReferrer Home.aspx 而不是 Logout.aspx?

0 投票
3 回答
49849 浏览

java - 如何实施 SAML SSO

SAML SSO 通常是如何实现的?

我已经阅读了这篇(nb obsolete)关于将 SAML 与 Google Apps 一起使用的内容,以及关于SAML的维基百科条目。

维基百科条目讨论了使用包含 SAMLRequest 和 SAMLResponse 详细信息的表单进行响应。这是否意味着用户必须亲自提交表单才能继续进行单点登录?

谷歌条目谈到使用重定向,这对我来说似乎更无意义。然而,它也谈到了使用表单作为用户必须提交的响应(尽管它确实谈到了使用 JavaScript 自动提交表单)。

这是这样做的标准方式吗?使用重定向和 JavaScript 提交表单?

有谁知道有关如何在 Windows 域和 J2EE Web 应用程序之间实现 SSO 的任何其他好的资源。Web 应用程序位于单独的网络/域上。我的客户想要使用CA Siteminder(带有 SAML)。

0 投票
3 回答
5511 浏览

java - SSO 对会话超时的影响

我需要在 Windows 域和 J2EE Web 应用程序之间实现 SSO。

我一直在思考这会对 Web 应用程序的会话超时产生什么影响。我们有 2 小时的休息时间。

如果我们实现一个无缝的 SSO,那么我认为它可能会让用户感到困惑。

SSO 将使 Web 应用程序看起来立即可用。

我担心他们会开始填写表格然后去吃午饭(或其他东西)并在他们的会话超时后回来。但是,这可能不会立即明显发生,因为 SSO 只会再次签署它们(但现在有一个新会话)。

有没有人有这样的经历以及如何处理它?我们是否只需要实现某种形式的额外消息来告诉用户他们之前的会话已经超时并且他们的工作已经丢失?

0 投票
2 回答
30111 浏览

security - 在 Active Directory 中执行 LDAP 查询的最低安全权限

我们公司正在尝试使用 Active Directory (Windows Server 2003) 和 LDAP 实现一些单点登录应用程序。我想尽可能多地锁定用于进行这些 LDAP 查询的帐户。配置此类帐户的最佳做法是什么?

0 投票
2 回答
2889 浏览

asp.net - 跨 DNN 和 ASP.net 应用程序共享身份验证、成员资格和角色

这是我的情况。我有一个 DotNetNuke 应用程序。我想从 DNN 网站链接到现有的 ASP.net 网站,并决定为此使用 DNN 的 IFrame。

现有的 ASP.net 应用程序使用 Forms Authentication 来确保安全 - 只有授权用户才能访问这些页面。这个 asp.net 应用程序还需要用户角色来授权不同的页面。

我不希望用户必须登录两次,并且我希望 asp.net 页面使用来自 DNN 应用程序的用户成员资格和角色数据——它不应该需要它自己的成员资格数据库。

这可能吗?根据 MSDN 网站:

“ASP.NET 支持分布式环境中的表单身份验证,无论是跨单个服务器上的应用程序还是在 Web 场中。当跨多个 ASP.NET 应用程序启用表单身份验证时,用户在应用程序之间切换时无需重新进行身份验证。”

这是否适用于链接到 asp.net 应用程序的 DotNetNuke 应用程序?两者也在同一个域中。

(我尝试修改 asp.net 页面的 config.web 以使用 DNN config.web,匹配机器密钥和表单设置 - 但它不起作用。我可能做错了什么,但在我继续之前,我想知道这是否可能。)

谢谢你的帮助!

0 投票
1 回答
764 浏览

asp.net - Oracle SSO 背后的 ASP.NET 应用程序 - 匿名访问?

我们有一个 ASP.NET 应用程序,客户端希望通过 Oracle SSO 保护它并允许匿名访问该应用程序。

标准 Oracle SSO 插件都没有匿名访问选项,因此我们编写了一个自定义 java SSO 插件来检查 Portal/SSO 会话 cookie 并执行基本 Oracle SSOServerAuth,否则如果它们没有 SSO cookie(匿名访问) - 返回 Oracle PUBLIC 用户。

有没有人有这样的场景才能真正正常工作?有一个更好的方法吗?

我们正在使用 Oracle SSO IIS 插件,它在某些情况下可以工作 - 但我们看到在将用户身份验证为 oracle PUBLIC 用户后,Portal 中出现了一些奇怪的行为:

登录表单不适用于相同安全级别的自定义和默认插件。并且使用低于默认插件安全级别的自定义插件,即使用户使用另一个帐户登录到门户网站,PUBLIC 身份验证也会以某种方式为合作伙伴应用程序保留。

这是我们的自定义插件:

0 投票
2 回答
1703 浏览

security - 浏览器/POST 和浏览器/工件 SAML 配置文件的便捷应用程序

我提议使用 SAML 1.1 作为在客户环境中证明 Web SSO 的技术,他们问了我一些有趣的问题:

哪个场景浏览器/POST 配置文件是合适的,哪些场景浏览器/SAML 的工件配置文件是合适的?

事实上,SAML 1.1 规范并没有谈论两种浏览器配置文件的最佳或最合适的方案。

也许每个人的安全威胁都可以用来挑选最好的。在我看来,到目前为止,两者都可以平等地应用于任何场景。

*注意:该解决方案使用 Weblogic Server 10.0 及其对 SAML 1.1 的支持。

0 投票
2 回答
654 浏览

asp.net - 连接池和单点登录

带有 SQL Server 2005 的 ASP.NET 3.5 应用程序必须在 Intranet 环境上提供单点登录。这是通过使用 web.config 中的 Windows 身份验证模式来完成的。

我想尽可能地使用连接池。我还想在连接字符串中使用 SSPI 作为数据库访问,而不是使用模拟(在 web.config 中)

因此:有没有办法为 ASP.NET 应用程序使用连接池和单点登录机制?

0 投票
3 回答
11117 浏览

python - 使用 Python 进行 SSO 的 SPNEGO(kerberos 令牌生成/验证)

我正在尝试实现一个简单的单点登录方案,其中一些参与的服务器将是 Windows (IIS) 框。看起来 SPNEGO 是一个合理的路径。

这是场景:

  • 用户使用他的用户名和密码登录到我的 SSO 服务。我使用某种机制对他进行身份验证。
  • 稍后,用户想要访问 App A。
    • 用户对 App A 的请求被 SSO 服务拦截。SSO 服务使用 SPNEGO 将用户登录到 App A:
      • SSO 服务点击 App A 网页,获得“WWW-Authenticate: Negotiate”响应
      • SSO 服务代表用户生成“Authorization: Negotiate xxx”响应,响应 App A。用户现在登录到 App A。
    • SSO 服务拦截用户对 App A 的后续请求,将 Authorization 标头插入其中,然后再将其传递给 App A。

听起来对吗?

我需要两件事(至少我现在能想到的):

  • 代表用户生成“授权:协商 xxx”令牌的能力,最好使用 Python
  • 在 Python 中验证“授权:协商 xxx”标头的能力(用于项目的后面部分)