Я использую DCOM для предоставления различных сервисов приложений в сети Windows, используя Kerberos для обработки аутентификации. Система нормально работает нормально, но у меня возникают проблемы с доступом к сервису из отдельного (доверенного) домена. В частности, служба не может выполнить обратные вызовы клиентскому приложению, получая ошибку «Произошла ошибка, связанная с пакетом безопасности». Кроме того, если я настрою службу для особой проверки подлинности Kerberos (вместо использования SNEGO /gotiate), клиент не сможет даже вызвать сервер (снова получая сообщение «Произошла ошибка, специфичная для пакета безопасности»).
Смущает то, что все годы работали без проблем. Тем не менее, некоторые вещи здесь отличаются от того, что мы делали раньше. Во-первых, задействованные серверы работают под управлением Windows 2008, которую я ранее не использовал. Кроме того, как отмечалось выше, ошибки возникают только тогда, когда к службе обращаются из учетной записи из отдельного домена, и предыдущее использование никогда не пыталось это сделать.
Теперь к вопросу: я не использую SPN (имя участника службы) для этой службы DCOM, но некоторые ошибки и журналы событий заставляют меня думать, что это может быть проблемой. Однако все документы, которые я нашел, неясно, правильно ли это, или как я бы настроил SPN, если мне это нужно. Кто-нибудь знает наверняка, является ли SPN тем, чего мне не хватает здесь? Если так, можете ли вы указать мне, как это должно быть сделано?
Дополнительные сведения:
Для сценария, в котором сервер настроен на принудительную аутентификацию Kerberos, включение Расширенная отладка RPC дает некоторые дополнительные подсказки. Клиент может успешно подключиться с помощью CoCreateInstanceEx, но вызовы интерфейса службы завершаются неудачно, как указано выше. Записи ошибок RPC показывают ошибку в местоположении 140, и код ошибки - 0x80090303 («Указанная цель неизвестна или недоступна»), а третий параметр для этой записи - пустая строка. Это указывает на отсутствующий SPN как на виновника.