PowerShell 2.0开发使用CredSSP处理多跳授权

在本文中中将会介绍如何使用CredSSP解决PowerShell远程管理中多跳(Multi-hop)授权的问题。本质上来讲,CredSSP和多跳支持本身并不是PowerShell 2.0或PowerShell远程管理的特性。凭据安全服务提供者(CredSSP,Credential Security Service Provider)是全新的安全服务提供者,用于将用户凭据委派到应用程序中,以实现从客户端到目标服务器的认证。Windows 远程管理(WinRM,Windows Remote Management)支持的多跳(Multi-hop)使用CredSSP实现认证。从PowerShell 2.0开始,远程管理是构建于WinRM的,所以可以使用CredSSP实现多跳授权。 1 多跳授权概述 首先来看一下什么是多跳授权,如下图1所示的三台主机,主机A(客户端Client)与主机B(服务器Server)之间通过通过远程线程建立连接,并通过主机B,常吃在文件服务器C上创建文件。

接下来在连接到主机B的远程线程上执行如下所示命令,在主机C上创建文件test.txt,执行时的效果如下图2所示: Invoke-Command -ComputerName Test-PC.SP2010lab.com -credential SP2010LAB\Administrator -ScriptBlock {[System.IO.File]::Create(\\FileServer\Share\Test.txt)}

在上图中能够看到执行结果是“访问被拒绝(Access Denied)”,命令是从远程线程尝试访问文件共享时出错的,由于使用的是主机A访问主机B时使用的主机B的凭据,而不是主机B访问文件服务器主机C时使用的凭据。所以可以推测如果能有方法从客户端主机A传递或委派可访问文件服务器主机C的凭据就能成功创建目标文件,这就是为何称之为多跳授权以及PowerShell远程管理通过CredSSP实现多跳授权,下面就引入委派凭据的概念: 2 委派凭据 用于创建远程线程的cmdlet――Invoke-Command,Enter-PSSession和New-PSSession都有一个-Authentication参数用于将授权模式指定为CredSSP。而在使用这个参数之前,需要首先在参与多跳授权的多台主机上启用CredSSP,而在启用CredSSP之前需要指定角色――Client或者Server――当然Client是远程线程初始化的主机,也就是这里的主机A;Server是多跳授权触发的主机,相当于跳板,也就是这里的主机B。 PowerShell 2.0提供了如下的cmdlet用于管理CredSSP授权: 1. Enable-WSManCredSSP 2. Disable-WSManCredSSP 3. Get-WSManCredSSP 下面介绍如何启用WSManCredSSP并且指定Client/Server角色。首先启用主机A上的CredSSP: Enable-WSManCredSSP -Role Client -DelegateComputer "*.SP2010lab.com" 这里用Enable-WSManCredSSP cmdlet启用了CredSSP认证并且指定主机角色为Client,与此同时还是用-DelegateComputer参数指定从Client接受委派凭据的单台或多台服务器。上面的DelegateComputer参数接受通配符描述,指定所有在*.SP2010lab.com域中的主机都可作为接受委派凭据的主机,其中的*代表该网络域中所有主机,当然也可以只指定单台主机。 当Enable-WSManCredSSP cmdlet用于在-role参数指定的客户端上启用CredSSP。这个cmdlet主要执行了以下操作: 1. WS-Management设置<localhost|computername style="color: rgb(26, 26, 26); font-family: 'Microsoft YaHei', SimHei; line-height: 34px;">\Client\Auth\CredSSP被设置为true。 2. 在客户端上设置Windows CredSSP策略AllowFreshCredentials为WSMan/Delegate。 接下来在主机B上启用CredSSP,并将其角色设置为Server,具体操作如下: Enable-WSManCredSSP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值