【发布时间】:2014-03-05 16:46:12
【问题描述】:
我的应用程序要求用户通过 Active Directory 的身份验证。我们正在考虑使用 System.DirectoryServices.DirectoryEntry 执行一个 PowerShell 脚本,我们将用户名和密码传递给该脚本。
我在另一个答案中看到 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
似乎感兴趣的值是:Secure & Sealing,它们结合起来将加密凭据
非常感谢您的阅读。
【问题讨论】:
标签: .net windows powershell active-directory