Доступ запрещен с помощью делегирования Kerberos в веб-приложении ASP.NET, размещенном в IIS, при доступе к общей папке C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Доступ запрещен с помощью делегирования Kerberos в веб-приложении ASP.NET, размещенном в IIS, при доступе к общей папке

Сообщение Anonymous »

Как решить проблему «Доступ запрещен» при доступе к общей папке на SERVER03 из приложения ASP.NET, размещенного в IIS, с использованием делегирования Kerberos, несмотря на правильную настройку учетной записи службы (svc_iis) и SPN?< /em>
Подробный контекст:
Я работаю над установкой на следующих машинах:
  • WS01: Клиентский компьютер
  • DC01: Контроллер домена (управляет пользователями, SPN, настройками делегирования)
    SERVER02: сервер IIS под управлением Visual Studio IDE
  • SERVER03: файловый сервер с общей папкой< /li>
Все машины подключены к тот же домен (

Код: Выделить всё

CONTOSO.LOCAL
), со статическими IP-адресами.
Обзор настройки:
  • Учетная запись службы (svc_iis):

    Имеют правильные имена SPN: HTTP/file и HTTP/file.contoso.local .
  • Имеет надпись «Доверить этому пользователю делегирование в любую службу». (только Kerberos)», настроенный в Active Directory.
  • Полный доступ к C:\inetpub\wwwroot на SERVER02.
  • Конфигурация IIS:

    Сервер IIS включен На SERVER02 размещено простое веб-приложение ASP.NET.
  • Приложение использует проверку подлинности Windows и выдает себя за аутентифицированного пользователя.
  • В Web.config у меня есть следующие настройки:
    < /ul>
Веб-приложение:
В моем веб-приложении у меня есть простая страница ListFiles.aspx, которая пытается вывести список файлов из общего доступа. папка на SERVER03.
  • Код для ListFiles.aspx.cs:
    < /ol>

    Код: Выделить всё

    using System;
    using System.IO;
    using System.Web.UI;
    
    namespace WebApplication1
    {
    public partial class ListFiles : Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    string networkPath = @"\\server03.contoso.local\test";
    try
    {
    string[] files = Directory.GetFiles(networkPath);
    foreach (string file in files)
    {
    Response.Write($"{file}
    ");
    }
    }
    catch (UnauthorizedAccessException ex)
    {
    Response.Write($"{ex.Message}");
    }
    }
    }
    }
    
  • Код: Выделить всё

    Web.config
    настройка:[/b]
  • Общая папка (

    Код: Выделить всё

    \\server03.contoso.local\test
    ) на SERVER03 имеет необходимые разрешения для пользователей CONTOSO\Domain с доступом на чтение.
Проблема:
Когда я пытаюсь получить доступ к странице http://file.contoso.local/ListFiles.aspx на WS01, я получаю сообщение «Доступ запрещен». ошибка после ввода моего учетные данные.
Предпринятые шаги по устранению неполадок:
  • Проверенные альтернативы:
    < ul>
    Альтернатива 1: Я протестировал замену общей папки на SERVER03 на папку на SERVER02. Это сработало, что указывает на то, что проблема, скорее всего, связана с делегированием на SERVER03.
  • Альтернатива 2: я изменил файл Web.config, чтобы он олицетворял contoso. Учетная запись \Администратора:
Это сработало, но, очевидно, не используется делегирование Kerberos, что и является целью.
  • Анализ Kerberos:
    • Я зафиксировал трафик Kerberos с помощью Wireshark. Первый TGS-REQ (для server02$) завершается успешно. Однако второй TGS-REQ (для cifs/server03.contoso.local) завершается с ошибкой:

Код: Выделить всё

krb-error
pvno: 5
msg-type: krb-error (30)
stime: Dec  6, 2024 16:42:34.000000000 Romance Standard Time
susec: 781312
error-code: eRR-BADOPTION (13)
realm: CONTOSO.LOCAL
sname
name-type: kRB5-NT-SRV-INST (2)
sname-string: 2 items
SNameString: cifs
SNameString: server03.contoso.local
e-data: 3015a103020103a20e040c250200c00000000003000000 pA-PW-SALT
  • Это указывает на потенциальную проблему с регистрацией имени субъекта-службы для cifs/server03.contoso.local.
    • Проверка SPN:

      Я выполнил следующую команду на контроллере домена:

Код: Выделить всё

PS C:\Users\Administrator> setspn -Q cifs/server03.contoso.local
Выход:

Код: Выделить всё

Checking domain DC=contoso,DC=local

CN=SERVER03,CN=Computers,DC=contoso,DC=local
cifs/server03.contoso.local
cifs/server03
WSMAN/SERVER03
WSMAN/SERVER03.contoso.local
RestrictedKrbHost/SERVER03
HOST/SERVER03
RestrictedKrbHost/SERVER03.contoso.local
HOST/SERVER03.contoso.local

Existing SPN found!
Несмотря на то, что SPN отображаются как присутствующие, ошибка сохраняется.
В чем мне нужна помощь:
  • Ошибка Kerberos eRR-BADOPTION (13) предполагает, что может возникнуть проблема с именем участника-службы для cifs/server03.contoso.local. Однако setspn показывает, что имя участника-службы существует. Может ли быть проблема с тем, что SPN не регистрируется должным образом или не распространяется по всему домену?
  • Как решить проблему «Доступ запрещен» при попытке получить доступ к общей папке на SERVER03 с Сервер IIS на SERVER02 с включенным делегированием Kerberos?
  • В конфигурации чего-то не хватает, особенно в отношении имени участника-службы или настроек делегирования? Поможет ли перерегистрация SPN или настройка параметров делегирования?
Будем очень признательны за любые идеи и предложения!

Подробнее здесь: https://stackoverflow.com/questions/792 ... cation-whe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Веб-приложение ASP.NET → Проверка подлинности Windows → IIS Express → Kerberos или NTLM?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Http 404 страница не найдена в веб -API, размещенном в IIS 7.5
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Сохранить файл PDF в безопасной общей папке из приложения IIS
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Приложение Flask на веб -сервере IIS, проблема с двойным прыжком Kerberos [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • В ASP.NET на .NET 4.8 буферизуется ли StreamContent с помощью ASP.NET или IIS?
    Anonymous » » в форуме C#
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»