Удостоверению пула приложений сетевых служб отказано в доступе для удаления пользователей из группы в AD
Когда я публикую свое приложение на моем веб-сервере. В диспетчере IIS я предоставляю пул приложений, который я использую Network Service
,
В моем приложении я предоставляю функциональные возможности для удаления / добавления пользователей из определенной группы Active Directory. Вот код:
public static void RemoveUserFromGroup(string userId, string groupName)
{
try
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "myDomain"))
{
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, groupName);
group.Members.Remove(pc, IdentityType.UserPrincipalName, userId);
group.Save();
}
}
catch (Exception E)
{
throw E;
}
}
Это работает, когда я тестирую локальный, потому что моя учетная запись имеет права администратора при работе с AD. Поэтому, чтобы проверить, при загрузке страницы я регистрирую имя пользователя Windows, выполнив это:
var thread = '@System.Security.Principal.WindowsIdentity.GetCurrent().Name';
console.log(thread);
Это приводит к NT AUTHORITYNETWORK SERVICE
, Но когда я пытаюсь удалить пользователя из группы AD.. я получаю:
В доступе отказано
Как мне дать Network Service
доступ к этому? Или есть альтернативный способ сделать это?
1 ответ
"NT AUTHORITY\Network Service" - это встроенная учетная запись Windows на уровне компьютера, которая используется широким спектром процессов, а не только IIS (загрузите панель управления службами (Пуск> Выполнить> "services.msc") и посмотрите в столбце "Вход в систему". Вы увидите несколько компонентов Windows, работающих под этим именем. Из-за этого вам не следует изменять разрешения и права учетной записи - возможно, вы не сможете этого сделать!
Вы можете создать пользователя домена с соответствующими правами и настроить пул приложений для работы с этим удостоверением. Кроме того, это выглядит как один из конструкторов дляPrincipalContext
позволяет указать имя пользователя и пароль, хотя это будет означать, что вам нужно будет хранить имя пользователя и пароль где-то самостоятельно.