| |
Авторизация и средства администрирования
Авторизация и доступ к объектам
В предыдущей лекции были рассмотрены примеры создания интерфейсов передачи данных без учета вопросов авторизации и доступа. WebSphere MQ имеет свой механизм предоставления прав доступа и аутентификации пользователя. Ограничения по доступу могут быть на уровне удаленного управления менеджером очередей и на уровне доступа к определенным объектам. Основной командой, предоставляющей права доступа к объектам, является команда setmqaut. Синтаксис команды следующий:
setmqaut -m QMgrName -n Profile -t ObjectType
-s ServiceComponent -remove
-p PrincipalName [-g GroupName]
MQI authorizations [Administration
authorizations] [Generic authorizations]
-m QmgrName - имя менеджера очередей.
-n Profile - имя объекта менеджера, к которому применяется команда. В имени могут использоваться символы групповой замены (?, *, **). Например, если необходимо произвести авторизацию ко всем очередям, начинающимся на PAY, то опция Profile будет выглядеть
-n PAY*
-t ObjectType - тип объекта менеджера. Может иметь значения q или queue для очередей, prcs или process для процессов, nl или namelist для списков кластеров, authinfo для использования механизма SSL.
-s ServiceComponent - имя установленного сервиса авторизации, с помощью которого будут произведены изменения прав доступа. Параметр не является обязательным.
-remove - лишает прав доступа к объектам, указанным перед ним.
-p PrincipalName или -g GroupName - имя пользователя или группы, для которой производится изменение прав доступа к объектам. Для платформы Windows возможно указание доменной учетной записи в формате userid@domain.
Рассмотрим опции авторизации: MQI authorizations, Administration authorizations и Generic authorizations. Перед данными опциями должны указываться символы "+" или "-", разрешающие или запрещающие соответствующие действия.
MQI authorizations - опции команды для авторизации MQI. Может принимать значения:
- altusr - дает возможность использовать имя другой учетной записи для функций MQOPEN и MQPUT1;
- browse - разрешает просмотр сообщений в очереди функцией MQGET, если очередь открыта на просмотр с опцией BROWSE;
- connect - разрешает подключение к менеджеру очередей;
- get - разрешает считывание сообщение из очереди;
- inq - разрешает считывание значения атрибутов очереди;
- put - разрешает помещать сообщения в очередь;
- set - разрешает изменять атрибуты очереди.
Administration authorizations - опции команды для авторизации на выполнение действий. Может принимать значения:
- chg - изменение атрибутов объекта;
- clr - удаление сообщений из очереди (доступно только для PCF команд);
- crt - создание объектов;
- dsp - просмотр атрибутов объекта
Generic authorizations - опции авторизации для групповых операций. Может принимать значения:
- all - предоставляет все права на объект;
- alladm - предоставляет все административные права на объект;
- allmqi - предоставляет возможность MQI вызова на объект;
- none - создает в своем механизме аутентификации запись для профиля пользователя не предоставляя ему никаких прав;
Опции команды setmqaut применяются не ко всем объектам менеджера очередей. В указано соответствие между опциями и объектами.
Таблица 5.1. Соответствие между опциями команды setmqaut и объектами менеджера очередей |
Authority |
Queue |
Process |
Queue manager |
Namelist |
Authentication information |
all |
+ |
+ |
+ |
+ |
+ |
alladm |
+ |
+ |
+ |
+ |
+ |
allmqi |
+ |
+ |
+ |
+ |
+ |
none |
+ |
+ |
+ |
+ |
+ |
altusr |
- |
- |
+ |
- |
- |
browse |
+ |
- |
- |
- |
- |
chg |
+ |
+ |
+ |
+ |
+ |
clr |
+ |
- |
- |
- |
- |
connect |
- |
- |
+ |
- |
- |
crt |
+ |
+ |
+ |
+ |
+ |
dlt |
+ |
+ |
+ |
+ |
+ |
dsp |
+ |
+ |
+ |
+ |
+ |
get |
+ |
- |
- |
- |
- |
put |
+ |
- |
- |
- |
- |
inq |
+ |
+ |
+ |
+ |
+ |
set |
+ |
- |
- |
- |
- |
Синтаксис команды имеет несколько особенностей. Если в названии объекта присутствует символ "_", то символы групповой замены (?, *, **) использовать не рекомендуется. Если имя объекта разделено символом ".", то каждая часть имени, разделенная точкой должна использовать свои символы групповой замены. Рассмотрим примеры применения команды setmqaut к объектам менеджера QM_Win2000 для учетной записи (пользователя) test1. Условиями выполнения команды является наличие учетной записи test1 и указанных в примерах очередей.
- Авторизация подключения к менеджеру QM_Win2000
- setmqaut -m QM_Win2000 -t qmgr
- -p test1 +connect
- Доступ на просмотр сообщений функцией MQGET, во всех очередях, начинающихся на Win2000_HPUX. и заканчивающихся на любой допустимый символ, если очередь открыта на просмотр с опцией BROWSE
- setmqaut -m QM_Win2000 -n Win2000_HPUX.?
- -t queue -p test1 +browse
- Запрет на считывание сообщение из очередей, начинающихся на Vip, имеющим в имени символ "." и заканчивающиеся любыми допустимыми символами за исключением символов "_" и "."
- setmqaut -m QM_Win2000 -n Vip*.* -t queue
- -p test1 -get
- Право на просмотр атрибутов и удаление очередей, начинающихся на Win2000_HPUX. и имеющим после точки два символа, причем левый символ может быть любым
- setmqaut -m QM_Win2000 -n Win2000_HPUX.?Q
- -t queue -p test1 +dlt +dsp
- Предоставление всех прав на очередь A1
- setmqaut -m QM_Win2000 -n A1 -t queue
- -p test1 +all
- Предоставление всех прав на очереди, состоящие из двух символов, имеющие любой первый символ и второй символ "2"
- setmqaut -m QM_Win2000 -n ?2 -t queue
- -p test1 +all
- Предоставление всех прав на очереди, оканчивающиеся на .CQ и не имеющие перед символом "." символов "_" и "."
- setmqaut -m QM_Win2000 -n **.CQ -t queue
- -p test1 +all
- Предоставление прав на считывание сообщений из очередей, начинающихся на NO, имеющих в имени символ "." и оканчивающихся на Q
- setmqaut -m QM_Win2000 -n NO*.Q -t queue
- -p test1 +get
- Предоставление прав на помещение, просмотр и удаление сообщений в очереди DEAD_LETTER
- setmqaut -m QM_Win2000 -n DEAD_LETTER
- -t queue -p test1 +put +browse +get
- Удаление прав на помещение сообщений в очередь A1
- setmqaut -m QM_Win2000 -n A1 -t queue
- -p test1 -put
С помощью команды setmqaut нельзя предоставлять доступ к объектам кластера, которые физически расположены на удаленных менеджерах.
Коды возврата команды setmqaut указаны в.
Таблица 5.2. Коды возврата команды setmqaut |
0 |
Successful operation |
Ошибок нет |
36 |
Invalid arguments supplied |
Содержится неправильный аргумент |
40 |
Queue manager not available |
Менеджер очередей недоступен |
49 |
Queue manager stopping |
Менеджер очередей остановлен |
69 |
Storage not available |
Невозможно сохранить изменения |
71 |
Unexpected error |
Непредвиденная ошибка |
72 |
Queue manager name error |
Ошибка в имени менеджера |
133 |
Unknown object name |
Неизвестное имя объекта |
145 |
Unexpected object name |
Непредвиденное имя объекта |
146 |
Object name missing |
Отсутствует имя объекта |
147 |
Object type missing |
Отсутствует тип объекта |
148 |
Invalid object type |
Неправильный тип объекта |
149 |
Entity name missing |
Отсутствует имя объекта |
150 |
Authorization specification missing |
Отсутствует опция авторизации |
151 |
Invalid authorization specification |
Неправильная опция авторизации |
Просмотреть права учетной записи (пользователя) к объекту на локальном менеджере можно с помощью команды dspmqaut. Синтаксис команды
dspmqaut -m QMgrName -n ObjectName
-t ObjectType -s ServiceComponent
-p PrincipalName [-g GroupName]
-m QmgrName - имя менеджера очередей.
-n ObjectName - имя объекта менеджера, к которому применяется команда.
-t ObjectType - тип объекта менеджера. Может иметь значения q или queue для очередей, prcs или process для процессов, nl или namelist для списков кластеров, authinfo для использования механизма SSL.
-s ServiceComponent - имя установленного сервиса авторизации, с помощью которого будет произведен просмотр прав доступа. Параметр не является обязательным.
-p PrincipalName или -g GroupName - имя пользователя или группы, для которой производится просмотр прав доступа к объектам. Для платформы Windows возможно указание доменной учетной записи в формате userid@domain.
Опции команды dspmqaut также доступны не для всех объектов менеджера очередей. В . указано соответствие между опциями и объектами.
Таблица 5.3. Соответствие между опциями команды dspmqaut и объектами менеджера очередей |
Authority |
Queue |
Process |
Queue manager |
Namelist |
Authentication information |
all |
+ |
+ |
+ |
+ |
+ |
alladm |
+ |
+ |
+ |
+ |
+ |
allmqi |
+ |
+ |
+ |
+ |
+ |
altusr |
- |
- |
+ |
- |
- |
browse |
+ |
- |
- |
- |
- |
chg |
+ |
+ |
+ |
+ |
+ |
clr |
+ |
- |
- |
- |
- |
connect |
- |
- |
+ |
- |
- |
crt |
+ |
+ |
+ |
+ |
+ |
dlt |
+ |
+ |
+ |
+ |
+ |
dsp |
+ |
+ |
+ |
+ |
+ |
get |
+ |
- |
- |
- |
- |
inq |
+ |
+ |
+ |
+ |
+ |
put |
+ |
- |
- |
- |
- |
set |
+ |
+ |
+ |
- |
+ |
Рассмотрим некоторые примеры применения команды dspmqaut к объектам менеджера QM_Win2000 для учетной записи test1. В скобках дана соответствующая команда setmqaut из рассмотренных выше примеров.
Настройка служб WebSphere MQ под Windows
WebSphere MQ в своей работе оперирует как своими внутренними данными, так и данными на уровне операционных систем. Так, например, в процессе первичной установки создается группа mqm. Все пользователи, входящие в эту группу имеют все права на все объекты WebSphere MQ. То есть для полного управления менеджером очередей достаточно того, чтобы учетная запись была включена либо в группу mqm либо в группу администраторов.
В среде Windows часто встречается случай, когда прикладная программа должна выполняться под нужной учетной записью (пользователем). В процессе установки WebSphere MQ на платформе Windows кроме группы mqm создается пользователь с учетной записью MUSR_MQADMIN под именем которого выполняются все процессы и все прикладные программы, указанные в атрибуте Application Identifier соответствующего процесса. Если удалить и создать вновь данную учетную запись, то WebSphere MQ работать не будет. Рассмотрим процедуру, позволяющую запускать сервис IBM MQSeries под другой учетной записью.
- Установить тип запуска для IBM MQSeries Service в Manual.
- Перегрузить компьютер.
- Запустить dcomcnfg, и настроить форму, как показано на
- В закладке Security добавить пользователя mquser@alfa.moscow.net для параметров:
- Use custom access permissions (Allow access);
- Use custom launch permissions (Allow access);
- Use custom configuration permission (Full Control).
- Установить тип запуска для MQSeries в Automatic.
- Перегрузить компьютер.
- Убедиться, что сервис IBM MQSeries стартовал от имени mquser@alfa.moscow.net.
Далее можно создавать службы сервиса WebSphere MQ Trigger Monitor (см. лекцию 4). Создать данные службы можно также с помощью команды amqmdain, синтаксис которой имеет вид:
amqmdain crttrm QmgrName InitQueue
где:
QmgrName - имя менеджера очередей,
InitQueue - имя очереди инициализации
После выполнения данной команды следует убедиться в появлении в MQSeries Services нового Trigger Monitor с нужной очередью инициализации.
Управлять объектами удаленного менеджера можно с помощью WebSphere MQ Explorer и с помощью команды runmqsc. Для удаленного управления менеджером очередей необходимо:
- Создать трансмиссионные очереди на менеджере, с которого производится управление и на удаленном менеджере;
- Создать и стартовать каналы в обе стороны между менеджерами;
- Выполнить команду runmqsc -w TimeOut RemoteQmqrName где:
- TimeOut - время в секундах, в течение которого от удаленного менеджера должен прийти положительный ответ на подключение. Если время истекло, то появится следующее сообщение
- AMQ8416: MQSC timed out waiting for a
- response from the command server.
- RemoteQmqrName - имя удаленного менеджера.
Далее с помощью команд MQSC можно управлять объектами удаленного менеджера.
Командный процессор MQSC. Основные команды
Как говорилось в предыдущих лекциях, управлять объектами WebSphere MQ можно как с помощью команд, так и с помощью WebSphere MQ Explorer. Работа и возможности, предоставляемые WebSphere MQ Explorer были рассмотрены в предыдущих лекциях. Теперь рассмотрим работу команд MQSC (MQSeries Commands). Команды WebSphere MQ разделяются на внешние и внутренние. Внешние команды представляют собой программы, откомпилированные под конкретную платформу. Некоторые из внешних команд и их назначение представлены в
Таблица 5.4. Список внешних команд WebSphere MQ |
Команда |
Назначение |
amqmcert |
Управление сертификатами для использования механизма SSL |
amqmdain |
Создание WebSphere MQ services (только для платформыWindows) |
crtmqcvx |
Конвертация С кода в структуру WebSphere MQ |
crtmqm |
Создание локального менеджера очередей |
dltmqm |
Удаление локального менеджера очередей |
dmpmqaut |
Удаление (dump) авторизации к объекту |
dmpmqlog |
Преобразование лог-файлов менеджера в "читаемый" вид |
dspmq |
Просмотр состояния менеджера очередей |
dspmqaut |
Просмотр прав доступа к объектам |
dspmqcap |
Просмотр количества процессоров |
dspmqcsv |
Просмотр состояния командного сервера |
dspmqfls |
Вывод файловой структуры объектов |
dspmqtrc |
Вывод трассировки в файл (только для HP-UX, Linux, и Solaris) |
dspmqtrn |
Просмотр незавершенных транзакций |
endmqcsv |
Остановка командного сервера |
endmqlsr |
Остановка службы listener |
endmqm |
Остановка менеджера |
endmqtrc |
Остановка режима трассировки (кроме AIX платформы) |
rcdmqimg |
Запись состояния объектов в файл |
rcrmqobj |
Восстановление состояния объектов из файла |
rsvmqtrn |
Управление незавершенными транзакциями |
runmqchi |
Запуск службы channel initiator |
runmqchl |
Старт sender или requester каналов |
runmqdlq |
Восстановление сообщений из очереди недоставленных сообщений |
runmqlsr |
Запуск службы listener |
runmqsc |
Запуск командного процессора внутренних команд MQSC |
runmqtmc |
Запуск trigger monitor для клиентской части (только для AIX платформы) |
runmqtrm |
Запуск trigger monitor |
setmqaut |
Предоставление прав доступа к объектам |
setmqcap |
Установка количества процессоров |
strmqcsv |
Запуск командного сервера |
strmqm |
Запуск менеджера очередей |
strmqtrc |
Запуск режима трассировки |
Из выделим команду runmqsc, которая является своего рода командным процессором для выполнения внутренних MQSC команд, позволяющих управлять объектами как локального, так и удаленного менеджера. Синтаксис команды:
runmqsc -e / -v /-w QmgrName
где:
-e - исключение вывода результата выполнения команд в отчет. Полезно для использования при вводе команд в интерактивном режиме.
-v - проверка синтаксиса команд без их выполнения. Если далее указана опция -w, то она игнорируется.
-w - время в секундах, в течение которого от удаленного менеджера должен прийти положительный ответ на подключение. С помощью данной опции возможно управление объектами удаленного менеджера. Если время истекло, то появится следующее сообщение:
AMQ8416: MQSC timed out waiting for a response from the command server.
QmgrName - имя менеджера очередей. Имя менеджера, являющегося менеджером по умолчанию указывать не обязательно.
Кроме непосредственного ввода внутренних команд из командной строки данная команда позволяет выполнять командный файл, содержащий различные сценарии создания и управления объектами. В таком случае синтаксис будет выглядеть
runmqsc QmgrName < create_obj.txt
где:
create_obj.txt - файл, содержащий внутренние команды MQSC.
Внутренние команды могут состоять из нескольких операторов. На первом месте стоит оператор, указывающий действие. На втором месте указывается тип объекта, к которому применяется первый оператор. Типы объектов указываются следующими операторами:
- CHANNEL - канал;
- CHSTATUS - состояние канала;
- CLUSQMGR - информация о кластерных каналах менеджера;
- PROCESS - процесс;
- NAMELIST - список кластеров;
- QALIAS - очередь ALIAS;
- QCLUSTER - кластерная очередь;
- QLOCAL - локальная очередь;
- QMGR - менеджер;
- QMODEL - модельная очередь;
- QREMOTE - локальная удаленная очередь.
Основные операторы, которые, как правило, стоят на первом месте внутренней команды.
- ALTER - изменение свойств объекта;
- CLEAR - удаление сообщений из очереди;
- DEFINE - создание объекта;
- DELETE - удаление объекта;
- DISPLAY - вывод информации об объекте;
- END - выход из командного процессора runmqsc;
- PING - проверка соединения;
- REFRESH - обновление информации;
- RESET -
- RESET CLUSTER - выводит менеджер очередей из кластера WebSphere MQ;
- RESET CHANNEL - сбрасывает счетчики сообщений у канала;
- RESOLVE - управление сообщениями с признаком незавершенной транзакции;
- RESUME - оповещение кластера WebSphere MQ о том, что менеджер очередей снова включен в данный кластер;
- START - оператор старта;
- STOP - оператор останова;
- SUSPEND - временное исключение менеджера из кластера WebSphere MQ;
Подробный синтаксис команд можно узнать из документации.
Пример создания интерфейсов передачи данных в обе стороны между двумя менеджерами QM_Win2000 и QM_HPUX с адресами 198.32.100.26 и 198.32.100.16(1421), причем на менеджере QM_HPUX канал отправитель должен переходить в состояние running как только в соответствующей трансмиссионной очереди появляется сообщение. Для этого создаются объекты на менеджере QM_Win2000:
- HPUX_Win2000.Q - локальная очередь, в которую будут приходить сообщения от менеджера QM_HPUX;
- HPUX_Win2000.CH - канал получатель;
- Win2000_HPUX.TQ - трансмиссионная очередь передачи;
- Win2000_HPUX.RQ - локальная удаленная очередь;
- Win2000_HPUX.CH - канал отправитель.
При создании объектов с помощью команды DEFINE следует учитывать, что если имя объекта не "берется" в символы "'", то объект будет создан с именем, содержащим только заглавные буквы. То же относится и к другим командам.
Набор команд для создания объектов выглядит следующим образом.
DEFINE QLOCAL ('HPUX_Win2000.Q')
DEFINE CHANNEL ('HPUX_Win2000.CH')
CHLTYPE(RCVR)
DEFINE QLOCAL ('Win2000_HPUX.TQ')
USAGE(XMITQ)
DEFINE QREMOTE ('Win2000_HPUX.RQ')
XMITQ('Win2000_HPUX.TQ') +
RNAME('Win2000_HPUX.Q')
RQMNAME('QM_HPUX')
DEFINE CHANNEL ('Win2000_HPUX.CH')
CHLTYPE(SDR) +
CONNAME('198.32.100.16(1421)')
DISCINT(999999) +
XMITQ('Win2000_HPUX.TQ')
Создадим объекты на менеджере QM_HPUX:
- Win2000_HPUX.Q - локальная очередь, в которую будут приходить сообщения от менеджера QM_Win2000;
- Win2000_HPUX.CH - канал получатель;
- HPUX _Win2000.TQ - трансмиссионная очередь передачи;
- HPUX _Win2000.RQ - локальная удаленная очередь;
- HPUX _Win2000.CH - канал отправитель.
Команды для создания этих объектов будут выглядеть следующим образом.
DEFINE QLOCAL ('Win2000_HPUX.Q')
DEFINE CHANNEL ('Win2000_HPUX.CH')
CHLTYPE(RCVR)
DEFINE QREMOTE ('HPUX_Win2000.RQ') +
XMITQ('HPUX_Win2000.TQ') +
RNAME('HPUX_Win2000.Q') +
RQMNAME('QM_Win2000')
DEFINE QLOCAL ('HPUX_Win2000.TQ') +
USAGE(XMITQ) +
TRIGGER +
TRIGTYPE(FIRST) +
TRIGDPTH(1) +
TRIGDATA('HPUX_Win2000.CH') +
INITQ('SYSTEM.CHANNEL.INITQ')
DEFINE CHANNEL ('HPUX_Win2000.CH')
CHLTYPE(SDR) +
CONNAME('172.25.4.150') +
DISCINT(999999) +
XMITQ('HPUX_Win2000.TQ')
Эти команды можно поместить в два текстовых файла, а затем, выполнив команду runmqsc на каждом менеджере с указанием соответствующего файла, можно получить готовый интерфейс для передачи данных между двумя платформами: UNIX и Windows. Кроме этого, используя команды рестарта каналов, можно управлять их состоянием. |
|
|