【问题标题】:How to authenticate users on one site and pass credentials to other site? ( Windows Authentication, ASP.Net)如何在一个站点上对用户进行身份验证并将凭据传递给另一个站点? (Windows 身份验证,ASP.Net)
【发布时间】:2009-01-01 14:08:17
【问题描述】:

我们有多个运行 Windows 身份验证的 Web 应用程序。
用户使用域\用户名登录网站,这与他们在本地计算机上使用的 DomainOther\UsernameOther 不同。
考虑到我们有 2 个站点 One.xyz.com 和 Two.xyz.com 都运行 Windows 身份验证(并且用户使用域\用户名登录到两者),是否可以让用户从 One.xyz.com 上的页面重定向到在 One.xyz.com 上输入凭据后,无需再次输入凭据即可访问 Two.xyz.com 的主页?
使用 ASP.Net 可以做到这一点吗?

亲切的问候,

【问题讨论】:

    标签: asp.net windows-authentication


    【解决方案1】:

    您正在寻找的是所谓的单点登录,并且有各种各样的商业产品能够满足您的需求。他们中的许多人通过 HTTPS 通过服务器变量传递凭据,这样用户就不会在 URL 中看到凭据。我曾与希望“自行开发”并采用其他方法(引用第三台服务器的会话密钥、加密和时间敏感的 URL 字符串等)的公司合作。

    首先,您需要在单点登录时阅读Wikipedia entry(它也与 SAML 链接)。您可能还想访问一些更受欢迎的商业供应商的网站,例如PasslogixImprivata(虽然有几十个,所以不要认为这个列表很详尽,甚至特别推荐——只是很受欢迎)。

    【讨论】:

    【解决方案2】:

    SharePoint 支持SPNEGO 身份验证,这是一种单点登录形式。 MSDN 有使用 SPNEGO 在 .net 上进行单点登录的文档。查看 Microsoft 安全 SSPI。我通过快速搜索找到了this sample

    SPNEGO 是 Kerberos 的 Microsoft 变体,它还将与 IBM 产品和 Oracle WebLogic 互操作。

    如果您希望使用比 Kerberos 具有更广泛互操作性的国际标准进行单点签名,则应使用 SAML。有关 SAML 的 Microsoft 讨论,请参阅 Active Directory Fedration。但是,SAML 的实现和配置要复杂得多。

    【讨论】:

    • 那么当两个站点都使用 Windows 身份验证时,我如何将凭据从一个站点传递到另一个站点。
    • 这是 SPNEGO 协议的一部分。它定义了如何传递 Kerberos 票证。
    • 如果您使用 .net,SSPI 将处理令牌传递。
    • 我重新表述了这个问题,这两个网站都是 SharePoint 网站,它们显示标准的用户名/密码弹出窗口。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多