Hi Dave,
Thank you for your response.
First let me try to explain the Kerberos authentication though it should be a Windows AD question. Based on my communications with some AD expert, Kerberos authentication on Windows
requires KDC that is running on a domain controller. If the client computer is not in a domain, it is restricted to directly communicate with the KDC and you cannot add a domain user account
into a local user group. Also your ASP.NET host process cannot be configured to start with a domain account. Since your ASP.NET application's host process cannot run under a domain
account, if your ASP.NET web application's database connection was configured to use Windows Integrated Authentication, the workgroup account cannot be validated by KDC. In this case,
Kerberos authentication will fail.
You can use Kerberos authentication in such a scenario, for example, you need to access a web server that is in a domain and that is configured to use Windows Integrated Authentication,
after you input the URL in IE and click Enter, there will be a prompt Window to ask you to input the account and you can input the domain account here for authentication, however as you can
see that it is not for a database connection and this way is actually not welcome in my viewpoint.
Regarding double-hop, thank you for your inputs. I apologize that my last description was not accurate for your scenario. I had thought that your client computer's account token (client
computer) would be past to your web application (web server) and then your web application used it to access your database (database server). However after I discussed with some ASP.NET
experts and I knew that I had some misunderstandings before and appreciate your understanding on this since I am not an ASP.NET expert.
As I mentioned before, since your ASP.NET application pool in a Workgroup environment cannot start with a domain user account, Kerberos authentication cannot be established between a
Workgroup user and KDC in Windows environment. However if your intention is just want to use Windows authentication and do not want to encrypt connection string, I think that NTLM
authentication can also work for you. On your database server, you can create a local user with same name and password as your ASP.NET application pool's identity, and then explicitly add
the local Windows user account to your SQL Server logins and assign permissions. Then your ASP.NET application can use Windows Integrated Authentication for your database connection. I
performed a test at my side and it worked fine.
Note that for such type of issue that is cross-related with other AD and ASP.NET technologies, our initial response may not be able to fully address your real concerns, so if you have any
further questions or concerns like that in this thread, we appreciate that you could timely post back so that we can better understand your issue and try to effectively collaborate with other
technical experts to work together on resolving the issue.
If you have any other questions or concerns, please feel free to let me know. Have a nice day!
Best regards,
Charles Wang
Microsoft Online Community Support
=========================================================
Delighting our customers is our #1 priority. We welcome your
comments and suggestions about how we can improve the
support we provide to you. Please feel free to let my manager
know what you think of the level of service provided. You can
send feedback directly to my manager at: msdnmg@microsoft.com.
=========================================================

Signature
This posting is provided "AS IS" with no warranties, and confers no rights.
=========================================================
Dave Smith - 22 Jul 2008 14:29 GMT
Charles,
Thank you for the further explanation. As I understand from your comments
about using peer-to-peer NTLM authentication, this should work; however, we
have been unable to get it to work for us. This may be due to the firewall
between our web server and our SQL server blocking NETBIOS.
This is no longer an issue for us, since I have already modified the web
application to decrypt the connection string read from web.config and have
written a standalone utility to create the encrypted connection strings.
I feel it is a shame that such a great technology like trusted database
connections are of so limited value. I can't believe that many enterprise
web application have the customer-facing web server in the same network and
domain as the SQL server machine, which means (as I understand from you)
that these application cannot use trusted connections.
Thank you for your assistance.
Dave Smith
> Hi Dave,
> Thank you for your response.
[quoted text clipped - 69 lines]
> rights.
> =========================================================
Charles Wang [MSFT] - 23 Jul 2008 12:31 GMT
Hi Dave,
Thank you for your response.
Regarding your concern, "I feel it is a shame that such a great technology like trusted database connections are of so limited value. I can't believe that many enterprise web application have the
customer-facing web server in the same network and domain as the SQL server machine, which means (as I understand from you) that these application cannot use trusted connections.",
It does not mean that trusted connections cannot be established. Trusted database connection can be established but via NTLM authentication instead of Kerberos in this case. I recommend
that you first check if you can access a network share folder by using NTLM authentication between your web server and database server. If not, contact your network administrator to check why
NTLM authentication cannot work in your environment. Once this issue can be resolved, you should be able to use Windows NTLM authentication for a database trusted connection by following
the steps I mentioned in my last response.
From your former descriptions, I think that you might be an expert on Unix or Linux and have not got into the habit of using Windows operating system. I appreciate that you could give more
understandings on Windows. After all Windows is a different OS from Unix and Linux, and it is normal that they show different behaviors for some functions. That also leads to different
application architectures on these different OS platforms.
Also I would like to let you know that since your question is essentially a Windows security question and our SQL Server newsgroup is not the best place for deeply discussing such a kind of
advisory question. If you are interested in such Windows security questions, you may have a new post at microsoft.public.windows.server.security for wider audience.
Please feel free to let me know if you have any other questions or concerns. I am very glad to work with you for further assistance.
Best regards,
Charles Wang
Microsoft Online Community Support
=========================================================
Delighting our customers is our #1 priority. We welcome your
comments and suggestions about how we can improve the
support we provide to you. Please feel free to let my manager
know what you think of the level of service provided. You can
send feedback directly to my manager at: msdnmg@microsoft.com.
=========================================================

Signature
This posting is provided "AS IS" with no warranties, and confers no rights.
=========================================================