提示されているスマートカードに基づいて、LDAP ディレクトリの特定のユーザーから情報を取得する必要があります。アプリケーションはすでに AD ユーザー アカウントで実行されていますが、そのユーザーが LDAP にアクセスすると、特定のユーザー データに十分にアクセスできなくなります。
LDAP API のいくつかの部分につまずきましたが、ユーザー名/パスワードなしで、より具体的にはスマートカードからの認証を使用して LDAP バインド呼び出しを行う方法に関する情報を見つけることができませんでした。一部の MS LDAP では、現在のユーザー トークンを使用するオプションが許可されているようです。
私たちが思いついた最善の方法は、SC を使用してログインし、ユーザーになりすまして現在のユーザー トークンを使用して LDAP 接続を作成することです。このMDSN ブログと考え方は似ています。
より良い方法はありますか?
偽装に関して私たちが抱えている問題は、ログインしているユーザーが、偽装を行うために他のユーザーにログオンするための特定の権限を持っている必要があることです。また、偽装している間は他のやり取りを制限する必要があるため、代替ユーザーとしてファイル システムやレジストリにアクセスすることは望ましくありません。