Nano Hash - криптовалюты, майнинг, программирование

Требуется ли SPN при использовании Kerberos с DCOM?

Я использую DCOM для предоставления различных служб приложений в сети Windows, используя Kerberos для обработки аутентификации. Система обычно работает нормально, но у меня возникают проблемы с доступом к службе из отдельного (доверенного) домена. В частности, служба не может выполнять обратные вызовы клиентскому приложению, получая сообщение об ошибке «Произошла ошибка, связанная с конкретным пакетом безопасности». Кроме того, если я настраиваю службу так, чтобы она требовала проверки подлинности Kerberos (вместо использования SNEGO / согласования), клиент даже не может позвонить на сервер (снова получая сообщение «Произошла ошибка, связанная с пакетом безопасности»).

Смущает то, что все работает без проблем годами. Однако здесь есть несколько отличий от того, что мы делали раньше. Во-первых, задействованные серверы работают под управлением Windows 2008, которую я ранее не использовал. Кроме того, как отмечалось выше, ошибки возникают только тогда, когда к службе обращаются из учетной записи из отдельного домена, и предыдущее использование никогда не пыталось это сделать.

Теперь к вопросу: я не использую SPN (имя участника-службы) для этой службы DCOM, но некоторые ошибки и журналы событий заставляют меня думать, что это может быть проблемой. Однако во всех найденных мною документах неясно, правильно ли это, и как я бы настроил SPN, если он мне действительно нужен. Кто-нибудь знает наверняка, что мне здесь не хватает SPN? Если да, не могли бы вы указать мне, как это должно быть сделано?

Дополнительная информация:

Для сценария, когда сервер настроен на принудительную проверку подлинности Kerberos, включение Расширенная отладка RPC дает некоторые дополнительные подсказки. Клиент может успешно подключиться с помощью CoCreateInstanceEx, но вызовы интерфейса службы завершаются ошибкой, как указано выше. В записях об ошибках RPC отображается ошибка в местоположении 140, код ошибки - 0x80090303 («Указанная цель неизвестна или недоступна»), а третий параметр для этой записи - пустая строка. Это указывает на отсутствие SPN как на виновника.


Ответы:


1

Как бы то ни было, Kerberos по определению требует имен участников-служб. Возможно, вы сможете использовать встроенный SPNS (host /) и различные варианты, которые подразумевает host (этот перевод псевдонима хранится в AD, но, черт возьми, я не могу найти список статей, где это найдено).

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

18.03.2009
  • Спасибо за информацию. Раньше я пробовал вести журнал Kerberos (и некоторые другие журналы, о которых читал), но так и не смог решить проблему. 20.03.2009
  • Дополнительное подтверждение: technet.microsoft.com/en- us / library / cc772815 (v = ws.10) .aspx говорит, что без правильно установленного SPN аутентификация Kerberos невозможна. 02.07.2013
  • Наконец-то обновили это ... Сопоставления SPN в CN = Directory Service, CN = Windows NT, CN = Services, CN = Configuration, DC = MyDC, DC = com ›sPNMappings: host = alertter, appmgmt, cisvc, clipsrv, browser, dhcp, dnscache, репликатор, журнал событий, система событий, policyagent, oakley, dmserver, dns, mcsvc, факс, msiserver, ias, messenger, netlogon, ne tman, netdde, netddedsm, nmagent, plugplay, protectedstorage, rasman, rpclocator, rpc, rpcss, , rsvp, samss, scardsvr, scesrv, seclogon, scm, dcom, cifs, spooler, snmp, schedule, tapisrv, trk svr, trkwks, ups, time, wins, www, http, w3svc, iisadmin, msdtc Источник: blog.joeware.net/2008/07/17/1407 03.07.2013

  • 2

    Изменить. Похоже, я несколько ошибаюсь. По крайней мере, на одном обнаруженном мной веб-сайте указано, что DCOM автоматически обрабатывает SPN за вас. (см. нижнюю часть страницы), и я подтвердил, что клиенты могут успешно подключаться, если они требуют аутентификации Kerberos и используют "host / [computername]" в качестве SPN.


    Похоже, что для службы требуется SPN, если вам явно требуется проверка подлинности Kerberos при вызове CoInitializeSecurity в процессе сервера DCOM. Для меня звонок выглядел так:

    Предупреждение. Не копируйте этот код напрямую, не убедившись, что значения соответствуют вашим требованиям безопасности.

    SOLE_AUTHENTICATION_SERVICE sas;
    sas.dwAuthnSvc = RPC_C_AUTHN_GSS_KERBEROS;
    sas.dwAuthzSvc = RPC_C_AUTHZ_NONE;
    sas.pPrincipalName = L"myservice/mymachine";
    sas.hr = S_OK;
    CoInitializeSecurity( 0, 1, &sas, 0, RPC_C_AUTHN_LEVEL_DEFAULT,
        RPC_C_IMP_LEVEL_DEFAULT, 0, EOAC_NONE, 0 );
    

    Имя участника-службы можно настроить с помощью setspn, как показано ниже:

    setspn -A myservice/mymachine serviceusername
    

    (подробности см. в документации по setspn).

    К сожалению, это все еще не решило мою проблему, но я думаю, что оставшаяся проблема связана с какой-то конкретной проблемой с тестовыми машинами.

    05.02.2009

    3

    Я столкнулся с этой ошибкой при попытке создать экземпляр удаленного COM-объекта. Мы можем столкнуться с этой ошибкой, если уровень олицетворения «Делегировать» используется клиентом во время вызова CoInitializeSecurity (), а служба COM + работает под учетной записью пользователя, не имеющей разрешения на «делегирование» на уровне домена.

    07.07.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..