#thorntail
#thorntail
Вопрос:
Как сказано в названии, есть ли способ добавить пользователей приложений на сервер Thorntail WilFly, подобно тому, как вы бы сделали с «add-user.sh -скрипт в полном дистрибутиве сервера?
Я понимаю, что вы можете предоставить Thorntail внешний файл конфигурации, но это кажется немного накладным только для указания местоположения пользователей. Спасибо
Ответ №1:
Ответ Томаса Херцога очень хорош с концептуальной точки зрения — я бы особенно согласился с защитой приложения с помощью внешнего Keycloak, возможно, с помощью микропрофиля JWT. Я просто приведу несколько моментов на случай, если вы решите этого не делать.
Вы можете определять пользователей непосредственно в project-defaults.yml
, вот так:
thorntail:
management:
security-realms:
ApplicationRealm:
in-memory-authentication:
users:
bob:
password: tacos!
in-memory-authorization:
users:
bob:
roles:
- admin
project-defaults.yml
Файл не обязательно должен быть внешним по отношению к приложению, вы можете встроить его непосредственно в него. Как правило, в вашем исходном коде файл будет находиться в src/main/resources
, а после сборки он будет встроен в -thorntail.jar
. Конечно, он может быть внешним, и если это нечто иное, чем одноразовый прототип или тест, такие конфиденциальные данные, как это, должны быть внешними.
Вы также можете использовать .properties
файлы из WildFly:
thorntail:
management:
security-realms:
ApplicationRealm:
properties-authentication:
path: .../path/to/application-users.properties
properties-authorization:
path: .../path/to/application-roles.properties
Комментарии:
1. Спасибо! Это было именно то, что я искал!
Ответ №2:
Это зависит от того, для чего вам нужны пользователи? Thorntail создает автономные микросервисы, которые отличаются от размещенных приложений на сервере wildfly.
Есть ли консоль управления в thorntail?
Да, есть, но я никогда им не пользовался.
https://docs.thorntail.io/2.2.0.Final/#_management
https://docs.thorntail.io/2.2.0.Final/#_management_console
Пользователи, которых вы, возможно, сможете там создать, не должны быть постоянными, потому что нет установки wildfly-server, к которой вы привыкли при автономной установке wildfly-server, все это упаковано в jar. Микросервис больше не нужно настраивать после его развертывания, по крайней мере, таким образом.
Как защитить мое приложение?
Я бы рекомендовал использовать внешнее управление пользователями через keycloak, которое интегрировано в thorntail через keycloak fraction. С помощью функции keycloak fraction вы можете определить ограничения безопасности для ваших конечных точек, аналогичные web.xml.
https://docs.thorntail.io/2.2.0.Final/#_keycloak
Другой способ — использовать security fraction, который обеспечивает поддержку JAAS для вашего микросервиса.
https://docs.thorntail.io/2.2.0.Final/#_security
Настройка выполняется с помощью конкретного проекта thorntail-defaults.конфигурационный файл yml, где вы можете настроить фракции через YAML.
Что такое доля thorntail?
Фракция thorntail похожа на зависимость spring boot start от spring, в соответствии с которой фракция предоставляет API для разработки и объединяет реализацию и интеграцию в thorntail. На самом деле fraction — это модуль jboss, который упаковывается в автономный микросервис на этапе переупаковки.
Где я могу найти примеры?
Смотрите следующие ссылки для получения примеров использования безопасности в thorntail. Вы должны взглянуть на них.
https://github.com/thorntail/thorntail-examples/tree/master/security
Взгляните на src /main /resources /projects-значения по умолчанию.yml, который содержит конфигурацию для фракций thorntail и pom.xml который определяет используемые фракции.