Приложение 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