是否可以在具有 WebAPI 服务的 3 层体系结构的 SQL Server 数据库中使用 Windows 身份验证?

Posted

技术标签:

【中文标题】是否可以在具有 WebAPI 服务的 3 层体系结构的 SQL Server 数据库中使用 Windows 身份验证?【英文标题】:Is it possible to use windows authentication in SQL Server database in 3-tier architecture with WebAPI service? 【发布时间】:2015-03-03 02:29:32 【问题描述】:

我们目前有一个两层企业应用程序,其中一个 Windows 桌面应用程序直接连接到 SQL Server 数据库。使用标准 SQL Server 功能在数据库中设置数据访问权限,正在使用 sqlserver windows 身份验证(用户使用其域登录名)。

我们想引入一个应用服务器层,但我们需要相同的身份验证场景,即所有由桌面应用发起的查询都必须在启动该应用的用户域帐户下的数据库中运行。

同样重要的是,用户不要在应用中输入他们的凭据,使用当前域帐户。

客户端应用程序是 WPF .NET 桌面应用程序。

这可以使用 ASP.NET WebAPI 作为应用服务器吗?

【问题讨论】:

【参考方案1】:

如果您使用 Active Directory 对用户进行身份验证,一旦他们成功通过您的应用程序的身份验证,您将拥有他们的域身份。然后,您可以将其作为连接字符串的一部分传递给每个用户特定的数据库 CRUD 操作。

我建议您使用共享 SQL 登录名,但用于缓存、数据库日志记录和审计、错误日志记录、应用程序身份验证和授权等核心内容。

【讨论】:

关于审计的小问题:如果使用共享 SQL 登录,SQL 审计如何捕获进行更改的用户名?

以上是关于是否可以在具有 WebAPI 服务的 3 层体系结构的 SQL Server 数据库中使用 Windows 身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

ASP WebApi:服务层、业务层和数据访问层

微服务与多层架构 [关闭]

计算机网络体系结构与参考模型

jmeter体系结构

计算机网络体系结构 - 运输层

LVS体系结构