隐式远程验证双跃点问题

时间:2017-01-19 17:53:42

标签: powershell authentication proxy

目标: 我正在利用Implicit Remoting集中模块,以便访问超过150名员工。其中一些模块使查询出站到互联网上的不同站点。

问题: 虽然用户可以使用以下方法成功远程访问服务器:

$session = New-PSSession -ComputerName ServerA -Authentication Kerberos

由于缺乏身份验证,他们在代理服务器上被阻止,同时对互联网进行查询。但是,用户可以向内部作品发送查询。

问题:

如何在我的powershell脚本中将Kerberos身份验证附加到出站到Internet的查询以使其通过代理?

其他信息:

- 根据我的知识: https://blogs.technet.microsoft.com/ashleymcglone/2016/08/30/powershell-remoting-kerberos-double-hop-solved-securely/

-Kerberos身份验证使用'无约束委托'。因此,它应该在查询出站之前正确委派auth。我还检查了会话变量的外部范围,它不是空的。

1 个答案:

答案 0 :(得分:2)

啊我记得那篇文章。我认为你正在阅读有关无约束委托的部分错误。这不是默认设置;它默认是关闭的(这就是双跳问题存在的原因),应该如此。当它说不需要编码时,那是因为它完全配置在代码之外。

您需要使用某种授权,无论是通过Kerberos还是CredSSP或其他任何方式。

CredSSP can be used fairly securely if you understand exactly what's it doing and what the risk is,对于让一台机器将凭据委托给另一台机器的用例,我认为这可能是一个很好的用例。

很多人不这样做,只是让每台机器都委托给其他很糟糕的机器。

我很难从你的描述中告诉它是什么类型的代理,凭证真正需要去哪里等等,所以这可能是一个坏主意..

如果您不想(或不应该)委派,另一种方法是在ServerA上设置使用RunAs用户的会话配置;在该会话中运行的所有代码都可以跳一跳,但这也可能很糟糕;所有代码都将以该用户身份运行,而不是连接用户。它可以使审计成为一项挑战。这种方法只应在特定情况下使用,听起来这不是其中之一。 I wrote an answer here that talks about session configurations