2010-12-03 3 views
1

У меня есть веб-приложение, которое использует некоторые серверные серверы (UNC, HTTP и SQL). Чтобы получить эту работу, мне нужно настроить ServicePrincipalNames для учетной записи, запускающей IIS AppPool, а затем разрешить делегацию kerberos для бэкэнд-услуг.Настройка делегирования kerberos автоматически

Я знаю, как настроить это через вкладку «Делегация» инструмента «Пользователи и компьютеры AD».

Однако приложение будет развернуто в нескольких средах Active Directory. Конфигурирование делегирования вручную оказалось подверженным ошибкам, и отладка причин неправильной конфигурации вызывает много времени. Я хотел бы создать сценарий установки или программу, которые могут сделать это для меня.

Кто-нибудь знает, как сценарий или программно установить ограниченное делегирование в AD?

В противном случае, как я могу выполнить скриптовое чтение разрешенных служб для проверки правильности установки?

ответ

3

ОК, после долгих рывков в Интернете и некоторых испытаний, у меня есть путь вперед.

Следующий код - C#. Установка SPN для пользователя или компьютера может быть достигнута с помощью утилиты setspn.

В качестве альтернативы, следующий C# код может сделать то же самое:

DirectoryEntry de = new DirectoryEntry("LDAP://"+usersDN); 

if (!de.Properties["servicePrincipalName"].Contains(spnString)) 
{ 
    de.Properties["servicePrincipalName"].Add(spnString); 
    de.CommitChanges(); 
} 

Для установки ограниченного делегирования:

if (!de.Properties["msDS-AllowedToDelegateTo"].Contains(backendSpnString)) 
{ 
    de.Properties["msDS-AllowedToDelegateTo"].Add(backendSpnString); 
    de.CommitChanges(); 
} 

Если пользователь имел, не ограниченное делегирование включено, то, возможно, потребуется включить это выключить, прежде чем включить ограничение - но я не полностью протестировал этот сценарий.

Смежные вопросы