FreeIPA
Прежде чем создать сервисную учетную запись, создайте необходимые разрешения, привилегии, роли.
Добавление разрешений, привилегий, ролей
Войдите в веб-версию FreeIPA по адресу https://<dns_имя_сервера>/ipa/ui/# под учетной записью администратора в формате admin@<dns_имя_сервера>.
Перейдите на вкладку IPA Server и в выпадающем списке Role-Based Access Control выберите Permissions и нажмите Add.
Чтение и поиск пользователей
- Permission name — укажите имя разрешения, например am-user-read.
- Granted Rights — выберите
read
,search
. - Subtree — введите имя домена в формате Distinguished name, например
cn=users,cn=accounts,dc=test,dc=realm
. - Extra target filter —
(objectClass=person)
. - Effective attributes — укажите каждый атрибут по одному в отдельной строке:
cn
entryDN
entryUUID
givenName
initials
ipaNTSecurityIdentifier
jpegPhoto
krbCanonicalName
krbLastFailedAuth
krbLoginFailedCount
krbPrincipalExpiration
krbPrincipalName
krbPwdPolicyReference
mail
memberOf
nsAccountLock
photo
sn
telephoneNumber
uid
Чтение и поиск групп
- Permission name — укажите имя разрешения, например am-group-read.
- Granted Rights — выберите
read
,search
. - Subtree — введите имя домена в формате Distinguished name, например
cn=groups,cn=accounts,dc=test,dc=realm
. - Extra target filter —
(objectClass=ipaUserGroup)
. - Effective attributes — укажите каждый атрибут по одному в отдельной строке:
cn
entryDN
entryUUID
ipaNTSecurityIdentifier
member
memberOf
Чтение и поиск контейнеров
- Permission name — укажите имя разрешения, например am-container-read.
- Granted Rights — выберите
read
,search
. - Subtree — введите имя домена в формате Distinguished name, например
dc=test,dc=realm
. - Extra target filter —
(|(objectClass=nsContainer)(objectClass=domain))
. - Effective attributes — укажите каждый атрибут по одному в отдельной строке:
cn
entryDN
entryUUID
ipaNTSecurityIdentifier
member
memberOf
Чтение и поиск политик паролей
- Permission name — укажите имя разрешения, например am-password-policy-read.
- Granted Rights — выберите
read
,search
. - Subtree — введите имя домена в формате Distinguished name, например
cn=TEST.REALM,cn=kerberos,dc=test,dc=realm
. - Extra target filter —
(objectClass=krbPwdPolicy)
. - Effective attributes — укажите каждый атрибут по одному в отдельной строке:
krbPwdLockoutDuration
krbPwdMaxFailure
krbPwdMinDiffChars
krbPwdMinLength
objectClass
Смена пароля
- Permission name — укажите имя разрешения, например am-user-password-change.
- Granted Rights — выберите
write
. - Subtree — введите имя домена в формате Distinguished name, например
cn=users,cn=accounts,dc=test,dc=realm
. - Extra target filter —
(objectClass=person)
. - Effective attributes — укажите каждый атрибут по одному в отдельной строке:
krbPrincipalKey
Чтение истории паролей
Выдайте права на чтение истории паролей, если у вас настроена смена пароля пользователя под сервисной учетной записью, а также в политиках паролей FreeIPA настроена проверка истории паролей.
- Permission name — укажите имя разрешения, например am-user-password-read.
- Granted Rights — выберите
read
. - Subtree — введите имя домена в формате Distinguished name, например
cn=users,cn=accounts,dc=test,dc=realm
. - Extra target filter —
(objectClass=person)
. - Effective attributes — укажите каждый атрибут по одному в отдельной строке:
passwordHistory
В выпадающем списке Role-Based Access Control выберите Privileges и нажмите Add.
Чтение объектов
- Privilege name — укажите имя разрешения, например am-read.
- В созданное разрешение добавьте am-user-read, am-group-read, am-container-read, am-password-policy-read.
Смена пароля пользователя
- Privilege name — укажите имя разрешения, например am-password-change.
- В созданное разрешение добавьте am-user-password-read, am-user-password-change.
В выпадающем списке Role-Based Access Control выберите Roles и нажмите Add.
Роль сервисной учетной записи
- Role name — укажите имя разрешения, например am-server.
- В созданное разрешение добавьте am-read, am-password-change.
Создание сервисной учетной записи
Чтобы создать сервисную учетную запись для работы с каталогом пользователей:
- На вкладке Identity→Users нажмите Add.
- В поле User login задайте имя пользователя, например am-server.
- В полях First name, Last name, Password укажите имя, фамилию и задайте пароль для новой учетной записи.
- Добавьте пользователю роль
am-server
.
Чтобы срок действия паролей для системных учетных записей игнорировался:
- Создайте политику для администраторов FreeIPA, если эта политика не была создана ранее.
- Добавьте системную учетную запись для подключения к каталогу пользователей Core Server в эту политику.
- В поле Приоритет задайте значение, которое будет ниже приоритета, установленного в парольной политике для группы всех пользователей.
- В поле Grace login limit установите значение -1.
Политика паролей
Чтобы настроить блокировку входа после истечения срока действия пароля, перейдите в раздел Политика→Политики паролей и установите значение Grace login limit.
Параметр Grace login limit определяет, сколько раз пользователь может войти в систему после истечения срока действия своего пароля, прежде чем его учетная запись будет заблокирована. Этот параметр является частью политик паролей пользователей в каталоге FreeIPA и позволяет пользователям с устаревшим паролем войти в систему и сменить пароль, вместо немедленной блокировки учетной записи.
Возможные значения для параметра Grace login limit:
- -1 (значение по умолчанию) — пользователь может неограниченно входить в систему даже с истекшим паролем, срок действия пароля игнорируется;
- 0 (рекомендуемое значение) — пользователь не может войти в систему после истечения срока действия своего пароля;
- 1 — пользователь может войти в систему с истекшим паролем один раз;
- 2 — пользователь может войти в систему с истекшим паролем два раза.
Диапазон значений: от -1 до 2147483647.
Смена пароля пользователя FreeIPA в User Console
Если пользователь FreeIPA самостоятельно меняет пароль в Indeed User Console, дата окончания срока действия пароля по умолчанию устанавливается на текущую дату. Для корректной настройки срока действия пароля необходимо выполнить следующие изменения на каждом сервере FreeIPA:
Создайте файл /tmp/passSyncManagersDNs со следующим содержимым:
dn: cn=ipa_pwd_extop,cn=plugins,cn=config
changetype: modify
add: passSyncManagersDNs
passSyncManagersDNs: uid=my-am-admin,cn=users,cn=accounts,dc=test,dc=realmДля параметра
passSyncManagersDNs
укажите значение соответствующего DN сервисной учетной записи, используемой в Core Server.В терминале выполните команду:
ldapmodify -x -D "cn=Directory Manager" -W -H LDAPS://ipa.test.realm:636 -f /tmp/passSyncManagersDNs
Атрибуты пользователей FreeIPA
Атрибут пользователя | Описание |
---|---|
entryUUID | Универсальный уникальный идентификатор записи |
entryDN | Уникальное имя записи в каталоге |
uid | Идентификатор пользователя |
Адрес электронной почты | |
telephoneNumber | Телефон |
givenName | Имя |
sn | Фамилия |
cn | Общее имя |
krbPrincipalName | Имя участника-пользователя Kerberos (UPN) |
krbCanonicalName | Каноническое имя учетной записи Kerberos |
ipaNTSecurityIdentifier | Атрибут, хранящий идентификатор безопасности SID |
photo | Фото |
userPassword | Пароль |
krbPasswordExpiration | Атрибут, хранящий дату и время истечения срока действия текущего пароля |