Я разрабатываю приложение, использующее WebSphere MQ v6.0. WebSphere MQ в настоящее время не работает из-за следующей проблемы:
- Служба WebSphere MQ работает под локальным пользователем «MUSR_MQADMIN» в локальной группе «mqm».
- Я пытаюсь использовать сервис, используя свою учетную запись BIZ\noahz
- MUSR_MQADMIN необходимо проверить, находится ли BIZ\noahz в локальной группе «mqm»
- MUSR_MQADMIN не имеет разрешения на чтение членства в группе Active Directory BIZ\noahz
- В файле журнала MQ появляется следующая ошибка:
----- amqzfubn.c : 3582 -------------------------------------------------------
31.01.2011 18:51:32 - Процесс (704.1105) Пользователь (MUSR_MQADMIN) Программа (amqzlaa0.exe) AMQ8079: Доступ запрещен при попытке получить информацию о членстве в группе для пользователя «noahz@biz».
ОБЪЯСНЕНИЕ: WebSphere MQ, запущенный с полномочиями пользователя 'musr_mqadmin@noahz-biz', не смог получить информацию о членстве в группе для указанного пользователя. ДЕЙСТВИЕ: Убедитесь, что разрешения на доступ к Active Directory позволяют пользователю 'musr_mqadmin@noahz-biz' читать членство в группе для пользователя 'noahz@biz'. Чтобы получить информацию о членстве в группе для пользователя домена, MQ должен работать с полномочиями пользователя домена.
----- amqzfubn.c : 3582 -------------------------------------------------------
Более подробную информацию я нашел здесь, на веб-сайте IBM: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.amqtac.doc/wq10830_.htm
У меня нет прав администратора Active Directory на моем компьютере Windows, поэтому мой вопрос:
Есть ли что-то еще, что я могу сделать, чтобы решить (или обойти) эту проблему и заставить WebSphere MQ снова работать для меня? Например, могу ли я отключить эту проверку безопасности в WebSphere MQ?
ОБНОВЛЯТЬВот ответ, который я получил от службы поддержки IBM:
Обычно эти ошибки указывают на проблему с идентификатором пользователя, под которым настроена служба MQ в dcom. Если вы не уверены, какой это идентификатор пользователя, вы можете проверить следующим образом:
Откройте командную строку и введите: dcomcnfg. После того, как откроется Component Services MMC, дважды щелкните "Component Services", дважды щелкните "Computers", дважды щелкните "My Computer", дважды щелкните "DCOM Config". В окне найдите "IBM MQSeries Services", щелкните его правой кнопкой мыши и выберите "Свойства". Щелкните вкладку "Identity". Должно отображаться "this user" с указанием идентификатора.
Пожалуйста, убедитесь, что идентификатор служб MQ (из вкладки «Идентификация» выше) имеет необходимые права локально. Предоставьте ему любые права, которых не хватает для следующего:
Откройте Пуск->Программы->Администрирование->Локальные параметры безопасности.
Откройте «Локальные политики», затем «Назначения прав пользователя», дважды щелкните, чтобы убедиться, что установлены следующие права:
- Вход в систему как пакетное задание
- Вход в систему как служба
- Завершение работы системы
- Отладка программ
- Увеличение квот
- Работа в качестве части операционной системы
- Обход проверки пересечения
- Замена токена уровня процесса
В конечном итоге мой ИТ-отдел и служба информационной безопасности решили, что WebSphere MQ является «серверным программным обеспечением» и, следовательно, не допускается на отдельных рабочих станциях, так что мне даже не удалось протестировать вышеуказанное решение!
решение1
Хотя я не смог найти вышеупомянутые записи DCOM (связанные с V7.1?), я смог с помощью ранее упомянутого runas-tip создать, запустить и подключиться к локальному Windows V7.1 Qmgr без доступа к Active Directory. Вот что я сделал:
- Измените пароль для пользователя MUSR_MQADMIN в lusrmgr Windows
- Убедитесь, что MQService остановлен.
- В списке служб также измените пароль для пользователя MUSR_MQADMIN
- Откройте DOSbox и выполните: C:> runas /user:MUSR_MQADMIN "crtmqm QMGR1" C:> runas /user:MUSR_MQADMIN "strmqm QMGR1" (обратите внимание, что для каждой команды вам придется указывать пароль)
- Щелкните правой кнопкой мыши значок MQ на панели задач и выберите «WebSphere MQ Explorer».
- MQ Explorer открывается и должен указать Qmgr "QMGR1" с красной стрелкой, направленной вниз. Щелкните правой кнопкой мыши этот значок и выберите "Start..."
- В всплывающем окне выберите «Начать интерактив» и нажмите «ОК».
- Значок QMGR1 теперь должен иметь зеленую стрелку, направленную вверх (запущен), а его квадрат должен быть желтым (подключен).
- В MQ Explorer создайте очередь с именем TEST1 и сделайте ее сохранение по умолчанию постоянным.
- В DOSbox выполните:
C:> amqsput TEST1 QMGR1 Введите сообщение ... и затем пустую строку, чтобы завершить пример программы. - Теперь проверьте в MQ Explorer, есть ли там ваше сообщение!
Совет: коды возврата MQ можно быстро проверить с помощью команды "mqrc , fi C:>mqrc 2085
решение2
WebSphere MQ всегда будет необходимо получить членство в группе любого ID, пытающегося запустить его компоненты или авторизовать доступ к его ресурсам. Если эти ID нелокальные, то MQ потребуются права для выполнения поиска членства SAM в домене, которому принадлежит ID. Есть несколько доступных обходных путей:
- Используйте локальный идентификатор. MQ всегда сможет выполнять поиск в локальной базе данных SAM, поскольку он должен быть установлен администратором и предоставил себе соответствующие локальные права во время установки. Он не обязательно должен быть MUSR_MQADMIN, но он должен быть в группе mqm, если он собирается запустить QMgr.
- Используйте WMQ Explorer для запуска QMgr. Любая последняя версия WMQ Explorer предложит различные варианты, один из которых — запустить QMgr под идентификатором, которому принадлежит служба. После запуска вы можете использовать свой обычный идентификатор для доступа к очередям и темам.
ОБНОВЛЯТЬ:
Хотелось бы, чтобы я подумал об этом до того, как ваш ИТ-отдел принял меры, но можно отключить Object Authority Manager. Это компонент, который выполняет поиск в домене AD. Я знаю, что его отключение позволяет чему угодно подключаться к QMgr без проблем с разрешениями домена. Ядостаточно уверенэто также позволяет вашему идентификатору выполнять процессы, запускающие QMgr.
решение3
Я также разрабатываю приложение с помощью Websphere Message Broker. В настоящее время у меня есть версия "developer". Я нашел способ обойти это, установив MQ с отключенным SAM membership lookout.
Для этого я запустил "Websphere MQ Launchpad" (запустить Setup.exe в Windows) из установочного каталога (Websphere_MQ_V7.5). На вкладке "Конфигурация сети" есть возможность отключить конфигурацию User Id. Выберите "Нет" и выполните установку.
Не то чтобы это не лучший вариант для производственных сред и сред контроля качества.
решение4
Я думаю, лучший выход — использоватьбеги какдля запуска от имени пользователя mq:
runas /user:MUSR_MQADMIN "strmqm <qmgr-name>"