6 #ifndef ALD_KADM5_WRAPPER
7 #define ALD_KADM5_WRAPPER
23 #define KADM5_ITF_NAME "kadmin"
27 #define KRB5_ITF_VERSION_1 1
28 #define KRB5_ITF_VERSION_2 2
32 #define KRB5CCNAME "KRB5CCNAME"
86 #define ALD_KRB_SET_PW_MAX_LIFE 0x01
89 #define ALD_KRB_SET_PW_MIN_LIFE 0x02
91 #define ALD_KRB_SET_PW_MIN_LENGTH 0x04
93 #define ALD_KRB_SET_PW_MIN_CLASSES 0x08
95 #define ALD_KRB_SET_PW_HISTORY_NUM 0x10
99 #define ALD_KRB_SET_PW_MAX_FAIL 0x20
100 #define ALD_KRB_SET_PW_FAIL_CNT_INT 0x40
102 #define ALD_KRB_SET_PW_LCK_OUT_DUR 0x80
107 #define ALD_KRB_SET_PW_ALL ALD_KRB_SET_PW_MAX_LIFE | ALD_KRB_SET_PW_MIN_LIFE | ALD_KRB_SET_PW_MIN_LENGTH \
108 | ALD_KRB_SET_PW_MIN_CLASSES | ALD_KRB_SET_PW_HISTORY_NUM | ALD_KRB_SET_PW_MAX_FAIL \
109 | ALD_KRB_SET_PW_FAIL_CNT_INT | ALD_KRB_SET_PW_LCK_OUT_DUR
136 princ_expire_time = 0;
145 max_renewable_life = 0;
151 #define ALD_KRB_DISALLOW_ALL_TIX 0x00000040
154 #define ALD_KRB_REQUIRES_PWCHANGE 0x00000200
156 #define ALD_KRB_DISALLOW_TGT_BASED 0x00000004
160 #define ALD_KRB_SET_POLICY 0x000800
161 #define ALD_KRB_SET_RANDKEY 0x001000
163 #define ALD_KRB_SET_PWCHANGE 0x002000
165 #define ALD_KRB_SET_DISALLOWTIX 0x004000
167 #define ALD_KRB_SET_MAXLIFE 0x008000
169 #define ALD_KRB_SET_MAXRLIFE 0x010000
171 #define ALD_KRB_CLR_FAILCNT 0x020000
173 #define ALD_KRB_SET_DISALLOWTGTBASED 0x040000
178 #define ALD_KRB_STR_ACCOUNT_TYPE "ald_account"
180 #define ALD_KRB_STR_ACCOUNT_USER "user"
181 #define ALD_KRB_STR_ACCOUNT_SERVICE "service"
182 #define ALD_KRB_STR_ACCOUNT_INTERNAL "internal"
194 virtual unsigned int GetItfVersion() = 0;
203 virtual void ConnectPassword(
const string& user,
const string& pwd,
bool kadmin,
bool savecred =
false) = 0;
211 virtual void ConnectKeytab(
const string& user,
const string& keytab,
bool kadmin,
bool savecred =
false) = 0;
217 virtual string ConnectCreds(
const string& cache,
bool kadmin) = 0;
219 virtual bool IsConnected() = 0;
224 virtual void Disconnect(
bool keep_cred =
false) = 0;
231 virtual void Policies(
const string& expr,
ald_string_list& pollist) = 0;
253 virtual void PolicyDel(
const string& policy) = 0;
260 virtual void Principals(
const string& expr,
ald_string_list& princlist) = 0;
272 virtual void PrincipalAdd(
CALDKrbPrincipalPtr Principal,
const string& pwd,
unsigned int setmask) = 0;
295 virtual void PrincipalSetString(
CALDKrbPrincipalPtr Principal,
const string &key,
const string &val) = 0;
309 virtual bool KeytabCheckPrincipal(
const string& keytab,
const string& princname) = 0;
315 virtual void KeytabAddPrincipal(
const string& keytab,
const string& princname) = 0;
321 virtual void KeytabRmPrincipal(
const string& keytab,
const string& princname) = 0;
327 virtual void KeytabPrincipals(
const string& keytab,
ald_string_list& princlist) = 0;
330 virtual string GetDefaultRealm() = 0;
331 virtual long GetLastError() = 0;
332 virtual bool IfReconnectNeeded() = 0;
333 virtual string GetUserId() = 0;
355 #define ADM_KRB_USER_NAME "K/M"
360 #endif // ALD_KADM5_WRAPPER
Абстрактный класс-интерфейс соединения с сервером Kerberos.
Definition: kadm5-wrapper.h:191
shared_ptr< IALDKadm5Wrapper > CALDKadm5WrapperPtr
Разделяемый указатель на интерфейс взаимодействия с Kerberos IALDKadm5Wrapper.
Definition: kadm5-wrapper.h:352
time_t last_failed
Время последней неуспешной попытки аутентификации
Definition: kadm5-wrapper.h:127
list< string > ald_string_list
Список строк
Definition: ALDUtils.h:152
Объявление основного интерфейса клиента Astra Linux Directory и необходимых для него типов и интерфей...
Абстрактный класс-интерфейс взаимодействия с Kerberos.
Definition: kadm5-wrapper.h:345
unsigned int lockout_duration
Длительность блокировки
Definition: kadm5-wrapper.h:51
unsigned int refcnt
Счетчик использования политики
Definition: kadm5-wrapper.h:47
unsigned int fail_auth_count
Количество неуспешных попыток аутентификации
Definition: kadm5-wrapper.h:128
#define KADM5_ITF_NAME
Имя интерфейса Kerberos.
Definition: kadm5-wrapper.h:24
string policy
Имя политики паролей
Definition: kadm5-wrapper.h:121
virtual ~IALDKadm5Connection()
Деструктор
Definition: kadm5-wrapper.h:335
unsigned int itf_version
Версия протокола Kerberos.
Definition: kadm5-wrapper.h:41
virtual ~CALDKrbPolicy()
Деструтор
Definition: kadm5-wrapper.h:82
unsigned int history_num
Размер истории паролей
Definition: kadm5-wrapper.h:46
Класс политики паролей Kerberos.
Definition: kadm5-wrapper.h:37
virtual ~CALDKrbPrincipal()
Деструктор
Definition: kadm5-wrapper.h:147
time_t pw_expiration
Время истечения действия пароля
Definition: kadm5-wrapper.h:124
IALDKadm5Wrapper(IALDCore &Core)
Конструктор
Definition: kadm5-wrapper.h:348
unsigned int max_fail
Максимальное количество неверных вводов пароля до блокировки
Definition: kadm5-wrapper.h:49
Базовый класс интерфейса
Definition: ALDCore.h:83
unsigned int max_life
Максимальное время действия билета
Definition: kadm5-wrapper.h:130
unsigned int attributes
Вектор атрибутов
Definition: kadm5-wrapper.h:129
unsigned int max_renewable_life
Максимальное возобновляемое время действия билета
Definition: kadm5-wrapper.h:131
unsigned int max_life
Максимальное время действия пароля
Definition: kadm5-wrapper.h:43
map< string, string > ald_string_map
MAP строка => строка
Definition: ALDUtils.h:164
unsigned int itf_version
Версия протокола Kerberos.
Definition: kadm5-wrapper.h:120
shared_ptr< CALDKrbPolicy > CALDKrbPolicyPtr
Разделяемый указатель на политику паролей Kerberos CALDKrbPolicy.
Definition: kadm5-wrapper.h:111
time_t princ_expire_time
Максимальное время действия учетной записи
Definition: kadm5-wrapper.h:122
unsigned int min_classes
Минимальное количество классов символов
Definition: kadm5-wrapper.h:45
unsigned int min_life
Минимальное время действия пароля
Definition: kadm5-wrapper.h:42
time_t last_success
Время последней успешной попытки аутентификации
Definition: kadm5-wrapper.h:126
ald_string_map strings
Строковые атрибуты
Definition: kadm5-wrapper.h:132
string name
Имя политики
Definition: kadm5-wrapper.h:40
Класс принципала Kerberos.
Definition: kadm5-wrapper.h:116
shared_ptr< IALDKadm5Connection > CALDKadm5ConnPtr
Разделяемый указатель на интерфейс соединения с сервером Kerberos.
Definition: kadm5-wrapper.h:338
Основной заголовочный файл, содержащий необходимый минимум предварительных объявлений и включений дру...
void Assign(CALDKrbPolicy &policy)
Копирование свойств с другой политики
Definition: kadm5-wrapper.h:69
shared_ptr< CALDKrbPrincipal > CALDKrbPrincipalPtr
Разделяемый указатель на принципал Kerberos CALDKrbPrincipal.
Definition: kadm5-wrapper.h:185
unsigned int min_length
Минимальная длина
Definition: kadm5-wrapper.h:44
#define KRB5_ITF_VERSION_2
Версия 2 протокола Kerberos.
Definition: kadm5-wrapper.h:29
time_t last_pwd_change
Время последней смены пароля
Definition: kadm5-wrapper.h:123
unsigned int failcnt_interval
Время между попытками ввода при неверном вводе
Definition: kadm5-wrapper.h:50
time_t mod_date
Время модификации
Definition: kadm5-wrapper.h:125
Абстрактный класс IALDCore - основной интерфейс клиента Astra Linux Directory, с помощью которого вып...
Definition: ALDCore.h:241
string name
Имя принципала
Definition: kadm5-wrapper.h:119