annotate Lib/IMPL/Security/Auth.pm @ 72:eac47fa4f262

docs
author wizard
date Fri, 26 Mar 2010 16:26:31 +0300
parents d92d5ddaf524
children 2f31ecabe9ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
1 package IMPL::Security::Auth;
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
2
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
3 use Digest::MD5 qw(md5_hex);
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
4
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
5 use constant {
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
6 AUTH_SUCCESS => 1,
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
7 AUTH_INCOMPLETE => 2,
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
8 AUT_FAIL => 3
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
9 };
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
10
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
11 use base qw(Exporter);
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
12
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
13 our @EXPORT_OK = qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL &GenSSID);
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
14 our %EXPORT_TAGS = (Const => [qw(&AUTH_SUCCESS &AUTH_INCOMPLETE &AUTH_FAIL)]);
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
15
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
16 {
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
17 my $i = 0;
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
18 sub GenSSID() {
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
19 return md5_hex(time,rand,$i++);
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
20 }
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
21 }
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
22
69
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
23 sub DoAuth {
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
24 die new IMPL::NotImplementedException;
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
25 }
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
26
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
27 sub ValidateSession {
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
28 die new IMPL::NotImplementedException;
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
29 }
8c7b88bdb663 Cookie Simple auth support
wizard
parents: 68
diff changeset
30
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
31 1;
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
32
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
33 __END__
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
34
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
35 =pod
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
36
71
wizard
parents: 70
diff changeset
37 =head1 NAME
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
38
71
wizard
parents: 70
diff changeset
39 C<IMPL::Security::Auth> Базовыйы класс для пакетов аутентификации.
wizard
parents: 70
diff changeset
40
wizard
parents: 70
diff changeset
41 =head1 DESCRIPTION
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
42
70
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
43 Аутентификация носит итеративный характер, для чего создается объект аутентификации который
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
44 сохраняет состояние между итерациями.
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
45
70
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
46 Результатом аутентификации является сессия, состояние этой сессии также хранит объект
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
47 аутентификации.
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
48
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
49 В процессе авторизации клиент и сервер обмениеваются данными безопасности C<$challenge>.
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
50 И результатом каждой итерации является либо упех (C<AUTH_SUCCESS>), либо запрос на продолжение
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
51 (C<AUTH_INCOMPLETE>), либо неудача (C<AUTH_FAIL>). Количество итераций может быть разным,
2dfb0b0ad12f More docs
wizard
parents: 69
diff changeset
52 зависит от пакета аутентификации.
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
53
71
wizard
parents: 70
diff changeset
54 =head1 EXPORT
wizard
parents: 70
diff changeset
55
wizard
parents: 70
diff changeset
56 =over
wizard
parents: 70
diff changeset
57
wizard
parents: 70
diff changeset
58 =item C<:Const>
wizard
parents: 70
diff changeset
59
wizard
parents: 70
diff changeset
60 Константы результата аутентификации
wizard
parents: 70
diff changeset
61
wizard
parents: 70
diff changeset
62 =over
wizard
parents: 70
diff changeset
63
wizard
parents: 70
diff changeset
64 =item C<AUTH_SUCCESS>
wizard
parents: 70
diff changeset
65
wizard
parents: 70
diff changeset
66 Успешная аутентификация
wizard
parents: 70
diff changeset
67
wizard
parents: 70
diff changeset
68 =item C<AUTH_INCOMPLETE>
wizard
parents: 70
diff changeset
69
wizard
parents: 70
diff changeset
70 Требуются дополнительные шаги
wizard
parents: 70
diff changeset
71
72
wizard
parents: 71
diff changeset
72 =item C<AUTH_FAIL>
71
wizard
parents: 70
diff changeset
73
wizard
parents: 70
diff changeset
74 Аутентификация неуспешна.
wizard
parents: 70
diff changeset
75
wizard
parents: 70
diff changeset
76 =back
wizard
parents: 70
diff changeset
77
wizard
parents: 70
diff changeset
78 =back
wizard
parents: 70
diff changeset
79
wizard
parents: 70
diff changeset
80 =head1 MEMBERS
wizard
parents: 70
diff changeset
81
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
82 =over
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
83
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
84 =item C<CTOR($SecData)>
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
85
71
wizard
parents: 70
diff changeset
86 Создает пакет для авторизации на основе данных безопасности для пользователя.
wizard
parents: 70
diff changeset
87 C<$SecData> - Зависит от пакета аутентификации.
wizard
parents: 70
diff changeset
88
wizard
parents: 70
diff changeset
89 =item C<DoAuth($Challenge)>
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
90
71
wizard
parents: 70
diff changeset
91 Производит аутентификацию пользователя и инициализацию сессии,
wizard
parents: 70
diff changeset
92 возвращает результат аутентификации, в виде массива ($status,$challenge).
wizard
parents: 70
diff changeset
93
wizard
parents: 70
diff changeset
94 =item C<ValidateSession($Challenge)>
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
95
71
wizard
parents: 70
diff changeset
96 Производит аутентификацию сессии, возвращает результат аутентификации,
wizard
parents: 70
diff changeset
97 в виде массива ($status,$challenge).
wizard
parents: 70
diff changeset
98
wizard
parents: 70
diff changeset
99 =item C<[static] CreateSecData(%args)>
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
100
71
wizard
parents: 70
diff changeset
101 Создает данные безопасности, на основе параметров. Параметры зависят от пакета аутентификации.
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
102
71
wizard
parents: 70
diff changeset
103 =item C<[static] SecDataArgs()>
wizard
parents: 70
diff changeset
104
wizard
parents: 70
diff changeset
105 Возвращает хеш с описанием параметров для функции C<CreateSecData>. Ключами являются
wizard
parents: 70
diff changeset
106 имена параметров, значениями - типы.
52
15d720913562 security in work
wizard@linux-odin.local
parents: 51
diff changeset
107
51
a1498298d3ee Security in progress
wizard@linux-odin.local
parents:
diff changeset
108 =cut