如何使用PowerShell和PKI进行LDAP查询

3

我是一名新手在使用PowerShell,正尝试使用PKI认证进行安全LDAP查询。我遇到了设置证书和密钥的问题。根据谷歌搜索和研究,我了解了一些基础知识,例如:

$connection = new-object System.DirectoryServices.Protocols.LDAPConnection('$domainName:$portNum')
[string[] $get] = "$attribute1", "$attribute2", "attribute3"
$request = new-object System.DirectoryServices.Protocol.SearchRequest("$targetOu", "$filter", "subtree", $get)
$response = new-object $connection.SendRequest($request)

就像我说的那样,我遇到了如何设置/发送证书和密钥的问题。我以为可以使用$connection.ClientCertificates = $path,但该属性是只读的。我还认为必须对$System.Net.NetworkCredential进行一些操作,但我不确定证书和密钥实际上是否对应于用户名和密码。我参考了一个执行LDAP查询并使用PKI的Perl脚本,你可以这样做:

clientcert => '/path/to/cert.pem'
clientkey => '/path/to/key.pem'

PowerShell的相当之物是什么?我是否需要对 System.Security.Cryptography.X509Certificates.X509Certificate 进行某些操作?

非常感谢您的帮助!

1个回答

1
$connection.ClientCertificates.Add($cert)

$cert 必须是 X509Certificate 类,使用以下方法从存储中获取证书

$allPersonalCerts = @( Get-ChildItem -Path 'Cert:\CurrentUser\my' )

它返回一个X509Certificate对象数组(或者是X509Certificate的子类X509Certificate2)。
注意:在进行PowerShell编程时,您可以通过搜索C#或VB.net解决方案来寻求帮助。这是.Net平台,基于.Net的语言示例只是在语法上有所不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接