Настройка и тестирование десктопного приложения c Kerberos аутентификацией#
Исходные данные#
Имеется сервер контроллера домена FreeIPA:
имя домена astra.aaa
администратор домена admin@astra.aaa
пользователь домена user-01@astra.aaa
имя сервера аdc-01.astra.aaa
сервер имеет постоянный IP-адрес, например, 192.168.1.20
Пользовательский компьютер располагается на отдельном компьютере:
имя компьютера pc-01.astra.aaa
компьютер должен быть введен в домен
компьютер имеет постоянный IP-адрес, например, 192.168.1.22
База данных располагается на отдельном сервере:
имя сервера dbsrv-01.astra.aaa
сервер должен быть введен в домен
сервер имеет постоянный IP-адрес, например, 192.168.1.23
настроенная для GSS СУБД Postgresql
Настройка компьютера пользователя#
Для настройки компьютера пользователя необходимо перейти по ссылке и выполнить действия по инструкции:
Настройка сервера базы данных#
Для настройки сервера базы данных необходимо перейти по ссылке и выполнить действия по инструкции:
Настройка приложения#
Пункт 1#
установить пакет драйвера подключения к базе данных libpq-dev:
sudo apt install libpq-dev
Пункт 2#
создать в домашней директории пользователя файл postgres_test.cpp и сохранить в него код:
#include <iostream>
#include <postgresql/libpq-fe.h>
int main() {
const char *conninfo = "host=dbsrv-01.astra.aaa port=5432 dbname=postgres sslmode=require gssencmode=prefer";
PGconn *conn = PQconnectdb(conninfo);
if (PQstatus(conn) != CONNECTION_OK) {
std::cerr << "Ошибка подключения: " << PQerrorMessage(conn) << std::endl;
PQfinish(conn);
return 1;
}
std::cout << "Подключение успешно установлено!" << std::endl;
PGresult *res = PQexec(conn, "SELECT version();");
if (PQresultStatus(res) != PGRES_TUPLES_OK) {
std::cerr << "Ошибка выполнения запроса: " << PQerrorMessage(conn) << std::endl;
PQclear(res);
PQfinish(conn);
return 1;
}
std::cout << "Версия PostgreSQL: " << PQgetvalue(res, 0, 0) << std::endl;
PQclear(res);
PQfinish(conn);
std::cout << "Подключение закрыто." << std::endl;
return 0;
}
собрать приложение:
g++ postgres_test.cpp -o postgres_test -lpq
Тестирование приложения#
Пункт 1#
открыть терминал, и из домашней папки пользователя вызвать следующую команду для запуска приложения:
./postgres_test
Пункт 2#
проверить результат, он должен иметь вид:
Подключение успешно установлено!
Версия PostgreSQL: PostgreSQL 15.6 (Debian 15.6-astra.se2+b1) on x86_64-pc-linux-gnu, compiled by gcc (Astra 12.2.0-14.astra3+b1) 12.2.0, 64-bit
Подключение закрыто.