Active Directory と C# を使用して、デジタル署名アドホック スキームを実装しています。AD のユーザー アカウント エントリから秘密鍵 (またはユーザーの PFX ファイル) を取得する方法を知りたいです。これにより、その秘密鍵を使用して情報に署名できるようになります。同時に、各ユーザーの PFX ファイルを AD に適切にインストールするにはどうすればよいですか? (後でプログラムで取得できるようにするため)
すでに AD にアクセスして、フィールド「userCert」から公開鍵情報を取得しています。これは、署名されたドキュメントを検証するために使用していますが、最初にそれらのドキュメントに署名するために秘密鍵にアクセスする必要があります。
LDAP を使用して AD にアクセスしています。このようなもの:
DirectoryEntry o2ADEntry = new DirectoryEntry("LDAP://darwin.charles/DC=domain, DC=info", "user", "password");
DirectorySearcher o2objSearch = new System.DirectoryServices.DirectorySearcher(o2ADEntry);
o2objSearch.PropertiesToLoad.Add("samaccountname");
o2objSearch.PropertiesToLoad.Add("displayname");
o2objSearch.PropertiesToLoad.Add("userCert");
o2objSearch.Filter = (string.Format("(samaccountname={0})", "user"));
SearchResult res = o2objSearch.FindOne();
if (res != null)
{
CreateNavigator().SelectSingleNode("/my:myFields/my:name", NamespaceManager).SetValue(res.GetDirectoryEntry().Properties["displayname"].Value.ToString());
FormState["certificate"] = res.GetDirectoryEntry().Properties["userCert"].Value;
}
また、標準の Microsoft Crypto API も使用しています (bouncycastle も OpenSSL.NET もありません)。
ここhttp://technet.microsoft.com/en-us/library/aa996408(v=exchg.65).aspxを確認しましたが、秘密鍵へのアクセス方法については何も述べられていません。
どうもありがとう、友達!