GVKun编程网logo

我可以通过Java EE webapp使用Windows身份验证连接到SQL Server吗?

19

对于想了解我可以通过JavaEEwebapp使用Windows身份验证连接到SQLServer吗?的读者,本文将是一篇不可错过的文章,并且为您提供关于asp.net–IIS7中的SQLServer和W

对于想了解我可以通过Java EE webapp使用Windows身份验证连接到SQL Server吗?的读者,本文将是一篇不可错过的文章,并且为您提供关于asp.net – IIS7中的SQL Server和Windows身份验证、asp.net – 在Azure WebApp / Website中使用Windows身份验证、asp.net-web-api – 使用OWIN SelfHost和Windows身份验证的WebApi、asp.net通过kerberos集成windows身份验证到sql server的有价值信息。

本文目录一览:

我可以通过Java EE webapp使用Windows身份验证连接到SQL Server吗?

我可以通过Java EE webapp使用Windows身份验证连接到SQL Server吗?

我目前正在研究如何使用Windows身份验证而不是SQL Server身份验证从Java EE Web应用程序连接到SQL
Server数据库。我正在从Tomcat 6.0上运行此应用程序,并正在使用Microsoft JDBC驱动程序。我的连接属性文件如下所示:

dbDriver              = com.microsoft.sqlserver.jdbc.SQLServerDriverdbUser                = userdbPass                = passworddbServer              = localhost:1433;databaseName=testDbdbUrl                 = jdbc:sqlserver://localhost:1433

使用SQL Server身份验证时,以这种方式连接到SQL Server数据库有零问题。

有什么方法可以检索用户的Windows身份验证的凭据并将 身份验证用于SQL Server?

更新 :我知道在ASP.net中有一种方法可以设置Windows身份验证来访问Web应用程序,这正是我要寻找的,除了我希望将该令牌传递给SQL
Server来访问数据库。

答案1

小编典典

我认为无法将用户凭据从浏览器推送到数据库(这有意义吗?我认为不是)

但是,如果要使用运行Tomcat的用户的凭据连接到SQL Server,则可以使用Microsoft的JDBC驱动程序。像这样构建您的JDBC URL:

jdbc:sqlserver://localhost;integratedSecurity=true;

并将适当的DLL复制到Tomcat的bin目录(驱动程序随附的sqljdbc_auth.dll)

MSDN>使用JDBC驱动程序连接到SQL Server>构建连接URL

asp.net – IIS7中的SQL Server和Windows身份验证

asp.net – IIS7中的SQL Server和Windows身份验证

我正在尝试使用sql Server和 Windows身份验证在Vista(IIS7)上运行ASP.NET网站.无论我做什么,当我连接到数据库时,我得到例外:
    sqlException was unhandled
    Login Failed for user 'MyDomain\MachineName$'.

我应用的设置似乎并不重要,我无法让IIS7通过我的Windows登录凭据.

额外细节:

> sql Server和本地计算机都在ActiveDirectory上
> Vista Enterprise,IIS7
> sql Server 2005
>禁用匿名身份验证,启用Windows身份验证
>假冒开/关没有区别
>所有身份(NetworkService,LocalSystem等)给出相同的结果
>经典和集成管道提供相同的结果

救命!

解决方法

正确配置后,模拟开启/关​​闭会产生重大影响.您想要的是“约束委派”,您需要为它配置IIS和ASP:

> How To: Use Protocol Transition and Constrained Delegation in ASP.NET 2.0
> Configure ASP.NET Impersonation Authentication (IIS 7)
> Configuring Servers for Delegation

asp.net – 在Azure WebApp / Website中使用Windows身份验证

asp.net – 在Azure WebApp / Website中使用Windows身份验证

我们在联网的Azure VM上有一个Active Directory域,并且在同一个虚拟网络上有一个运行Orchard CMS的单独Azure WebApp / Website.

Web应用程序是否支持Windows身份验证以连接到Active Directory?如果是这样,我该如何在IIS中进行设置?

解决方法

不,这是不可能的.为了使Windows身份验证适用于内部部署.对于Azure网站,Azure Active Directory显然是最佳选择.从AD同步到Azure Active Directory也很容易设置.

如果您仍想绝对使用Windows Auth并在Azure上托管您的网站,则可以创建Windows VM并在那里托管您的网站.然后,您需要将VM加入AD.为此,两个VM必须位于同一网络中.因此,如果您的VM是内部部署,则需要创建一个site-to-site VPN

asp.net-web-api – 使用OWIN SelfHost和Windows身份验证的WebApi

asp.net-web-api – 使用OWIN SelfHost和Windows身份验证的WebApi

我有一个控制台应用程序SERVER,它使用OWIN自托管托管WebApi控制器,并在名为“ServiceTest1”的自定义帐户下运行.

在同一台机器上,我有另一个在“ServiceTest2”帐户下运行的控制台应用程序CLIENT,我想在SERVER中捕获“ServiceTest2”调用控制器操作.然而:

> WindowsIdentity.GetCurrent()始终是“ServiceTest1”.
> Thread.CurrentPrincipal是未经身份验证的GenericIdentity.
> RequestContext.Principal为null.
>用户为空.

我需要做什么才能使这个WebApi OWIN自托管以获取呼叫者的Windows身份?

解决方法

关于您如何实施Windows身份验证,您的问题有点不清楚.

启用Windows身份验证:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        HttpListener listener = (HttpListener)app.Properties["System.Net.HttpListener"];
        listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;

        // ...
    }
}

让用户进入OWIN中间件:

public async Task Invoke(IDictionary<string,object> env)
{
    OwinContext context = new OwinContext(env);
    WindowsPrincipal user = context.Request.User as WindowsPrincipal;

    //...
}

获取Web API控制器中的用户:

// In a web api controller function
WindowsPrincipal user = RequestContext.Principal as WindowsPrincipal;

asp.net通过kerberos集成windows身份验证到sql server

asp.net通过kerberos集成windows身份验证到sql server

请有人请给出一个简单,直接的方法来启用ASP.NET> Kerberos> sql Server? @H_301_5@

@H_301_5@我们有clientMachine> webServer> DATABASESERVER.客户端坚持认为该站点必须提取Windows登录而不提示,因此需要Kerberos和集成身份验证.它还必须模拟用户进入数据库服务器,从而产生双跳.

@H_301_5@我们的域名是Windows 2003域名,据我所知,这意味着Kerberos已启用.在加入域的计算机上,当登录时,kerbtray告诉我我有一大堆门票,所以它显然正在工作.

@H_301_5@AD中的Web和数据库服务器计算机帐户都“受信任以进行委派”.
必须访问系统的AD用户帐户都“被委托信任”.
当它全部工作时,我会添加更多用户,现在两个就是它.

@H_301_5@sql Server实例在数据库服务器上的LocalSystem下运行,尽管我可以在网上告诉它,但这意味着它根本不需要搞乱这些SPN的东西.

@H_301_5@然而,当我尝试使用任一用户登录时,我得到了

@H_301_5@

Login Failed for user 'NT AUTHORITY\ANONYMOUS logoN'.
@H_301_5@表示双跳失败.在数据库服务器上的应用程序日志中,有一些来自“MSsql”的条目说同样的事情,这进一步推动了这一点.

@H_301_5@我真的不敢相信这有多难……我的意思是,IIS,sql和Windows都是微软,他们不能说得更好吗???

@H_301_5@总而言之,我有
>一个kerberos域名,
> db和Web服务器都受信任以进行委派
>用户信任委派
> AD组中的用户
> AD组作为sql登录(和db中的用户)
> IIS匿名关闭,集成打开,基本和摘要关闭
> IE启用集成功能

解决方法

下载 Troubleshooting Kerberos Delegation.它是一个救生员.
在第17页,您将找到Active Directory清单.按照核对表一步一步.
在第30页,您将找到客户端应用程序清单.逐步验证核对表.
第35页是中间层清单.逐步验证它.
第48页是后端核对表.逐步验证它. @H_301_5@

@H_301_5@如果仍有问题,该文档包含故障排除工具的详细列表(kerbtray,klist,ldifde等),详细说明如何在系统事件日志中启用日志记录和审计身份验证错误,详细解释所有错误代码.来自身份验证审核的事件日志条目,依此类推.

@H_301_5@一旦弄清楚出了什么问题,修复起来会容易得多.

今天关于我可以通过Java EE webapp使用Windows身份验证连接到SQL Server吗?的介绍到此结束,谢谢您的阅读,有关asp.net – IIS7中的SQL Server和Windows身份验证、asp.net – 在Azure WebApp / Website中使用Windows身份验证、asp.net-web-api – 使用OWIN SelfHost和Windows身份验证的WebApi、asp.net通过kerberos集成windows身份验证到sql server等更多相关知识的信息可以在本站进行查询。

本文标签: