WebSphere MQ, работающий под локальной учетной записью / группой, не может читать членство в группах для пользователя Active Directory. Обходной путь или альтернативное решение?

Я разрабатываю приложение, которое использует 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. Если вы не уверены, что это за ID пользователя, вы можете проверить следующее:

Откройте командную строку и введите: dcomcnfg. После открытия MMC "Службы компонентов" дважды щелкните "Службы компонентов", дважды щелкните "Компьютеры", дважды щелкните "Мой компьютер", дважды щелкните "Конфигурация DCOM". В окне найдите "IBM MQSeries Services", щелкните по нему правой кнопкой мыши и выберите "Свойства". Нажмите на вкладку "Идентичность". Должен отображаться "этот пользователь", за которым следует идентификатор.

Убедитесь, что идентификатор службы MQ (на вкладке "Удостоверение" выше) имеет необходимые права локально. Предоставьте ему любые права, которые отсутствуют для следующего:

Откройте Пуск-> Программы-> Администрирование-> Локальные настройки безопасности.

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

Конечным результатом было то, что мой ИТ-отдел и InfoSec решили, что WebSphere MQ является "серверным программным обеспечением" и поэтому не допускается на отдельных рабочих станциях, поэтому мне даже не удавалось протестировать вышеуказанное решение!

5 ответов

Хотя я не смог найти вышеупомянутые записи DCOM (связанные с V7.1?), С помощью ранее упомянутого runas-tip я смог создать, запустить и подключиться к локальному Qmgr Windows V7.1 без доступа к 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" с красной стрелкой, указывающей вниз. Щелкните правой кнопкой мыши на этом значке и выберите "Пуск..."
  • Во всплывающем окне выберите "Начать интерактивно" и нажмите "ОК".
  • Значок QMGR1 теперь должен иметь зеленую стрелку, указывающую вверх (запущено), а его квадрат должен быть желтым (подключен).
  • В MQ Explorer создайте очередь с именем TEST1 и сделайте ее постоянство по умолчанию постоянным
  • В DOSbox выполните:
    C:> amqsput TEST1 QMGR1 Введите сообщение... а затем пустую строку для завершения примера программы
  • Теперь проверьте в MQ Explorer, что ваше сообщение там!

Совет: коды возврата MQ можно быстро проверить с помощью команды "mqrc, fi C:>mqrc 2085

WebSphere MQ всегда нужно будет получать членство в группе любого идентификатора, пытающегося запустить свои компоненты или авторизовать доступ к своим ресурсам. Если эти идентификаторы не являются локальными, тогда MQ потребуются права для выполнения поиска членов SAM в домене, который владеет идентификатором. Есть несколько доступных решений:

  1. Используйте локальный идентификатор. MQ всегда сможет выполнять поиск в локальной базе данных SAM, поскольку он должен быть установлен администратором и предоставил себе соответствующие локальные права во время установки. Это не обязательно должен быть MUSR_MQADMIN, но он должен быть в группе mqm, если он собирается запустить QMgr.
  2. Используйте WMQ Explorer, чтобы запустить QMgr. Любая последняя версия WMQ Explorer будет запрашивать разные опции, одна из которых - запустить QMgr под идентификатором, который владеет сервисом. После запуска вы можете использовать свой обычный идентификатор для доступа к очередям и темам.

ОБНОВИТЬ:
Хотелось бы, чтобы я подумал об этом до того, как ваш ИТ-отдел закрылся, но есть возможность отключить диспетчер прав доступа к объектам. Это компонент, который выполняет поиск в домене AD. Я знаю, что его отключение позволяет любому подключаться к QMgr без проблем с разрешениями домена. Я уверен, что это также позволит вашему идентификатору выполнять процессы, которые запускают QMgr.

Я также занимаюсь разработкой приложений с помощью Websphere Message Broker. В настоящее время у меня есть издание для разработчиков. Я нашел способ обойти это, установив MQ с отключенным поиском SAM.

Для этого я запустил "Websphere MQ Launchpad" (запустите Setup.exe в Windows) из установочного каталога (Websphere_MQ_V7.5). На вкладке "Конфигурация сети" есть возможность отключить конфигурацию User Id. Выберите "Нет" и выполните установку.

Не то чтобы это не лучший вариант для производственной среды и сред контроля качества.

Я знаю, что это старый вопрос, но с тех пор я сталкивался с этим пару раз; поэтому я решил поделиться своим опытом.

Что я сделал, так это прошел через установщик, выбрав no для параметров пользователя домена; затем:

  1. Убедитесь, что служба работает как учетная запись локальной системы (диспетчер задач -> Службы -> Службы -> IBM Websphere MQ -> Свойства -> Вход в систему -> Учетная запись локальной системы)
  2. Установите переменную среды для отключения OAM (ПРЕДУПРЕЖДЕНИЕ: ЭТО ОТКЛЮЧАЕТ АУТЕНТИФИКАЦИЮ В MQ), установив MQSNOAUT=NO
  3. Добавьте всех в группу mqm, чтобы быть в безопасности.

Во всяком случае, у меня это сработало (Windows 7)

Я думаю, что лучше всего использовать runas для запуска от имени пользователя mq:

runas /user:MUSR_MQADMIN "strmqm <qmgr-name>"
Другие вопросы по тегам