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