1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
|
<refsect1 id='idmap'>
<title>СОПОСТАВЛЕНИЕ ИДЕНТИФИКАТОРОВ</title>
<para>
Возможность сопоставления идентификаторов позволяет SSSD выступать в роли
клиента Active Directory, при этом администраторам не требуется расширять
атрибуты пользователя с целью поддержки атрибутов POSIX для идентификаторов
пользователей и групп.
</para>
<para>
ПРИМЕЧАНИЕ: когда сопоставление идентификаторов включено, атрибуты uidNumber
и gidNumber игнорируются. Это позволяет избежать возможных конфликтов между
значениями, назначенными автоматически, и значениями, назначенными
вручную. Если требуется использовать значения, назначенные вручную, следует
назначить вручную ВСЕ значения.
</para>
<para>
Обратите внимание, что изменение параметров конфигурации, связанных с
сопоставлением идентификаторов, приведёт к изменению идентификаторов
пользователей и групп. В настоящее время SSSD не поддерживает изменение
идентификаторов, поэтому базу данных SSSD необходимо удалить. Так как
кэшированные пароли также хранятся в в этой базе данных, её удаление должно
выполняться только тогда, когда серверы проверки подлинности доступны; в
ином случае пользователи могут быть заблокированы. Для кэширования пароля
необходимо выполнить проверку подлинности. Для удаления базы данных
недостаточно использовать <citerefentry>
<refentrytitle>sss_cache</refentrytitle> <manvolnum>8</manvolnum>
</citerefentry>, на самом деле требуются следующие шаги:
<itemizedlist>
<listitem>
<para>
Проверка доступности удалённых серверов
</para>
</listitem>
<listitem>
<para>
Остановка службы SSSD
</para>
</listitem>
<listitem>
<para>
Удаление базы данных
</para>
</listitem>
<listitem>
<para>
Запуск службы SSSD
</para>
</listitem>
</itemizedlist>
Более того, поскольку смена идентификаторов может сделать необходимым
изменение других свойств системы, таких как параметры владения файлами и
каталогами, рекомендуется спланировать всё заранее и тщательно
протестировать конфигурацию сопоставления идентификаторов.
</para>
<refsect2 id='idmap_algorithm'>
<title>Алгоритм сопоставления</title>
<para>
Active Directory предоставляет objectSID для всех объектов пользователей и
групп в каталоге. Этот objectSID можно разбить на компоненты, которые
соответствуют идентификатору домена Active Directory и относительному
идентификатору (RID) объекта пользователя или группы.
</para>
<para>
Алгоритм сопоставления идентификаторов SSSD берёт диапазон доступных UID и
делит его на разделы равного размера — «срезы». Каждый срез представляет
собой пространство, доступное домену Active Directory.
</para>
<para>
Когда запись пользователя или группы определённого домена встречается SSSD в
первый раз, SSSD выделяет один из доступных срезов для этого домена. Чтобы
такое назначение срезов воспроизводилось на разных клиентских компьютерах,
предусмотрен следующий алгоритм выбора среза:
</para>
<para>
Строка SID передаётся через алгоритм murmurhash3 для её преобразования в
32-битное хэшированное значение. Затем для выбора среза это значение с общим
количеством срезов берётся по модулю.
</para>
<para>
ПРИМЕЧАНИЕ: между хэшем и полученным далее модулем возможны конфликты. В
таких случаях будет выбран следующий доступный срез, но на других
компьютерах может быть невозможно воспроизвести точно такой же набор срезов
(так как порядок, в котором они встречаются, определяет срез). В такой
ситуации рекомендуется либо переключиться на использование явных атрибутов
POSIX в Active Directory (отключить сопоставление идентификаторов), либо
настроить стандартный домен, чтобы гарантировать согласованность хотя бы для
одного. См. <quote>Конфигурация</quote>.
</para>
</refsect2>
<refsect2 id='idmap_config'>
<title>Конфигурация</title>
<para>
Минимальная конфигурация (в разделе <quote>[domain/DOMAINNAME]</quote>):
</para>
<para>
<programlisting>
ldap_id_mapping = True
ldap_schema = ad
</programlisting>
</para>
<para>
При стандартной конфигурации настраивается 10000 срезов, каждый из которых
может содержать до 200000 идентификаторов, начиная от 200000 и до
2000200000. Этого должно быть достаточно для большинства вариантов
развёртывания.
</para>
<refsect3 id='idmap_advanced_config'>
<title>Дополнительная конфигурация</title>
<variablelist>
<varlistentry>
<term>ldap_idmap_range_min (целое число)</term>
<listitem>
<para>
Указывает нижнюю (включительно) границу диапазона идентификаторов POSIX,
которые следует использовать для сопоставления SID пользователей и групп
Active Directory. Это первый идентификатор POSIX, который можно использовать
для сопоставления.
</para>
<para>
ПРИМЕЧАНИЕ: этот параметр отличается от <quote>min_id</quote>:
<quote>min_id</quote> работает как фильтр ответов на запросы к этому домену,
в то время как этот параметр управляет диапазоном назначения
идентификаторов. Это тонкое различие, но рекомендуется устанавливать
значение <quote>min_id</quote> меньшим или равным значению
<quote>ldap_idmap_range_min</quote>
</para>
<para>
По умолчанию: 200000
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ldap_idmap_range_max (целое число)</term>
<listitem>
<para>
Указывает верхнюю (не включительно) границу диапазона идентификаторов POSIX,
которые следует использовать для сопоставления идентификаторов SID
пользователей и групп Active Directory. Это первый идентификатор POSIX,
который нельзя использовать для сопоставления, т.е. данный идентификатор на
единицу больше последнего, которым можно воспользоваться для сопоставления.
</para>
<para>
ПРИМЕЧАНИЕ: этот параметр отличается от <quote>max_id</quote>:
<quote>max_id</quote> работает как фильтр ответов на запросы к этому домену,
в то время как этот параметр управляет диапазоном назначения
идентификаторов. Это тонкое различие, но рекомендуется устанавливать
значение <quote>max_id</quote> большим или равным значению
<quote>ldap_idmap_range_max</quote>
</para>
<para>
По умолчанию: 2000200000
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ldap_idmap_range_size (целое число)</term>
<listitem>
<para>
Указывает количество идентификаторов, доступных для каждого среза. Если
размер диапазона не делится нацело на минимальное и максимальное значения,
будет создано столько полных срезов, сколько возможно.
</para>
<para>
ПРИМЕЧАНИЕ: значение этого параметра должно быть не меньше значения
максимального RID пользователя, запланированного для использования на
сервере Active Directory. Поиск записи пользователя и вход завершатся
неудачей для всех пользователей, RID которых превышает значение этого
параметра.
</para>
<para>
Например, если у последнего добавленного пользователя Active Directory
objectSid=S-1-5-21-2153326666-2176343378-3404031434-1107,
значение<quote>ldap_idmap_range_size</quote> должно равняться минимум 1108,
так как размер диапазона рассчитывается как максимальный SID минус
минимальный SID плюс один (т.е. 1108 = 1107 - 0 + 1).
</para>
<para>
Для будущего расширения важно всё спланировать заранее,поскольку изменение
этого значения приведёт к изменению всех сопоставлений идентификаторов в
системе и, следовательно, изменению локальных идентификаторов пользователей.
</para>
<para>
По умолчанию: 200000
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ldap_idmap_default_domain_sid (строка)</term>
<listitem>
<para>
Позволяет указать SID стандартного домена. Это гарантирует, что этот домен
всегда будет назначаться нулевому срезу в карте идентификаторов, в обход
описанного выше алгоритма murmurhash.
</para>
<para>
По умолчанию: не задано
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ldap_idmap_default_domain (строка)</term>
<listitem>
<para>
Позволяет указать имена домена по умолчанию.
</para>
<para>
По умолчанию: не задано
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ldap_idmap_autorid_compat (логическое значение)</term>
<listitem>
<para>
Изменяет поведения алгоритма сопоставления идентификаторов, делая его более
похожим на алгоритм <quote>idmap_autorid</quote> winbind.
</para>
<para>
When this option is configured, domains will be allocated starting with
slice zero and increasing monotonically with each additional domain.
</para>
<para>
ПРИМЕЧАНИЕ: этот алгоритм является недетерминированным (он зависит от
порядка, в котором запрашиваются пользователи и группы). Если этот режим
требуется для обеспечения совместимости с компьютерами, где работает
winbind, рекомендуется также использовать параметр
<quote>ldap_idmap_default_domain_sid</quote>, чтобы гарантировать постоянное
выделение хотя бы одного домена для нулевого среза.
</para>
<para>
По умолчанию: false
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ldap_idmap_helper_table_size (целое число)</term>
<listitem>
<para>
Максимальное количество вторичных срезов, которое можно использовать при
сопоставлении идентификатору UNIX номера SID.
</para>
<para>
Примечание: дополнительные вторичные срезы могут быть созданы, когда
выполняется сопоставление SID с идентификатором UNIX и часть RID SID
находится за пределами диапазона для уже созданных вторичных срезов. Если
значение параметра ldap_idmap_helper_table_size равно нулю, дополнительные
вторичные срезы не будут созданы.
</para>
<para>
По умолчанию: 10
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect3>
</refsect2>
<refsect2 id='well_known_sids'>
<title>Известные SID</title>
<para>
SSSD поддерживает поиск имён известных SID, то есть SID со специальным
жёстко заданным значением. Так как типичные пользователи и группы, связанные
с этими известными SID, не имеют аналогов в среде Linux/UNIX, для этих
объектов недоступны идентификаторы POSIX.
</para>
<para>
Пространство имён SID организовано по центрам, которые можно рассматривать
как разные домены. Для известных SID используются следующие центры
<itemizedlist>
<listitem><para>Null Authority</para></listitem>
<listitem><para>World Authority</para></listitem>
<listitem><para>Local Authority</para></listitem>
<listitem><para>Creator Authority</para></listitem>
<listitem><para>Mandatory Label Authority</para></listitem>
<listitem><para>Authentication Authority</para></listitem>
<listitem><para>NT Authority</para></listitem>
<listitem><para>Built-in</para></listitem>
</itemizedlist>
Записанные прописными буквами варианты этих имён используются в качестве
имён доменов при возврате полных имён известных SID.
</para>
<para>
Так как некоторые утилиты позволяют изменять данные управления доступом на
основе SID с помощью имени, а не непосредственного использования SID, SSSD
также поддерживает поиск SID по имени. Чтобы избежать конфликтов, для поиска
известных SID разрешается использовать только полные имена. Следовательно,
нельзя использовать в качестве имён доменов в <filename>sssd.conf</filename>
следующие названия: <quote>NULL AUTHORITY</quote>, <quote>WORLD
AUTHORITY</quote>, <quote> LOCAL AUTHORITY</quote>, <quote>CREATOR
AUTHORITY</quote>, <quote>MANDATORY LABEL AUTHORITY</quote>,
<quote>AUTHENTICATION AUTHORITY</quote>, <quote>NT AUTHORITY</quote> и
<quote>BUILTIN</quote>.
</para>
</refsect2>
</refsect1>
|