2

我想将用户从一台服务器上的一个网页重定向到另一台服务器上的另一个页面。第一个应用程序使用 Active Directory 进行身份验证。第二个应用程序没有使用 Active Directory 进行身份验证。但是,第二个应用程序允许在 HTTP GET 请求中发送带有基本身份验证的 auth 标头。

我测试了发送 Auth 标头并成功:

function DoLogin()
{
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        if(xmlhttp.status==200)
            window.location = "http://server:port/home";
        else
            document.getElementById("myDiv").innerHTML="Error in Login";
        }
      }
    xmlhttp.open("GET","http://server:part/auth",true);
    xmlhttp.setRequestHeader("Accept","application/rdf+xml");
    xmlhttp.setRequestHeader("Authorization","Basic Z29082FtaWs6TDN0bWVpbkBPZmZp=45^");
    xmlhttp.send();
}

但是,在这段代码中,我发送了一组硬编码的凭据。我无权访问创建此哈希所需的用户名和密码。我想知道是否有任何方法可以获取凭据的哈希并将它们传递下去?

4

1 回答 1

2

出于安全原因,我认为没有也不应该有办法获取第一个站点(站点 A)的 Active Directory 身份验证的凭据。

你的选择是

  1. 也在第二台服务器上实施 Active Directory 身份验证
  2. 作为一种解决方法,实施某种基于令牌的身份验证,让用户在识别到站点 A 后访问站点 B。

在这两种情况下,您都需要访问站点 B。

如果您无权访问站点 BI,则看不到解决方案。

于 2012-10-17T09:55:19.487 回答