Re: Windows Auth -- double hop issue??

From: Alek Davis (alek_xDOTx_davis_xATx_intel_xDOTx_com)
Date: 03/26/04


Date: Fri, 26 Mar 2004 10:51:51 -0800

But we are not talking about Kerberos, are we? Maybe I am confusing
something, but I think that Integrated Windows authentication (NTLM) does
not require Kerberos, so it's a moot point. I don't think that to access a
resource on the same machine using NTLM, you need to enable delegation. It
does not make much sense. Whether resource resides on a different Web site
should not matter as long as it on the same physical server. Think about it:
using NTLM you can pass through user's credentials to a SQL Server (on the
same machine). It is not much different from accessing a different Web site
(on the same machine), or is it?

Alek

"Ken Schaefer" <kenREMOVE@THISadOpenStatic.com> wrote in message
news:en5Jl7sEEHA.624@TK2MSFTNGP10.phx.gbl...
> Kerberos tickets work on the basis of a SPN, not a "machine boundary"
don't
> they? If the SPN is different (e.g. accessing a different website), then
> delegation must be enabled for the user credentials.
>
> Cheers
> Ken
>
> "Alek Davis" <alek_xDOTx_davis_xATx_intel_xDOTx_com> wrote in message
> news:%23uylZmoEEHA.3336@TK2MSFTNGP12.phx.gbl...
> : I don't think this matters. As long as
> identity/authentication/authorization
> : sections of the Web.config file are set up correctly, anonymous access
is
> : disabled in IIS, and HTTP request does not leave machine boundaries,
> : DefaultCredentials should be propagated. Sorry Kannan, doesn't look like
> : we're helping. ;-)
> :
> : Alek
> :
> : "Ken Schaefer" <kenREMOVE@THISadOpenStatic.com> wrote in message
> : news:ekzHVogEEHA.1600@tk2msftngp13.phx.gbl...
> : > But he is executing a new HTTP request (just the browser did
> : > originally)...and the code doesn't have enough information to complete
> the
> : > authentication challenge that the web server will be issuing. All he
has
> : is
> : > the token - not the username/password.
> : >
> : > Cheers
> : > Ken
> : >
> : > "Alek Davis" <alek_xDOTx_davis_xATx_intel_xDOTx_com> wrote in message
> : > news:%23vjNr%23cEEHA.696@TK2MSFTNGP12.phx.gbl...
> : > : You are absolutely right, but what I am trying to say is that there
is
> : no
> : > : OTHER machine. Impersonation token for Integrated Windows
> Authentication
> : > : should work fine on the same system. and, according to the original
> : post,
> : > : both resources reside on the same server, so double-hop should not
be
> an
> : > : issue.
> : > :
> : > : Alek
> : > :
> : > : "Joe Kaplan (MVP - ADSI)" <joseph.e.kaplan@removethis.accenture.com>
> : wrote
> : > : in message news:O55yavcEEHA.2460@TK2MSFTNGP10.phx.gbl...
> : > : > The way I read it, it works like this:
> : > : >
> : > : > 1. User authenticates with web server via browser using Windows
> : > Integrated
> : > : > authentication
> : > : > 2. IIS creates a token for the authenticated user. This token is
an
> : > : > impersonation token since that's what IIS creates for Integrated
> : > : > authentication
> : > : > 3. ASP.NET code accesses DefaultCredentials to use in WebRequest.
> : > : > DefaultCredentials are based on impersonation token, so they
cannot
> : hop
> : > to
> : > : > another server.
> : > : >
> : > : > That's my theory. Since the user's password is never passed to
the
> : IIS
> : > : > server, the only way the token on the IIS server is going to hop
to
> : > : another
> : > : > machine on the network is via Kerberos Delegation. If that isn't
> : > : available,
> : > : > then the hop won't happen (which is what it sounds like is
> happening).
> : > If
> : > : > web authentication was Basic, then the user's plain text
credentials
> : are
> : > : > available, so a primary token can be created and that will hop to
a
> : > : > different machine without delegation.
> : > : >
> : > : > Joe K.
> : > : >
> : > : > "Alek Davis" <alek_xDOTx_davis_xATx_intel_xDOTx_com> wrote in
> message
> : > : > news:uIlneDcEEHA.2640@TK2MSFTNGP09.phx.gbl...
> : > : > > But Kannan said that all resources reside on the same server.
How
> : can
> : > it
> : > : > be
> : > : > > the double-hop problem? Logically, it should work, but maybe
there
> : is
> : > : > > something else we're missing.
> : > : > >
> : > : > > Alek
> : > : > >
> : > : > > "Joe Kaplan (MVP - ADSI)"
> <joseph.e.kaplan@removethis.accenture.com>
> : > : wrote
> : > : > > in message news:eXamriREEHA.1452@TK2MSFTNGP09.phx.gbl...
> : > : > > > Given that you are using default credentials, it does look
like
> it
> : > : might
> : > : > > be
> : > : > > > a double hop issue.
> : > : > > >
> : > : > > > If the current security context is an impersonation token that
> : can't
> : > : > > > delegate, then the credentials you supply will not hop to the
> : other
> : > : > > machine.
> : > : > > > Since Windows integrated authentication creates an
imperonation
> : > token,
> : > : > > this
> : > : > > > is very likely to be the case.
> : > : > > >
> : > : > > > Joe K.
> : > : > > >
> : > : > > >
> : > : > > > "Kannan" <pv_kannan@yahoo.com> wrote in message
> : > : > > > news:b46a02f.0403231023.21b252a7@posting.google.com...
> : > : > > > > Hi Alex,
> : > : > > > > I am setting that in the code. Here is the code sample in
> : VB.NET:
> : > : > > > >
> : > : > > > > Private Function LogonToProjectServer(ByVal
> : > projectServerUrl
> : > : As
> : > : > > > > String)
> : > : > > > >
> : > : > > > > Dim url As String
> : > : > > > > Dim cookieString As String
> : > : > > > >
> : > : > > > > If Not projectServerUrl.EndsWith("/") Then
> : > : > > > > projectServerUrl += "/"
> : > : > > > > End If
> : > : > > > >
> : > : > > > > url = projectServerUrl + "LgnIntAu.asp"
> : > : > > > > Dim XMLDoc As New XmlDocument
> : > : > > > >
> : > : > > > > Try
> : > : > > > > Dim myReq As HttpWebRequest =
> : > : > > > > CType(WebRequest.Create(url), HttpWebRequest)
> : > : > > > > Dim conCookie As New CookieContainer
> : > : > > > > myReq.CookieContainer = conCookie
> : > : > > > > myReq.Credentials =
> : > : CredentialCache.DefaultCredentials
> : > : > > > > Dim networkCredential As NetworkCredential =
> : > : > > > > CType(CredentialCache.DefaultCredentials, NetworkCredential)
> : > : > > > > Dim identity As WindowsIdentity =
> : > : > > > > WindowsIdentity.GetCurrent()
> : > : > > > >
> : > : > > > > Dim log As New EventLog
> : > : > > > > log.Log = "Application"
> : > : > > > > log.Source =
"PDSHelper:LogonToProjectServer"
> : > : > > > >
> : > : > > > > log.WriteEntry("WindowsUser is " +
> : identity.Name,
> : > : > > > > EventLogEntryType.Information) ' This returns the correct
> : > username
> : > : > > > >
> : > : > > > > Dim myRes As HttpWebResponse = Nothing
> : > : > > > > Dim i As Integer
> : > : > > > > For i = 0 To 2
> : > : > > > > Try
> : > : > > > > myRes = CType(myReq.GetResponse(),
> : > : > > > > HttpWebResponse)
> : > : > > > > ' if it gets to this line it didn't
> : error
> : > : > > > > Exit For
> : > : > > > > Catch e As Exception
> : > : > > > > If i = 2 Then
> : > : > > > > Throw e
> : > : > > > > End If
> : > : > > > > End Try
> : > : > > > > Next i
> : > : > > > >
> : > : > > > > XMLDoc.Load(myRes.GetResponseStream())
> : > : > > > > log.WriteEntry("Xmlcontents are " +
> : > : XMLDoc.InnerText,
> : > : > > > > EventLogEntryType.Information)
> : > : > > > > ' Close the response to free resources.
> : > : > > > > myRes.Close()
> : > : > > > >
> : > : > > > > cookieString = GetLogonStatus(XMLDoc)
> : > : > > > > If cookieString.Length < 10 Then
> : > : > > > > Throw New Exception("Invalid Project
> Server
> : > : Login
> : > : > > > > Cookie: " + cookieString)
> : > : > > > > End If
> : > : > > > > Catch ex As Exception
> : > : > > > > Throw New Exception("Error occurred
attempting
> : to
> : > : log
> : > : > > > > into project server: " + url + vbCrLf + XMLDoc.InnerXml, ex)
> : > : > > > > End Try
> : > : > > > >
> : > : > > > > LogonToProjectServer = cookieString
> : > : > > > >
> : > : > > > > End Function
> : > : > > > >
> : > : > > > >
> : > : > > > >
> : > : > > > >
> : > : > > > >
> : > : >
> : ************************************************************************
> : > : > > > > "Alek Davis" <alek_xDOTx_davis_xATx_intel_xDOTx_com> wrote
in
> : > : message
> : > : > > > news:<OiRD1rHEEHA.3372@TK2MSFTNGP10.phx.gbl>...
> : > : > > > > > Kannan,
> : > : > > > > >
> : > : > > > > > Before you call the other site, make sure that you set the
> : > default
> : > : > > > > > credentials for your HttpWebRequest's (or whatever class
> : you're
> : > : > using)
> : > : > > > > > Credentials member. See MSDN documentation on
> : > : > > > > > CredentialCache.DefaultCredentials for samples.
> : > : > > > > >
> : > : > > > > > Alek
> : > : > > > > >
> : > : > > > > > "Kannan" <pv_kannan@yahoo.com> wrote in message
> : > : > > > > > news:b46a02f.0403221407.388842f1@posting.google.com...
> : > : > > > > > > We are having a strange problem with NT credentials
being
> : lost
> : > : > while
> : > : > > > > > > accessing another resource on the same server.
> : > : > > > > > >
> : > : > > > > > > Here is the scenario:
> : > : > > > > > >
> : > : > > > > > > Step 1
> : > : > > > > > > -------------
> : > : > > > > > > Client A makes a call to a method in a C# DLL that
resides
> : in
> : > : > Server
> : > : > > A
> : > : > > > > > > using Windows Auth (correct settings in web.config and
> IIS).
> : > : > > > > > >
> : > : > > > > > > Step 2
> : > : > > > > > > -------------
> : > : > > > > > > That method makes a call to an asp page that is present
on
> a
> : > : > > different
> : > : > > > > > > website on the same server (Server A) to retrieve a
cookie
> : > : value.
> : > : > > > > > >
> : > : > > > > > > I notice that Windows credentials are being passed over
in
> : > Step
> : > : 1.
> : > : > > It
> : > : > > > > > > returns the correct value when I use
> : > : > > WindowsIdentity.GetCurrent.Name.
> : > : > > > > > > But they do not get passed over from DLL method to the
> site
> : in
> : > : > Step
> : > : > > 2.
> : > : > > > > > > (LOGON_USER returns blank)
> : > : > > > > > >
> : > : > > > > > >
> : > : > > > > > > Would this be a double-hop issue? Would use of
delegation
> : and
> : > : > > kerberos
> : > : > > > > > > help?
> : > : > > > > > >
> : > : > > > > > > Any help would be really appreciated.
> : > : > > > > > >
> : > : > > > > > > Thanks
> : > : > > > > > > kannan
> : > : > > >
> : > : > > >
> : > : > >
> : > : > >
> : > : >
> : > : >
> : > :
> : > :
> : >
> : >
> :
> :
>
>



Relevant Pages

  • Re: Cannot resolve KDC error 11
    ... > Services (IIS) is not enabled for both Kerberos and NTLM authentication. ... > Regarding how to configure IIS to support both Kerberos and NTLM ...
    (microsoft.public.windows.server.sbs)
  • Re: Windows Integrated Authentication and Kerberos
    ... This is required to be checked for Kerberos to be used ... It uses NEGOTIATE, falls back to NTLM. ... has only the "Integrated Windows authentication" box checked. ... The computer account for the member server has the "Trust this computer for delegation to any service " option enabled in Active Directory. ...
    (microsoft.public.inetserver.iis.security)
  • Windows Authentication problem with IIS6 (Win2k3)
    ... I believe the problem to be something related to the Kerberos technology, ... Internet Information Services (IIS) ... Shouldn't integrated windows authentication use their ... Windows 2000) that talked about Kerberos and Delegation. ...
    (microsoft.public.inetserver.iis)
  • Windows Authentication problem with IIS6 (Win2k3)
    ... I believe the problem to be something related to the Kerberos technology, ... Internet Information Services (IIS) ... Shouldn't integrated windows authentication use their ... Windows 2000) that talked about Kerberos and Delegation. ...
    (microsoft.public.inetserver.iis.security)
  • Re: Windows Auth -- double hop issue??
    ... But we are not talking about Kerberos, ... but I think that Integrated Windows authentication does ... resource on the same machine using NTLM, ... disabled in IIS, and HTTP request does not leave machine boundaries, ...
    (microsoft.public.dotnet.security)