Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 隐式远程身份验证双跳问题_Powershell_Authentication_Proxy - Fatal编程技术网

Powershell 隐式远程身份验证双跳问题

Powershell 隐式远程身份验证双跳问题,powershell,authentication,proxy,Powershell,Authentication,Proxy,目标: 我正在利用隐式远程处理来集中模块,以便访问150多名员工。其中一些模块向internet上的不同站点发出查询 问题: 尽管用户可以通过以下方式成功地远程访问服务器: $session = New-PSSession -ComputerName ServerA -Authentication Kerberos 他们在代理服务器上被阻止,同时由于缺乏身份验证而向internet进行查询。但是,用户可以向内部产品发送查询 问题: 在powershell脚本中,如何将Kerberos身份验证附

目标: 我正在利用隐式远程处理来集中模块,以便访问150多名员工。其中一些模块向internet上的不同站点发出查询

问题: 尽管用户可以通过以下方式成功地远程访问服务器:

$session = New-PSSession -ComputerName ServerA -Authentication Kerberos
他们在代理服务器上被阻止,同时由于缺乏身份验证而向internet进行查询。但是,用户可以向内部产品发送查询

问题:

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

其他信息:

-据我所知,根据:


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

啊,我记得那篇文章。我想你读错了关于无约束授权的部分。这不是默认设置;它在默认情况下是关闭的(这就是双跳问题存在的原因),应该是这样的。当它说不需要编码时,那是因为它的配置完全在代码之外

您需要使用某种类型的委托,无论是通过Kerberos还是CredSSP或其他方式

,对于一台机器将凭证委托给另一台机器的用例,我认为这可能是一个很好的用例

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

我很难从你的描述中分辨出它是什么类型的代理,凭证真正需要放在哪里,等等,所以这可能是个坏主意



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

@badlarir是的,这是可能的;如果可以,请使用受限委派(链接到的文章)。我以前没有实现过它,所以我没有任何直接的建议,但这篇文章似乎很全面,评论中还有更多。无约束的委托虽然不太好,但也有可能(没有无约束的新要求),但它涉及的SPN总是令人讨厌的。TBH我解决这个问题的首选方法是避免它(将流程或实现更改为不需要委派)。这是否可能取决于手头的具体问题。@Badlarir这是一个需要在ServerA上进行额外配置的问题,在这一点上,您的代码中唯一需要更改的是将
-ConfigurationName
添加到
新PSSession
@mjolinor虚拟帐户只是本地的,不是吗?然后,它将无法将kerberos用于另一个跃点。@它是用
Register PSSessionConfiguration-RunAsCredential
设置的。它接受一个
[PSCredential]
对象。虚拟帐户是本地的。理想情况下,您可以使用虚拟帐户在所有服务器上创建受约束的会话,以防止横向移动。