PowerShell Web 访问身份验证类型设置为 CredSSP 的问题
Posted
技术标签:
【中文标题】PowerShell Web 访问身份验证类型设置为 CredSSP 的问题【英文标题】:Issues with PowerShell Web Access Authentication Type set as CredSSP 【发布时间】:2020-10-26 13:51:32 【问题描述】:在设置 PowerShell Web 访问身份验证时,默认情况下它使用“默认”作为身份验证类型。我设置了 CredSSP,它适用于网络身份验证。但是,我希望 CredSSP 成为默认的身份验证模式,而不是“默认”。我深入研究了 IIS 中 PSWA Web 的配置,我发现有几个可用的值可以覆盖默认值。可以看到 defaultAuthentcationType 设置为 0,这是正确的设置。在网页上我可以看到选择框有以下选项
0 Default
1 Basic
2 Negotiate
4 CredSSP
5 Digest
6 Kerberos
3 is missing
就在名单上。我的研究证实 3 是我的 PowerShell 5.1.15063.966 上缺少的 NegotiateWithImplicitCredential。因此,当我将 defaultAuthenticationType 设置为数字时,网页默认为一个新选项:7 Admin Specified
当我尝试 3 和 4 时,没有一个可以与 CredSSP 一起使用。这只是 Kerberos,即使我将 defaultAuthenticationType 设置为 CredSSP,也不会出现任何 Admin 选项,它会再次返回 Default。
任何有类似经验的人都应该分享我可以做些什么来使用 CredSSP
【问题讨论】:
您能分享一下您是如何更改身份验证的吗? 我用这个命令 winrm get winrm/config/service 尝试运行命令Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/pswa' -filter "appSettings/add[@key='defaultAuthenticationType']" -name "value" -value "4"
【参考方案1】:
根据您的情况,尝试以下几个步骤
在本地机器上
PS C:\> Enable-WSManCredSSP -DelegateComputer [ComputerName] -Role Client
接下来,您需要启用服务器端。
PS C:\> invoke-command enable-wsmancredssp -Role Server -Force -ComputerName [ComputerName]
有了这个,您现在可以重新建立远程会话,指定 CredSSP 和您的凭据。
PS C:\> enter-pssession [ComputerName] -Authentication Credssp -Credential domain\user
运行此授权命令,它将授权您使用 CredSSP
PS C:\> Add-PswaAuthorizationRule -rulename "Rule01" -computername [computerName] -username domain\user -configuration microsoft.powershell
使用 PSC:\> Get-PswaAuthorizationRule
验证规则。
【讨论】:
以上是关于PowerShell Web 访问身份验证类型设置为 CredSSP 的问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 Powershell 3.0 切换 IIS 7.5 身份验证“匿名身份验证”?
powershell 使用PowerShell对AAD进行身份验证然后调用Web API
通过powershell Enter-PSSession连接到SQL Server 2012(使用Windows身份验证)