Communigate LogoCommunigate Logo

Меню

ru

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

Разработчикам

Как управлять правами доступа к аккаунту пользователя без использования пароля от аккаунта этого пользователя?

В сервере CommuniGate Pro доступно три вида прав доступа к аккаунтам пользователей:

1.       Delegate (Делегат) – пользователь с правом доступа Delegate или «Делегат» может подписываться пакеты событий, имеет доступ на чтение и запись ко всем папкам аккаунта, может создавать календарные события от имени аккаунта пользователя;

2.       CreateMailbox (Создание папок) – пользователь с правом доступа CreateMailbox или «Создать» может создавать новые папки в верхней иерархии (корневые папки) аккаунта пользователя;

3.       CallControl (Управление вызовами)– пользователь с правом доступа CallControl или «Звонки» имеет доступ к информации о коммуникациях реального времени и возможность перехватывать входящие звонки.

Управлять правами доступа к своему аккаунту может сам пользователь. Это можно сделать через аккаунт пользователя в приложении Samoware в разделе «Настройки» - «Права доступа» (см. рис. 1).

image 1.png

Рис. 1

Однако иногда администратору необходимо предоставить права доступа к аккаунту пользователя без его участия и без использования пароля от его аккаунта. Для этого минимальный набор прав администратора должен быть: «Может менять установки этого домена и его пользователей» с правом «Может выступать от имени других».

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

SetAccountACL accountName [ AUTH authAccountName ] newACL

Эта команда используется для изменения списка прав доступа (ACL – Access Control List) аккаунта пользователя.

accountName : строка

В этом параметре задается имя аккаунта, к которому необходимо назначить доступ (требуемого аккаунта). Символ звёздочка (*) может использоваться для указания текущего аутентифицированного аккаунта.

authAccountName - строка

Этот необязательный параметр указывает имя аккаунта пользователя, от имени которого должна быть произведена операция. Если это имя задано, то информация ACL изменяется только, если указанный аккаунт пользователя имеет право доступа «Управлять» для требуемого аккаунта.

newACL - словарь

В этом параметре задаются элементы прав доступа, которые необходимо изменить. Словарь является набором пар «ключ-значение». Каждый ключ словаря задает идентификатор, а значения ключей должны быть строками с символами прав доступа.

Важно учитывать следующие правила при задании элементов прав доступа:

-        если значение ключа начинается с символа минус ("-"), то права доступа, указанные в этой строке, убираются из элемента прав доступа;

-        если значение ключа начинается с символа плюс ("+"), то права доступа, указанные в этой строке, добавляются к элементу прав доступа;

-        в других случаях права доступа, указанные в строке, замещают набор прав в элементе прав доступа;

-        если элемент права доступа для указанного ключа не существует, то он будет создан;

-        если новый элемент права доступа имеет пустой набор прав доступа, то элемент удаляется.

В данном случае каждый ключ является именем аккаунта, которому дается право доступа, а значение ключа – это тип прав доступа, который дается этому аккаунту.

Значения ключа (типы прав доступа):

-        х – право доступа «Delegate»

-        c – право доступа «CreateMailbox»

-        j – право доступа «CallControl»

Примеры использования команды SetAccountACL через сервис PWD (106 порт) с входом через telnet

Рассмотрим несколько примеров использования команды SetAccountACL для предоставления прав доступа к аккаунту пользователя без использования пароля от этого аккаунта.

Задавать команду будем от имени аккаунта postmaster, который имеет права доступа «Может все». Также можно использовать любой аккаунт с правами: «Может менять установки этого домена и его пользователей» с правом «Может выступать от имени других».

Пример 1. Аккаунтам maria и ivan необходимо дать права доступа «Delegate» к аккаунту oleg. Для этого нужно зайти в аккаунт postmaster и ввести команду: SetAccountACL oleg {maria=x; ivan=x;} (см. рис. 2).

Рис2.png

Рис. 2

Чтобы посмотреть список прав доступа к аккаунту oleg нужно ввести команду: GetAccountACL oleg (см. рис. 3).

Рис3.png

Рис. 3

Пример 2. Для аккаунта maria нужно добавить право доступа «CreateMailbox» к аккаунту oleg. Для этого в команде нужно использовать знак плюс ("+"): SetAccountACL oleg {maria="+с";}.

После выполнения команды можно проверить список прав доступа командой GetAccountACL (см. рис. 4).

Рис4.png

Рис. 4

Пример 3. У аккаунта maria нужно убрать право доступа «CreateMailbox» к аккаунту oleg. Для аккаунта ivan нужно дать права доступа «Delegate» и «CallControl» к аккаунту oleg. Для этого нужно ввести команду: SetAccountACL oleg {maria="-с";ivan=xj;}.

После выполнения команды можно проверить список прав доступа командой GetAccountACL (см. рис. 5).

Рис5.png

Рис. 5