使用特定机器对域进行身份验证?
Posted
技术标签:
【中文标题】使用特定机器对域进行身份验证?【英文标题】:Authenticate against a domain using a specific machine? 【发布时间】:2014-02-27 03:49:51 【问题描述】:背景
我们正在我们的应用程序中过渡到基于声明的身份验证(在 .NET 4.5 上) 我们目前通过 Asp.net 成员身份验证和域验证正常工作。
域部分看起来像这样(概括一下):
var context = new PrincipalContext(ContextType.Domain, ADDomainName);
return context.ValidateCredentials(username, password);
问题/目标
有时我们(或我们使用的一些顾问)使用可以看到我们域服务器但不是我们域成员的计算机进行 *** 连接。
从不在域中的机器上测试应用程序会很有帮助,而不必启动域中的机器进行检查。
问题
有没有办法从不在域中的机器对域控制器执行域身份验证?到目前为止,我还没有找到任何关于它的研究。
【问题讨论】:
【参考方案1】:您可以use LDAP authentication 并从您的代码中指定凭据:
using(var context = new PrincipalContext(ContextType.Domain, "mydomain", @"mydomain\serviceAcct", "serviceAcctPass"))
//Username and password for authentication.
return context.ValidateCredentials(username, password);
或者,在runas /netonly
下运行您的身份验证服务器,这使您可以使用加入工作组的计算机的域网络凭据运行
rem if your server is standalone
runas /netonly /user:mydomain\consultantaccount C:\dev\sts\ipsts.exe
rem or you can have it in IIS Express:
runas /netonly /user:mydomain\consultantaccount "iisexpress /path:c:\dev\sts\ /port:9090 /clr:v2.0"
我会注意,我实际上并没有检查/netonly
是否可以在这种情况下工作,所以如果你最终尝试它,我很想知道它是否有效。
【讨论】:
我可以确认 runas /netonly 可以在我们非常相似的情况下运行 IISExpress.exe。这对我们来说是一个巨大的生产力提升!我们正在客户 AD 域中的 Azure VM 上进行开发,该域与我们自己的咨询开发笔记本电脑不同。我们正在使用(免费)SoftEther *** 产品连接到 Azure 子网。 Azure 点到站点 (P2S) *** 不是一个选项,因为成熟的 Azure 站点到站点正在发挥作用。无论如何,我们的场景取决于 WCF 调用,从 ASP.Net MVC 控制器到 MS Dynamics AX AIF,它必须来自受信任的域帐户。以上是关于使用特定机器对域进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 4 和 Alamofire 获取客户端证书以用于 Https 调用身份验证
使用 pyodbc 从 Linux 向 Windows SQL Server 进行身份验证