我的应用程序需要用户通过Active Directory进行验证。我们正在考虑使用System.DirectoryServices.DirectoryEntry来执行一个PowerShell脚本,我们会传递一个用户名和密码。如何在Powershell中安全验证AD用户(加密凭证)
我看到它在不同的答案中提到了System.DirectoryServices.DirectoryEntry使用LDAP来读取AD信息的事实。 LDAP协议本身不加密。您可以使用LDAPS,但需要设置CA.我想知道这个命令生成的网络流量是否默认安全 - 即是否有可能通过网络嗅探密码?
编辑 我发现您可以将其他选项传递给DirectoryEntry实例。这是示例代码:
$username = $args[0]
$password = $args[1]
Function Test-ADAuthentication {
param($username,$password)
(new-object directoryservices.directoryentry "",$username,$password,Secure -bor Sealing).psbase.name -ne $null
}
Test-ADAuthentication $username $password
第四个参数是一个枚举AuthenticationTypes http://msdn.microsoft.com/en-us/library/system.directoryservices.authenticationtypes(v=vs.90).aspx
,似乎令人感兴趣的是值:安全&密封它们组合起来将加密凭据
许多感谢读。
嗨迈克尔。感谢您的时间。就LDAP而言 - 除非你使用LDAPS协议,否则它不会被默认加密,我已经知道了。我不相信你的第二段 - Powershell只是使用.NET库,如上面的代码示例 - 除非所有的PowerShell流量都是加密的?不过,我现在已经发现如何启用安全+密封认证,根据文档将提供使用Kerberos的安全认证... –