Защита конечной точки микропрофильных метрик Liberty в среде MpJwt

Я следую руководствам OpenLiberty по микропрофилям и пытаюсь создать пример приложения, которое выделяет все функции микропрофиля в качестве доказательства концепции для возможной реализации.

Я работаю с Liberty v2018.0.0.1 и добавил функцию mpMetrics-1.1. Liberty предоставляет конечную точку / метрики метрики, но для этого требуется аутентификация. Во всех найденных мною примерах используется конфигурация для предоставления учетных данных пользователя.

Мое приложение использует функцию mpJwt-1.0 для авторизации ресурса JAX-RS. Когда я добавил тег в server.xml, пользователь больше не авторизован (код состояния 401). Если я отправлю JWT, я получу 403.

Мои вопросы: - Если я хочу получить доступ к конечной точке / metrics с помощью JWT, какую роль следует настроить в JWT? - Могу ли я использовать два разных метода аутентификации в одном server.xml, то есть базовую аутентификацию с базовым реестром для показателей и JWT для конечных точек моего приложения?

Сокращенный server.xml:

<feature>mpMetrics-1.1</feature>
<feature>mpJwt-1.0</feature>

<mpJwt id="jwtConsumer"...

<quickStartSecurity userName="tech" userPassword="techpwd" />

<keyStore id="defaultKeyStore"...

person Martin Holt    schedule 10.04.2018    source источник


Ответы (1)


Это известная проблема, https://github.com/OpenLiberty/open-liberty/issues/2793. Вот обходной путь: 1. Создайте реестр пользователей, содержащий имя пользователя, которое должно совпадать с утверждением upn в JWT, и вы можете использовать любой фиктивный пароль. 2. Установите для mapToUserRegistry значение «true» в элементе конфигурации mpjwt.

person Chunlong    schedule 10.04.2018
comment
Спасибо за ответ. Это означает, что у меня должен быть базовый реестр как в Liberty, который выдает JWT, так и в реестре, который его использует, что нежелательно для целей демонстрации. Если я сделаю это, я все равно получаю сообщение об ошибке: The user is not granted access to any of the required roles: [Administrator]. Я буду следить за выпуском 2793. - person Martin Holt; 11.04.2018