Какой самый простой способ добавить пользователей приложений на сервер Thorntail WildFly?

#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 который определяет используемые фракции.