使用特定机器对域进行身份验证?

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 进行身份验证

使用 Azure 应用服务 EasyAuth 进行机器人身份验证

使用静态机密对 Twitter 机器人进行身份验证?

如何针对密码的特定字母进行身份验证[重复]