我们为移动(笔记本电脑)用户提供了 Windows 7 企业桌面数据输入应用程序,该应用程序具有本地 SQL Express 2008 R2 Express 数据库,可与 SQL Server 2008 R2 Server 数据库同步数据。用户可以脱离网络/异地,仍可查看和输入数据。网络连接再次建立时,数据将与服务器同步。同步数据前需要进行身份验证。
现有的用户组是组织域的一部分,他们直接连接到 Sql Server。
但现在我们计划为第二组应用程序用户提供服务,这些用户属于不同的合作伙伴组织,因此他们不在我们的域内,拥有各自不同的域/帐户。我们的目标是将桌面应用程序部署给他们,然后他们会定期将数据同步到我们的 SQL Server。
我不确定的是:是否可以对来自另一个域的用户进行身份验证? 可以通过 Active Directory 等管理权限吗?
在这种情况下应该使用哪种身份验证协议?Windows、Forms、SQL 等?
IT 人员要求,如果可能的话,通过 Active Directory 管理系统的用户。是否可以通过 Active Directory 管理外部域用户的访问?
答案1
您遇到的问题是由于身份验证。应用程序要求进行 SQL 服务器身份验证。您需要提供 SQL 服务器身份验证而不是 Windows 身份验证,否则,如果任何其他用户登录到同一系统或管理员被注销,SQL 服务器将无法工作,因此应用程序将出现问题。
如果您想在使用活动目录时管理外部域,则可以使用第三方工具,因为在 Windows 和 SQL Server 中使用时身份验证较少。
答案2
如果您无法在域之间建立信任,则无法根据您的 AD 对来自外部域的用户进行身份验证。
从您的问题中无法清楚知道客户端如何访问您的服务器,直接连接、wsdl web 服务、WCF、web 界面 (soap) 等等...
如果您要使用 Web 服务,则可以创建身份验证/同步接口。身份验证方法将接受凭证并根据您的 AD 对其进行身份验证(即使用 LDAP)。通过身份验证后,Web 服务可以模拟该用户并使用 SSPI 连接到 SQL 服务器进行数据同步。
不过,您仍然需要在 AD 中为所有客户端创建单独的用户帐户。