Безопасности в Api?
Имеет Api, в твоих услугах? Как это безопасность этих Api? У нас есть несколько способов применения охранников в наших Api. Одним из них является аутентификации и авторизации с использованием OpenID / OAuth2 .
Keycloak
Чтоб разработать, если у нас уже есть готовые инструменты? O Ключ-плащ é uma ferramenta с открытым исходным кодом, чтобы доказать аутентификацию и авторизацию для использования в службах, использующих протоколы, такие как OpenID, OAuth2 и SAML. Он имеет интеграцию с LDAP, AD и социальных сетей. Для testermos, давайте расти una экземпляр docker: docker ru --name keycloak -p 8080:8080 -и -и-набережная.io/keycloak/keycloak:14.0.0
Он поднимается экземпляр H2 и даже перезапуске службы не потеряете все настройки, что мы делаем.
Конфигурационный ключ o Keycloak
Службы будут подниматься на порт 8080 и может быть доступен по url http://localhost:8080
Quando subimos o docker, stamo su usuario essenza iniciais (KEYCLOAK_USER= admin e KEYCLOAK_PASSWORD= admin ). Нажмите кнопку “Administration Console”, пожалуйста, введите имя пользователя/пароль, чтобы войти в консоль. Первое, что нужно сделать в консоли, – это создание сферы. Мы можем понять здесь, что область-это представление вашего приложения, мы можем иметь несколько приложений, работающих на одном экземпляре Keycloak. По умолчанию уже создан сферы master , где существует учетная запись администратора, изначально созданные и только мы будем ее использовать для создания других сфер. Итак, в левом верхнем углу мы нажимаем на кнопку “Добавить область”. Следующий шаг заключается в создании и настройке клиента. На вкладке слева, нажмите кнопку “Clients”, а затем кнопку “Create”. После если не указано, мы будем изменить следующие свойства client. Здесь url-адрес был добавлен только будет необходимо, мы не будем использовать его. Эти изменения необходимы, чтобы, используя этот client-id, удастся приобрести токен для доступа к Api.
Приложение
Давайте создадим простой проект с помощью Весенняя инициализация/| .
Abra o projeto na sua IDE, редактировать o приложение.свойства и добавьте порт, который ваше приложение будет расти:
server.port=8090
Мы будем добавлять контроллер ниже: Поднимаясь конструкция и делают тест простой почтальон, мы видим, что конечная точка это совершенно открыто, без каких-либо безопасности.
Теперь мы собираемся добавить в безопасности. Отредактируйте пом.xml и добавить необходимые зависимости:
org.springframework.security spring-security-config org.springframework.boot spring-boot-starter-oauth2-resource-server
Только добавить зависимости, наши концами уже не будут выставлены. Теперь мы будем информировать spring security, какой url-адрес проверки токена. Мы будем править | application.свойства и будем добавлять свойства, необходимо:
spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:8080/auth/realms/security-api
Внимание последний элемент url-адреса, он это имя realm.
И это основное, что мы должны иметь наш API безопасный.
Взяв маркер
Токен доступа к единой системе обмена сообщениями Vamos pegar без ключа для проверки конечной точки nosso. URL-адрес для использования токена доступа é: http://localhost:8080/auth/realms/security-api/protocol/openid-connect/token
Вспомнив, что security-api это имя realm. В почтальон, создайте запрос POST, используя этот url-адрес выше. В body request будем отправлять следующий:
- client_id: имя клиента, который был создан в keycloak, в нашем случае-это web-app .
- client_secret: aqua precisamos pagar o valor lerado la без кадастра у клиента нет ключа. Редактировать o клиент перейдите на вкладку “Credentials” и скопируйте значение “Secret”
- grant_type: vamos setar “client_credentials”, pois iremos gerar um токен для um клиентского кадастра, без ключа.
Testando o конечная точка seguro
Мы будем копировать значение поля “access_token” ответ ” и ” мы будем править request к нашим сервисом. Этот маркер должен быть включен в заголовок request key Authorization и в value включим префикс, который показывает, какой тип токена, который будет Предъявителя . Будет выглядеть так: На данный момент это… мы будем улучшать этот код в части 2.
Код из этого учебника, в github
Уже вышел второй частью учебника, вы можете посмотреть здесь
Оригинал: “https://dev.to/mmacorin/spring-boot-keycloak-protegendo-suas-apis-parte-1-436o”