Как получить основное имя после аутентификации

Используя библиотеки MIT gss-api, я написал программу на C, которая получает в качестве входных данных полный токен Negotiate и выполняет аутентификацию kerberos (используя keytab на стороне сервера). Программа успешно вызывает gss_acquire_cred, а затем gss_accept_sec_context, и я могу создать контекст и вернуть токен клиента.

Теперь, как я могу получить имя клиента/имя пользователя? Я подумал, что, возможно, вызов krb5_build_principal является правильным способом, но я не вижу, как получить все входные параметры для этой функции.


person nambar    schedule 21.07.2015    source источник
comment
Вы ответили помогите?   -  person Michael-O    schedule 27.08.2015


Ответы (1)


Поскольку у вас есть дескриптор контекста на принимающей стороне, вы можете вызвать gss_inquire_context, чтобы запросить src_name, который инициировал (ваш клиент) контекст, или вы запрашиваете gss_accept_sec_context напрямую, чтобы вернуть это значение. Пример кода доступен по запросу.

person Michael-O    schedule 15.08.2015