Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


Информация
titleДанная статья применима к:
  • Astra Linux


Введение

В данной статье приводится пример управления доступом на основе ролей. В качестве примера используется создание администратора с ограниченными возможностями, в данном случае - администратора, управляющего пользовательскими атрибутами. На практике это может быть сотрудник отдела кадров, выполняющий актуализацию персональных данных пользователей, или сотрудник отдела безопасности, выполняющий назначение и изменение мандатных прав доступа пользователей.

В примерах используется название домена ipadomain0.ru и имя пользователя ipauser01.

Получение списка атрибутов пользователя

Список атрибутов пользователя доступен в web-интерфейсе FreeIPA при создании разрешений.

При работе в командной строке для получения списка пользователей:

  1. Получить билет администратора домена:

    Command
    kinit admin


  2. Получить список пользователей:

    Command
    ipa user-find


  3. Получить информацию о пользователе:
    1. Краткая информация:

      Command
      ipa user-show <имя_пользователя>

      например:

      Раскрыть


      Command
      Titleipa 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




    2. Имена основных атрибутов:

      Command
      ipa user-show <имя_пользователя> --raw

      например:

      Раскрыть


      Command
      Titleipa 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



    3. Имена всех атрибутов пользователя:

      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:0x0

      Command
      Titleipa 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



Создание администратора пользовательских атрибутов

Для создания администратора:

  1. Открыть web-браузер (например, firefox);
  2. Открыть страницу web-интерфейса контроллера домена FreeIPA. Адрес страницы: https://<имя_севера_FreeIPA>;
  3. Если будет выведено сообщение о непроверенном сертификате - подтвердить вход и продолжить;
  4. Ввести имя и пароль администратора домане и войти в управляющий web-интерфейс;

Создание разрешений

Для создания разрешений в управляющем web-интерфейсе:

  1. Перейти в закладку "IPA-сервер";
  2. Выбрать пункт "Управление доступом на основе ролей":
  3. В выпадающем меню выбрать пункт "Разрешения";
  4. Нажать кнопку "Добавить";
  5. В форме добавления разрешения указать:
    1. Название разрешения, например "UsersManagerUsersManagerPermission";
    2. Тип правила привязки "permission";
    3. Предоставленные права: "read"и "write";
    4. Тип "пользователь" (выбрать из выпадающего списка). При этом в части "Действующие атрибуты" появится список доступных атрибутов;
    5. Отметить атрибуты, доступные пользователю для управления. Например:
      1. для управления неиерархическим уровнем целостности выбрать атрибут x-ald-user-mic-level (максимальный неиерархический уровень целостности);
      2. для управления иерархическими уровнями конфиденциальности выбрать атрибуты xaldusermacmin (минимальный разрешенный пользователю иерархический уровень конфиденциальности) и xaldusermacmax (максимальный разрешенный пользователю иерархический уровень конфиденциальности):

        Предупреждение
        Изменение других мандатных атрибутов в ручном режиме недопустимо и может привести к нарушению работы СЗИ.


    6. Для сохранения введенных данных нажать кнопку "Добавить" внизу экранной формы;

Создание привилегии

  1. Перейти в закладку "IPA-сервер";
  2. Выбрать пункт "Управление доступом на основе ролей";
  3. В выпадающем меню выбрать пункт "Привилегии":
  4. Для создания новой привилегии:

    1. Нажать кнопку "Добавить":
    2. Ввести название и описание привилегии, например "UsersManagerPrivilege";
    3. Сохранить данные, нажав кнопку "Добавить"
  5. Выбрать существующую (ранее добавленную) привилегию;
  6. В открывшемся (возможно пустом) списке разрешений:
    1. Нажать кнопку "Добавить" для добавления существующего разрешения, например ранее созданное разрешение "UsersManagerPermission";
    2. Отметить добавляемые разрешения;
    3. Нажать кнопку "Стрелка вправо";
    4. Нажать кнопку "Добавить" для сохранения изменений.

Создание роли

  1. Перейти в закладку "IPA-сервер";
  2. Выбрать пункт "Управление доступом на основе ролей";
  3. В выпадающем меню выбрать пункт "Роли":
  4. Для создания новой роли:
    1. Нажать кнопку "Добавить";
    2. Ввести название и описание роли, например "UsersManagerRole";
    3. Сохранить данные, нажав кнопку "Добавить"
  5. Выбрать существующую (ранее добавленную) роль;
  6. В открывшемся (возможно пустом) списке пользователей:
    1. Нажать кнопку "Добавить" для назначения привилегии пользователям (например, ранее созданная привилегия "UsersManagerPrivilege"):
    2. Отметить добавляемых пользователей;
    3. Нажать кнопку "Стрелка вправо";
    4. Нажать кнопку "Добавить" для сохранения изменений;
  7. Перейти в закладку "Привилегии";
  8. В открывшемся (возможно пустом) списке привилегий:
    1. Нажать кнопку "Добавить" для назначения привилегии пользователям:
    2. Отметить добавляемые привилегии;
    3. Нажать кнопку "Стрелка вправо";
    4. Нажать кнопку "Добавить" для сохранения изменений;

Проверка

Для проверки можно использовать инструменты командной строки или web-интерфейс FreeIPA, войдя в него от имени пользователя, права которого проверяются.