Аутентификация через SSPI + Kerberos

Discussion in 'Windows' started by redowlet, 5 Feb 2013.

  1. redowlet

    redowlet New Member

    Joined:
    29 Jan 2013
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Полностью суть проблемы на Тема в разделе о программировании

    Написал пример аутентификации через SSPI + Kerberos под WinXP. Удалось заставить работать только в пределах одного домена. Т.е. удается проверить имя пользователя, пароль, домен в том случае если запуск тестовой программки производится под учетной записью (пользователем) из данного домена. Если запускать не из этого домена, то функция InitializeSecurityContext(...) возвращает код ошибки 0х8009030C ("The logon attempt failed.")

    Собственно вопрос:
    Один из параметров функции InitializeSecurityContext является pszTargetName - указатель на строку. Так вот я при удачной аутентификации в рамках одного домена указываю в ней имя пользователя из под которого запускается тест. Возможно в случае аутентификации из одного домена в другой требуется что-то другое указывать.
    Параметр pszTargetName функции InitializeSecurityContext на сайте MSDN описан так:
    "A pointer to a null-terminated string that indicates the service principal name (SPN) or the security context of the destination server.
    Use a fully qualified target name because short names are not supported across forests.
    "
    В книге Дж. Рихтера так описан:
    "Параметр pszTargetName — это имя пользователя сервера, на котором вы проходите аутентификацию. Если сервер на своей машине работает с системной учетной записью, pszTargetName является именем машины."

    Может кто подсказать какое значение параметра pszTargetName следует использовать при аутентификации из одного домена пользователя другого домена?
    То что данная возможность имеется я проверяю командой "net use ..." и просмотром лога на Windows Server 2003.