Удостоверению пула приложений сетевых служб отказано в доступе для удаления пользователей из группы в 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 позволяет указать имя пользователя и пароль, хотя это будет означать, что вам нужно будет хранить имя пользователя и пароль где-то самостоятельно.

Другие вопросы по тегам