だからここに私が解決策を見つけようとしているシナリオがあります。
私の会社には現在、スタッフ用の記録システムがありますが、アクティブ ディレクトリにリンクされていません。このため、データが重複しており、多くの場合不正確です。私がやろうとしているのは、レコード システムが Active Directory の値を更新できるようにすることですが、何を誰が変更できるかをスコープしたいと考えています。それで
- 新しい雇用者がいる場合、IT は最初のレコードに入力し、AD ユーザーも作成します。
- hr がやって来て、タイトル/説明/電話/住所などを更新しますが、システムからレコードを作成または削除することはできません。(彼らはチケットか何かを提出する必要があります)
kerberos のダブルホップ問題について調べてみましたが、委任する機能が必要なようですが、私自身の IT 能力は十分ではありません。エスカレートして、より高いレベルの IT 担当者から承認を得て、アカウントへの委任を許可することもできますが、それは最後の手段として取っておきます。
偽装を使用して物事を達成したいのですが、偽装を実装する方法について明確な答えを見つけるのに苦労しています。
web.config と iis で偽装を有効にしました。appPool ID をネットワーク サービスに設定しました。その後、次に何をすべきか、設定をテストする方法がわかりません。
編集1:私はなりすましのためにこのパターンにも従っています
var iid = HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)iid;
WindowsImpersonationContext wic = wi.Impersonate();
try
{
// do something with a directory entry here
}
catch
{}
finally
{
wic.Undo();
}