Как получить основное имя после аутентификации
Используя библиотеки 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
непосредственно, чтобы вернуть это значение. Пример кода доступен по запросу.