我们的组织处理安全性的方式都基于SQL Server。基本上,用户被添加到Active Directory组,然后这些组与数据库相关联。
所以我有一个基于Intranet的Silverlight RIA应用程序。它的配置设置为使用Windows身份验证和模拟。 它托管的Web服务器设置为使用模拟和Windows身份验证。
当此应用程序访问SQL Server后端时,如何将经过身份验证的用户详细信息传递给应用程序池。 那么应用程序在其凭据下查询数据库? 或者我如何通过IIS 7使用他们的凭据查询数据库。
由于
答案 0 :(得分:1)
这是一个典型的双跳问题,其中NTLM只能将凭据从客户端(silverlight)传递到单个服务器(Web层)。此时,服务器只有一个令牌,而不是用户/传递对,因此无法创建下一个令牌以传递给第二个服务器(在本例中为SQL)。有了这个,你无法直接实现你想要的东西。
您不能“让应用程序池获取ID”;但如果我没记错的话,Keberos和AD身份验证委派可以使用客户端凭据通过Web层解决这种SQL访问方案。
看一下这个帖子: Solution to avoid double-hop from client > web service > SQL Server