Использование JMX с Jaas для аутентификации jconsole

У меня есть следующий сценарий:

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

Пользователи будут входить в систему на компьютере и иметь права доступа, сохраненные в форме активного каталога.

Я ищу, чтобы добавить аутентификацию и авторизацию в процесс jmx, чтобы, когда пользователь вводит в командной строке:

jconsole <processName>

Он проверит их группу пользователей AD и определит, есть ли у них права на чтение или чтение и запись в управляемый ресурс.

У меня есть решение для получения групп AD, но не в том, как я передаю его процессу JMX. Я могу установить файл с жестко запрограммированными паролями для процесса jmx, но у меня нет возможности автоматически вызывать пользователя, чтобы определить его права доступа.

Возможно ли текущему процессу JMX выполнить обратный вызов, чтобы определить права доступа заданных пользователей, когда они пытаются подключиться к нему? Если нет, существуют ли существующие инструменты и структуры (например, JBoss), которые позволили бы мне сделать это?

1 ответ

Решение

Это решается с помощью пользовательского модуля входа в систему Jaas, а затем перезагружается и перезапускается процесс JMX с помощью следующего в командной строке:

-Dcom.sun.management.jmxremote.login.config=Sample
-Djava.security.auth.login.config=sample_jaas.config

где sample_jaas.config имеет такую ​​настройку:

Sample {
   sample.module.SampleLoginModule required;
};

и мой SampleLoginModule реализует интерфейс LoginModule, а в его методе login() есть обратный вызов в модуль логики авторизации.

Другие вопросы по тегам