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

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

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

1 ответ

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

Другие вопросы по тегам