Приложение 8. Пример идентификации и аутентификации по Kerberos-протоколу
В примере демонстрируется открытие соединения в клиентском приложении с СУБД ЛИНТЕР с идентификацией и аутентификацией по Kerberos-протоколу.
Предполагается, что Kerberos-сервер корректно настроен, ядро СУБД ЛИНТЕР активно и на компьютере с клиентским приложением получен Kerberos-тикет для пользователя "user" (т.е. пользователь с таким именем создан в БД аутентификации Kerberos-сервера).
Пользователь с именем "invalid_user" в БД ЛИНТЕР не существует, он используется для демонстрации того, что введенные регистрационные данные при идентификации и аутентификации по Kerberos-протоколу игнорируются.
#include < stdio.h > #include < stdlib.h > #include "inter.h" int main() { TCBL CBL = {0}; L_CHAR Node[] = " "; L_CHAR name[] = "invalid_user/invalid_password"; L_CHAR forceKrb = 1; memset( CBL.Node, 0, MAX_NODE_LEN ); memcpy( CBL.Node, Node, strlen(Node) ); memcpy( CBL.Command, "OPEN", 4); CBL.PrzExe = 0; inter( &CBL, name, NULL, NULL, NULL ); if ( CBL.CodErr ) printf( "1.Error %d\n", CBL.CodErr ); /* Код завершения 1025, т.к. такого пользователя */ /* в БД не существует */ inter_control( NULL, ICR_FORCE_KRB, &forceKrb, 1 ); inter( &CBL, name, NULL, NULL, NULL ); if ( !CBL.CodErr ) printf( "2.Success\n"); /* Нет ошибки, т.к. аутентифицировался пользователь */ /* user по Kerberos-протоколу */ return 0; }
После запуска будет выведено
1.Error 1025 2.Success