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

ftp web相关配置

通过powershell Enter-PSSession连接到SQL Server 2012(使用Windows身份验证)

使用 ADFS 对 ASP.NET Web Api 进行身份验证

使用证书身份验证访问 Web 服务和 HTTP 接口