Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Введение
В данной статье приводится пример управления доступом на основе ролей. В качестве примера используется создания администратора с ограниченными возможностями, в данном случае - администратора, управляющего пользовательскими атрибутами.
На практике это может быть сотрудник отдела кадров, выполняющий актуализацию персональных данных пользователей, или сотрудник отдела безопасности, выполняющий назначение и изменение мандатных прав доступа пользователей.
В примерах используется название домена ipadomain0.ru и имя пользователя ipauser01.
Получение списка атрибутов пользователя
Для получения списка пользователей:
Получить билет администратора домена:
Command kinit admin Получить список пользователей:
Command ipa user-find - Получить информацию о пользователе:
Краткая информация:
Command ipa user-show <имя_пользователя> например:
Раскрыть Command Title ipa user-show ipauser01 Имя учётной записи пользователя: ipauser01
Имя: ipa
Фамилия: user
Домашний каталог: /home/ipauser01
Оболочка входа: /bin/bash
Имя учётной записи: ipauser01@IPADOMAIN0.RU
Псевдоним учётной записи: ipauser01@IPADOMAIN0.RU
Адрес электронной почты: ipauser01@ipadomain0.ru
UID: 672001
ID группы: 672001
Учётная запись отключена: False
Пароль: True
Участник групп: ipausers
Доступные ключи Kerberos: TrueИмена основных атрибутов:
Command ipa user-show <имя_пользователя> --raw например:
Раскрыть Command Title ipa user-show ipauser01 --raw uid: ipauser01
givenname: ipa
sn: user
homedirectory: /home/ipauser01
loginshell: /bin/bash
krbcanonicalname: ipauser01@IPADOMAIN0.RU
krbprincipalname: ipauser01@IPADOMAIN0.RU
mail: ipauser01@ipadomain0.ru
uidnumber: 672001
gidnumber: 672001
nsaccountlock: FALSE
has_password: TRUE
has_keytab: TRUEИмена всех атрибутов пользователя:
Command ipa user-show <имя_пользователя> --raw --all например:
Раскрыть dn: uid=ipauser01,cn=users,cn=accounts,dc=ipadomain0,dc=ru
uid: ipauser01
givenname: ipa
sn: user
cn: ipa user
initials: iu
homedirectory: /home/ipauser01
gecos: ipa user
loginshell: /bin/bash
krbcanonicalname: ipauser01@IPADOMAIN0.RU
krbprincipalname: ipauser01@IPADOMAIN0.RU
mail: ipauser01@ipadomain0.ru
uidnumber: 672001
gidnumber: 672001
xaldusermacmin: 0
xaldusermacmax: 0
x-ald-user-mic-level: 63
nsaccountlock: FALSE
has_password: TRUE
has_keytab: TRUE
displayName: ipa user
ipaUniqueID: 40ee7828-356c-11ec-af20-525400d1cf1b
krbExtraData: AAKHaHZhcm9vdC9hZG1pbkBJUEFET01BSU4wLlJVAA==
krbLastPwdChange: 20211025081919Z
krbPasswordExpiration: 20211025081919Z
memberof: cn=ipausers,cn=groups,cn=accounts,dc=ipadomain0,dc=ru
mepManagedEntry: cn=ipauser01,cn=groups,cn=accounts,dc=ipadomain0,dc=ru
objectClass: top
objectClass: person
objectClass: organizationalperson
objectClass: inetorgperson
objectClass: inetuser
objectClass: posixaccount
objectClass: krbprincipalaux
objectClass: krbticketpolicyaux
objectClass: ipaobject
objectClass: ipasshuser
objectClass: x-ald-user
objectClass: x-ald-user-parsec14
objectClass: x-ald-audit-policy
objectClass: ipaSshGroupOfPubKeys
objectClass: mepOriginEntry
userPassword: e1NTSEE1MTJ9TUNKNnEralhaYWdLclUxM1J3WVdMWEUweHpWOGhXMk10MkJRQWMyVnZRRTFJUVdpRmg0c0gyU0ZKWWgxRng0Y21zUm5rYlFqWnJ1eUZiVVBRNzdWU3YyR0p3YjJwWW9u
x-ald-aud-mask: 0x0:0x0
x-ald-user-mac: 0:0x0:0:0x0Command Title ipa user-show ipauser01 --raw --all dn: uid=ipauser01,cn=users,cn=accounts,dc=ipadomain0,dc=ru
uid: ipauser01
givenname: ipa
sn: user
cn: ipa user
initials: iu
homedirectory: /home/ipauser01
gecos: ipa user
loginshell: /bin/bash
krbcanonicalname: ipauser01@IPADOMAIN0.RU
krbprincipalname: ipauser01@IPADOMAIN0.RU
mail: ipauser01@ipadomain0.ru
uidnumber: 672001
gidnumber: 672001
xaldusermacmin: 0
xaldusermacmax: 0
x-ald-user-mic-level: 63
nsaccountlock: FALSE
has_password: TRUE
has_keytab: TRUE
displayName: ipa user
ipaUniqueID: 40ee7828-356c-11ec-af20-525400d1cf1b
krbExtraData: AAKHaHZhcm9vdC9hZG1pbkBJUEFET01BSU4wLlJVAA==
krbLastPwdChange: 20211025081919Z
krbPasswordExpiration: 20211025081919Z
memberof: cn=ipausers,cn=groups,cn=accounts,dc=ipadomain0,dc=ru
mepManagedEntry: cn=ipauser01,cn=groups,cn=accounts,dc=ipadomain0,dc=ru
objectClass: top
objectClass: person
objectClass: organizationalperson
objectClass: inetorgperson
objectClass: inetuser
objectClass: posixaccount
objectClass: krbprincipalaux
objectClass: krbticketpolicyaux
objectClass: ipaobject
objectClass: ipasshuser
objectClass: x-ald-user
objectClass: x-ald-user-parsec14
objectClass: x-ald-audit-policy
objectClass: ipaSshGroupOfPubKeys
objectClass: mepOriginEntry
userPassword: e1NTSEE1MTJ9TUNKNnEralhaYWdLclUxM1J3WVdMWEUweHpWOGhXMk10MkJRQWMyVnZRRTFJUVdpRmg0c0gyU0ZKWWgxRng0Y21zUm5rYlFqWnJ1eUZiVVBRNzdWU3YyR0p3YjJwWW9u
x-ald-aud-mask: 0x0:0x0
x-ald-user-mac: 0:0x0:0:0x0
Создание администратора пользовательских атрибутов
Для создания администратора:
- Открыть web-браузер (например, firefox);
- Открыть страницу web-интерфейса контроллера домена FreeIPA. Адрес страницы: https://<имя_севера_FreeIPA>;
- Если будет выведено сообщение о непроверенном сертификате - подтвердить вход и продолжить;
- Ввести имя и пароль администратора домане и войти в управляющий web-интерфейс;
Создание разрешений
Для создания разрешений в управляющем web-интерфейсе:
- Перейти в закладку "IPA-сервер";
- Выбрать пункт "Управление доступом на основе ролей";:
- В выпадающем меню выбрать пункт "Разрешения";
- Нажать кнопку "Добавить";
- В форме добавления разрешения указать:
- Название разрешения, например "UsersManager";
- Тип правила привязки "permission";
- Предоставленные права: "read"и "write";
- Тип "пользователь" (выбрать из выпадающего списка). При этом в части "Действующие атрибуты" появится список доступных атрибутов;
- Отметить атрибуты, доступные пользователю для управления. Например:
- для управления уровнем целостности выбрать атрибут x-ald-user-mic-level;
- для управления иерархическими уровнями конфиденциальности выбрать атрибут xaldusermacmin и xaldusermacmax;:
- Для сохранения введенных данных нажать кнопку "Добавить" внизу экранной формы;
Создание привилегии
- Перейти в закладку "IPA-сервер";
- Выбрать пункт "Управление доступом на основе ролей";
- В выпадающем меню выбрать пункт "Привилегии";:
- Для создания новой привилегии:
- Нажать кнопку "Добавить";:
- Ввести название и описание привилегии;
- Сохранить данные, нажав кнопку "Добавить"
- Нажать кнопку "Добавить";:
- Выбрать существующую (ранее добавленную) привилегию;
- В открывшемся (возможно пустом) списке разрешений:
- Нажать кнопку "Добавить" для добавления существующего разрешения;
- Отметить добавляемые разрешения;
- Нажать кнопку "Стрелка вправо";
- Нажать кнопку "Добавить" для сохранения изменений.
Создание роли
- Перейти в закладку "IPA-сервер";
- Выбрать пункт "Управление доступом на основе ролей";
- В выпадающем меню выбрать пункт "Роли";:
- Для создания новой роли:
- Нажать кнопку "Добавить";
- Ввести название и описание роли;
- Сохранить данные, нажав кнопку "Добавить"
- Нажать кнопку "Добавить";
- Выбрать существующую (ранее добавленную) роль;
- В открывшемся (возможно пустом) списке пользователей:
- Нажать кнопку "Добавить" для назначения привилегии пользователям:
- Отметить добавляемых пользователей;
- Нажать кнопку "Стрелка вправо";
- Нажать кнопку "Добавить" для сохранения изменений;
- Перейти в закладку "Привилегии";
- В открывшемся (возможно пустом) списке привилегий:
- Нажать кнопку "Добавить" для назначения привилегии пользователям:
- Отметить добавляемые привилегии;
- Нажать кнопку "Стрелка вправо";
- Нажать кнопку "Добавить" для сохранения изменений;
Проверка
Для проверки можно использовать инструменты командной строки или web-интерфейс FreeIPA, войдя в него от имени пользователя, права которого проверяются.