Рубрики
Без рубрики

Краткое руководство по параметрам входа в систему Spring Boot

В этом руководстве показано, как добавить параметры входа в Spring Boot. Включает базовую аутентификацию, аутентификацию на основе форм и вход в систему OAuth 2.0. Помеченный как java, учебник, webdev.

В этом посте вы рассмотрите различные варианты реализации функции входа в систему с использованием Spring Boot 2.1. Вы начнете с самой простой, базовой аутентификации, которую вы, скорее всего, никогда не захотите использовать, за исключением, возможно, внутреннего бэкэнд-инструмента, и перейдете к простой странице аутентификации на основе форм. Затем вы настроите автоматически созданную форму по умолчанию, переопределив некоторые шаблоны и контроллеры по умолчанию. Наконец, вы перейдете к добавлению единого входа с использованием OAuth 2.0. Вы увидите, как разрешить пользователю входить в систему с помощью Github и Okta .

Предположения для этого урока довольно просты. Я предполагаю, что вы хорошо знакомы с Spring и Spring Boot, но не обязательно обладаете глубоким пониманием безопасности Spring или различных функций безопасности Spring. Вы захотите установить git и gradle было бы неплохо, но вы можете использовать оболочку Gradle для всех команд gradle , так что это не является строго необходимым.

Идите вперед и клонируйте хранилище Я создал для этого учебника:

git clone https://github.com/oktadeveloper/okta-spring-boot-login-options-example.git

Этот репозиторий содержит пять подкаталогов:

  • базовый-auth
  • форма-auth
  • пользовательская форма-аутентификация
  • запуск oauth-запуска
  • oauth-окта-гитхаб
  • oauth-окта-стартер

Они соответствуют четырем разделам этого руководства (с тремя для последнего раздела, раздела OAuth). За исключением oauth-запуска , это полностью функциональные приложения. В этом уроке вы узнаете, что означает код и как его создавать.

Создайте базовый логин HTTP в Spring Boot

Базовая аутентификация – это, ну, в общем, элементарно. Это простая схема, встроенная непосредственно в протокол HTTP. Это происходит из пастырских времен до того, как огромные объемы данных и денег потекли по различным каналам и трубам Интернета. Таким образом, это действительно не очень безопасно. Согласно спецификации, пароль и имя пользователя кодируются с использованием Base64 в заголовке HTTP authorization . Поскольку Base64 с таким же успехом может быть простым текстом, если вы собираетесь использовать базовую аутентификацию для чего-либо, убедитесь, что вы всегда используете HTTPS/SSL, потому что вы отправляете свои учетные данные для аутентификации с каждым запросом.

Откройте проект basic-auth Spring Boot с помощью вашей любимой среды разработки или редактора.

Первое, что вы захотите проверить, это файл build.gradle . Это воспроизведено ниже. Я не буду подробно останавливаться на них всех, но я хочу сориентировать вас на некоторые вещи, происходящие здесь, на случай, если вы еще не знакомы.

plugins {  
    id 'org.springframework.boot' version '2.1.4.RELEASE'  
    id 'java'  
}  

apply plugin: 'io.spring.dependency-management'  

group = 'com.okta.springsecurityauth'  
version = '0.0.1-SNAPSHOT'  
sourceCompatibility = '1.8'  

repositories {  
    mavenCentral()  
}  

dependencies {  
    implementation 'org.springframework.boot:spring-boot-starter-security'  
    implementation 'org.springframework.boot:spring-boot-starter-web'  
    testImplementation 'org.springframework.boot:spring-boot-starter-test'  
    testImplementation 'org.springframework.security:spring-security-test'  
}

В сборку добавляются два плагина Spring: org.springframework.ботинок и io.spring.управление зависимостями . Обратите внимание, что версия установлена на 2.1.4.ВЫПУСК . Одной из реальных проблем Spring в прошлом было управление зависимостями. Spring – это огромная коллекция библиотек, и когда вы добавляете одну, вам нужно добавить другие с совместимыми версиями. Когда вы обновляете один из них, часто это приводит к тому, что другие выходят из совместимости. Исправление этого в прошлом могло привести вас к тому, что называлось “адом зависимости”.

К счастью, весна значительно упростила ситуацию. Посмотрите на наши две весенние зависимости:

dependencies {  
    implementation 'org.springframework.boot:spring-boot-starter-security'  
    implementation 'org.springframework.boot:spring-boot-starter-web'  
... 
}

Обратите внимание, что у них нет номеров версий. В основном это большие мета-зависимости для наборов функций (в данном случае безопасности и Интернета), а плагины Spring управляют всеми зависимостями для вас на основе версии, установленной в этой строке:

id 'org.springframework.boot' version '2.1.4.RELEASE'

Краткое изложение всего этого заключается в том, что в этом файле build.gradle будет загружена версия Spring Boot версии 2.1.4 и будут добавлены модули веб-функций и функций безопасности. Список всех доступных стартеров с весны можно найти в их документах .

Кроме градации.файл , на самом деле есть только три других интересующих файла, все файлы Java. Посмотрите в src/main/java/com/okta/проверка подлинности spring security и ты их увидишь:

  • Приложение.ява ( основной класс, в котором используется автоматическая магия, – это весь фреймворк Spring Boot)
  • Конфигурация безопасности.ява (настраивает параметры безопасности)
  • WebController.java (очень простой контроллер HTTP-запросов)

Приложение.java является точкой входа в приложение. В данном случае, как и во многих других, это довольно просто. Самое важное – это аннотация @SpringBootApplication , которая сообщает вашим зависимостям Spring о начальной загрузке всей платформы Spring Boot. Существует, конечно, также метод main() , в котором класс Application загружается и запускается Spring.

package com.okta.springsecurityauth;  

import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  

@SpringBootApplication  
public class Application {  

    public static void main(String[] args) {  
        SpringApplication.run(Application.class, args);  
    }  

}

WebController.java является, достаточно умно, вашим контроллером веб-запросов. Он определяет конечные точки запроса и определяет ответы.

package com.okta.springsecurityauth;  

import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.ResponseBody;  

@Controller  
public class WebController {  

    @RequestMapping("/")  
    @ResponseBody  
    public String index() {  
        return "That's pretty basic!";  
    }  

}

В этом случае веб-контроллер возвращает простую строку вместо маршрутизации в файл шаблона, как мы увидим чуть позже. Аннотация @ResponseBody – это то, что позволяет этому методу напрямую возвращать строку.

Конфигурация безопасности.java – это то, где происходит действие в этом уроке. Именно здесь Spring Boot настроен на использование базовой аутентификации. Здесь также можно настроить жестко заданного пользователя и пароль по умолчанию (очевидно, это не то, что я бы делал на производстве, но отлично подходит для учебных пособий).

package com.okta.springsecurityauth;  

import org.springframework.context.annotation.Configuration;  
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;  
import org.springframework.security.config.annotation.web.builders.HttpSecurity;  
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;  

@Configuration  
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {  

    @Override  
    public void configure(HttpSecurity http) throws Exception {  
        http  
            .authorizeRequests()  
            .anyRequest().authenticated()  
            .and()  
            .httpBasic();  
    }  

    @Override  
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {  
        auth.inMemoryAuthentication()  
            .withUser("user")  
            .password("{noop}pass") // Spring Security 5 requires specifying the password storage format  
            .roles("USER");  
    }  

}

Если вы посмотрите на метод configure() , вы увидите, что объект http используется с его плавным интерфейсом, чтобы указать spring проверять подлинность всех запросов и использовать базовую аутентификацию HTTP. Это довольно тривиально, но в этом интерфейсе есть масса возможностей, как вы увидите через минуту.

Метод configure() в основном используется в этом руководстве для создания пользователя в диспетчере аутентификации в памяти. Вы создаете пользователя с именем пользователя пользователь и паролем пропуск . Пользователю назначена роль ПОЛЬЗОВАТЕЛЬ .

Вот и все!

Откройте терминал и убедитесь, что вы находитесь в корневом каталоге проекта basic-auth . Запустите проект с помощью следующей команды:

./gradlew bootRun

Дождитесь завершения загрузки приложения Spring Boot.

Перейдите к http://localhost:8080 .

Вы увидите окно входа в систему.

Войдите в систему с помощью пользователя и передать в качестве учетных данных.

Вы попадете на экран успеха, на котором будет написано: “Это довольно просто!”

Настройка входа в систему на основе формы загрузки Spring

При использовании базовой авторизации форма входа в систему фактически создается браузером, а не приложением. Он отображается в виде всплывающего окна без оформления. Это не очень хороший поток и не очень профессионально выглядит.

С некоторыми довольно минимальными изменениями в коде вы можете заставить Spring Boot автоматически генерировать более профессионально выглядящую форму входа. Завершенный код можно найти в подкаталоге form-auth репозитория GitHub, или вы можете просто внести изменения в проект basic-auth , если он все еще открыт.

Вы хотите изменить метод configure() конфигурации SecurityConfiguration.java файл должен выглядеть так:

@Override  
public void configure(HttpSecurity http) throws Exception {  
    http  
        .authorizeRequests()  
        .anyRequest().authenticated()  
        .and()  
        .formLogin()  
        .and()  
        .httpBasic();  
}

Единственное отличие – это добавление .и().форма входа в систему () . В остальном эти два проекта одинаковы.

Запустите его снова, используя ./gradlew Запуск загрузки .

Перейдите к http://localhost:8080 (возможно, вам потребуется открыть окно инкогнито, чтобы запустить повторную аутентификацию).

На этот раз вы увидите страницу входа в систему, которую Spring создает для вас.

Настройка формы входа в систему Spring Boot

Следующим шагом на нашем пути к все более сложной аутентификации Spring Boot является настройка формы входа. Весна делает это очень легким делом. Однако появилось несколько новых файлов и больше изменений в коде, чем в прошлый раз, поэтому я бы предложил открыть проект, найденный в папке пользовательская форма-авторизация репозитория.

В файле build.gradle появилась одна новая зависимость. Это включает механизм создания шаблонов Thymeleaf, механизм создания веб-шаблонов по умолчанию для использования с Spring Boot.

dependencies {  
    ...
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'  
    ... 
}

Конфигурация безопасности.файл java теперь выглядит так (для краткости некоторые части опущены):

package com.okta.springsecurityauth;  

...

@Configuration  
@EnableWebSecurity  
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {  

    @Override  
    public void configure(HttpSecurity http) throws Exception {  
        http  
            .authorizeRequests()  
            .antMatchers( "/public/**").permitAll()  
            .anyRequest().authenticated()  
                .and()  
            .formLogin()  
                .loginPage("/login.html")  
                .failureUrl("/login-error.html")  
                .permitAll();  
    }

    ...

}

Обратите внимание, что .http Основной () исчез, а в .formLogin() появилось несколько новых опций. Здесь вы настраиваете страницу входа в систему и страницу сбоя входа в систему и убедитесь, что они общедоступны.

Также обратите внимание на эту строку:

.antMatchers( "/public/**").permitAll()  

Здесь вы делаете каталог общедоступным в корневом каталоге пути к классам доступным без аутентификации. В каталоге src/main/ресурсы/статические находится каталог общедоступный . При запуске приложения все, что находится в каталоге src/main/resources/static , копируется в путь к классу, поэтому каталог public заканчивается в корневом каталоге пути к классу, и все файлы в нем будут доступны без аутентификации. Это отлично подходит для таких вещей, как изображения, файлы JavaScript и файлы CSS.

Тот WebController.java также имеет несколько новых конечных точек:

package com.okta.springsecurityauth;  

...

@Controller  
public class WebController {  

    @RequestMapping("/")  
    @ResponseBody  
    public String index() {  
        return "You made it!";  
    }  

    // Login form  
    @RequestMapping("/login.html")  
    public String login() {  
        return "login.html";  
    }  

    // Login form with error  
    @RequestMapping("/login-error.html")  
    public String loginError(Model model) {  
        model.addAttribute("loginError", true);  
        return "login.html";  
    }  

}

Обратите внимание, что в то время как метод index() имеет аннотацию @RequestBody , что означает, что он будет возвращать тело запроса непосредственно в виде строки, метод login() и ошибка входа в систему() методы этого не делают. Вместо этого они возвращают имя шаблонов Thymeleaf, которые будет отображать Spring Boot. По умолчанию эти шаблоны находятся в разделе src/main/ресурсы/шаблоны . Кроме того, обратите внимание, что Ошибка входа в систему() – это своего рода трюк с маршрутизацией. На самом деле он просто возвращает login.html шаблон, но с атрибутом ошибки, введенным в модель.

src/main/resources/templates/login.html – это новый файл. Это файл шаблона входа в систему.


  
  
  
    Login page  
      
  
  

Login page

Wrong user or password

Реальное, подробное объяснение Thymeleaf выходит далеко за рамки этого руководства. Направляйтесь в их веб-сайт , чтобы покопаться в нем, если хотите.

Помните, когда вы сделали каталог общедоступным общедоступным? Существует очень простая таблица стилей, которая заполняется этой строкой здесь. В основном я включил это, чтобы продемонстрировать один из способов включения статических ресурсов в файлы шаблонов.

  

Строка ошибки отображается условно на основе атрибута Ошибка входа модели, который вводится методом LoginError() контроллера.

Wrong user or password

Кроме этого, это довольно простая форма входа в систему!

Еще раз, ./градлью загрузочный запуск для его запуска.

Вы увидите стильную, настроенную форму входа в систему:

Войдите в систему снова, используя пользователь:пропуск и вы увидите наш экран успеха с надписью: “Вы сделали это!”

Вход в систему Spring Boot OAuth 2.0 с помощью GitHub и единого входа- На

До этого момента все ваши проверки подлинности выполнялись локально с использованием специальной встроенной памяти Менеджер аутентификации . Чаще всего в производстве приложения поддерживают OAuth 2.0 и OIDC (OpenID Connect). OAuth 2.0 – это открытый стандарт авторизации. OIDC построен поверх OAuth 2.0 и добавляет аутентификацию для более полного протокола управления идентификацией.

В этом уроке вы сначала увидите, как добавить единый вход (единый вход) с помощью GitHub. После этого вы узнаете, как использовать Okta, поставщика решений для идентификации программного обеспечения как услуги.

И то, и другое очень просто, и есть реальная выгода в том, чтобы пользователи могли повторно использовать существующих поставщиков удостоверений личности. Принуждение пользователей обрабатывать отдельные надежные пароли для сотен веб-сайтов и управлять ими – это глупая затея, которая в конечном итоге приводит к более слабым паролям и паролям, повторно используемым на нескольких сайтах (увеличивая их уязвимость к атакам); не говоря уже о старом решении для управления паролями “просто нацарапайте его на стикере и прикрепите к монитору”.

Упростите вход в приложение Spring Boot с помощью единого входа на GitHub

Теперь пришло время внедрить клиент GitHub OAuth 2.0.

Во-первых, вам необходимо зарегистрировать новое приложение OAuth на GitHub. Перейти к их веб-сайт и сделайте это сейчас. Заполните значения, как показано ниже.

Обратите особое внимание на URL обратного вызова авторизации , так как это должно быть http://localhost:8080/login/oauth2/code/github .

Нажмите Зарегистрировать приложение . Обратите внимание на Идентификатор клиента и Секрет клиента , так как они вам понадобятся через секунду.

А теперь вернемся к Яве. Откройте проект oauth-start в вашей среде разработки.

В файле build.gradle обратите внимание на пару новых зависимостей:

...
dependencies {  
    implementation 'org.springframework.boot:spring-boot-starter-security'  
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'  
    implementation 'org.springframework.boot:spring-boot-starter-web'  
    implementation 'org.springframework.security:spring-security-oauth2-client'  
    implementation 'org.springframework.security:spring-security-oauth2-jose'  
    ...  
}

Безопасность, Тимлиф и веб-стартеры все еще там. Однако есть два новых запуска Spring: oauth2-клиент и oauth2-хосе .

oauth2-клиент содержит библиотеки, необходимые для реализации клиента OAuth 2.0. oauth2-jose содержит некоторые распространенные библиотеки для подписи и шифрования. ХОСЕ расшифровывается как подпись и шифрование объектов Java.

Конфигурация безопасности.файл java обновлен для входа в систему OAuth:

package com.okta.spring.SpringBootOAuth;    
...

@Configuration  
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {  
    @Override  
    public void configure(HttpSecurity http) throws Exception {  
        http.antMatcher("/**")  
            .authorizeRequests()  
            .antMatchers("/", "/login**").permitAll()  
            .anyRequest().authenticated()  
            .and()  
            .oauth2Login();  
    }  
}

Следует отметить две вещи: 1) все запросы к /| и login являются общедоступными, и 2) метод oauth2 Login() является причиной того, что Spring Boot настраивает клиент OAuth 2.0.

Если это кажется слишком простым , вы правы. Часть конфигурации была перенесена в файл application.yml .

Откройте файл src/main/ресурсы/application.yml :

spring:  
  thymeleaf:  
    cache: false  
  security:  
    oauth2:  
      client:  
        registration:  
          github:  
            client-id: << your GitHub client ID>>  
            client-secret: << your GitHub client secret >>

Вам нужно заполнить Идентификатор клиента и Секрет клиента сверху в этот файл.

Веб-маршрутизация и шаблоны также изменились. Посмотрите на WebController.java файл:

package com.okta.spring.SpringBootOAuth;  

...

@Controller  
public class WebController {  

    @RequestMapping("/securedPage")  
    public String securedPage(Model model,  
                              @RegisteredOAuth2AuthorizedClient OAuth2AuthorizedClient authorizedClient,  
                              @AuthenticationPrincipal OAuth2User oauth2User) {  
        model.addAttribute("userName", oauth2User.getName());  
        model.addAttribute("clientName", authorizedClient.getClientRegistration().getClientName());  
        model.addAttribute("userAttributes", oauth2User.getAttributes());  
        return "securedPage";  
    }  

    @RequestMapping("/")  
    public String index() {  
        return "index";  
    }  

}

Этот контроллер определяет две конечные точки, которые возвращают два файла шаблонов:

  • / –> src/главная/ресурсы/шаблоны//
  • –> src/главная/ресурсы/шаблоны/ //защищенная страница

В методе защищенная страница() обратите внимание, как внедрение зависимостей используется для получения информации об аутентифицированном пользователе, чтобы ее можно было внедрить в модель, которая затем передается в файл шаблона.

Тот src/main/resources/templates/index.html довольно просто:


  
  
  
      
    Home  
  
  
    

Spring Security SSO

Login

И src/main/resources/templates/securedPage.html файл шаблона:


  
  
  
      
    Secured Page  
  
  
    

Secured Page

User Name:
Client Name:
User Attributes:

Теперь вы готовы попробовать это. Опять же, убедитесь, что вы находитесь в корневом каталоге проекта, и запустите ./gradlew Запуск загрузки .

Перейдите к http://localhost:8080 и нажмите на ссылку Войти .

Если ваш браузер обходит страницу входа и переходит прямо на /защищенную страницу конечной точки, откройте браузер инкогнито и повторите попытку.

Во-первых, вам нужно будет авторизовать приложение Spring Boot для входа в систему, чтобы использовать вашу учетную запись Github для входа в систему OAuth.

Далее вы увидите экран входа в систему GitHub OAuth:

Если вы пройдете успешно, вы увидите простую текстовую страницу с надписью “Защищенная страница” жирным шрифтом и отображением некоторой информации о вашем пользователе OAuth.

Довольно мило, да?

Теперь вы собираетесь добавить второго поставщика OAuth: Okta.

Добавьте логин OAuth 2.0 с помощью Okta в свое приложение Spring Boot

Во-первых, перейдите в developer.okta.com и подпишитесь на бесплатную учетную запись разработчика, если у вас ее еще нет.

Как только у вас появится учетная запись, чтобы создать приложение OAuth/OIDC, откройте панель мониторинга разработчика Okta. Нажмите на пункт верхнего меню Приложения , а затем нажмите Добавить приложение .

Выберите Веб в качестве платформы и нажмите Далее .

Дайте приложению имя. Я назвал свой “Вход в систему Spring Boot”, но вы можете назвать свой так, как вам нравится.

Измените URL-адреса перенаправления для входа на http://localhost:8080/login/oauth2/code/okta .

Остальные значения по умолчанию в порядке.

Нажмите Готово .

Обратите внимание на Идентификатор клиента и Секрет клиента на следующей странице.

Обновите файл application.yml для Okta:

spring:  
  ...
  security:  
    oauth2:  
      client:  
        registration:  
          github:  
            client-id: << Your GitHub Client ID >>  
            client-secret: << Your GitHub Client Secret >>  
          okta:  
            client-id: << Your Okta Client ID >>  
            client-secret: << Your Okta Client Secret >> 
            client-name: Okta
        provider:  
          okta:  
            issuer-uri: https://{yourOktaDomain}/oauth2/default

Вам необходимо добавить записи о регистрации и поставщике Okta, обязательно указав свой Идентификатор клиента , Секрет клиента и эмитента Okta.

Перезапустите приложение, перейдите в http://localhost:8080 , и нажмите на ссылку Войти .

На этот раз вам будет предоставлен выбор поставщиков OAuth. Этот экран автоматически генерируется при загрузке Spring.

Нажмите Okta и вы попадете на страницу входа в Okta (обычное предостережение о выходе из системы и/или применении инкогнито).

Успешно войдите в систему, и вы увидите нашу страницу успеха.

На этом этапе вы обновили проект oauth-start в папке проекта oauth-github-okta и увидели, как легко добавить несколько поставщиков OAuth в приложение Spring Boot.

Упростите Вход В Систему OAuth 2.0 С Помощью Стартера Весенней загрузки Okta

Последнее, что вы собираетесь сделать в этом уроке, – это настроить Okta для разрешения регистрации новых пользователей. Однако, прежде чем вы это сделаете, я хочу познакомить вас со стартером Okta Spring Boot. Проект упрощает интеграцию Spring Boot и Okta. README проекта является отличным источником для получения более подробной информации.

Вы собираетесь интегрировать Okta Spring Boot Starter в этот проект и немного упростить конфигурацию. Просто для простоты вы также удалите интеграцию GitHub с OAuth.

Добавьте одну зависимость в файл build.gradle :

dependencies {
    ...
    implementation 'com.okta.spring:okta-spring-boot-starter:1.1.0'
    ...
}

Теперь обновите файл application.yml :

okta:  
  oauth2:  
    issuer: https://{yourOktaDomain}/oauth2/default  
    client-id: <>
    client-secret: <> 
spring:  
  thymeleaf:  
    cache: false

Введите свой Секрет клиента и Идентификатор клиента .

Попробовать это. Беги ./градлью Запуск загрузки .

Вы должны иметь возможность войти в систему через Okta. На этот раз вам не будет предоставлен выбор поставщиков OAuth 2.0.

Включить Регистрацию Пользователя

Войдите в свой developer.okta.com учетная запись.

Наведите курсор на Пользователи и нажмите на Регистрация .

Включить регистрацию. Кроме того, включите ссылку Показать “Зарегистрироваться” на странице входа… опция. Это приводит к тому, что ссылка на регистрацию отображается на размещенной странице входа в систему.

Войдите в систему снова, используя окно инкогнито. На этот раз вы заметите, что у пользователя есть возможность зарегистрироваться в качестве нового пользователя.

Введите свой адрес электронной почты, пароль и имя; задайте несколько секретных вопросов, и все готово! Вы зарегистрировали нового пользователя для своего приложения с помощью Okta.

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

Конечный продукт для этого с использованием Okta Spring Boot Starter и удалением GitHub OAuth находится в каталоге oauth-okta-starter .

Узнайте больше О параметрах входа в систему Spring Boot и безопасной аутентификации

В этом уроке вы охватили ОГРОМНУЮ территорию. Вы внедрили приложение Spring Boot, используя базовую аутентификацию, аутентификацию на основе форм и настраиваемую аутентификацию на основе форм. Затем вы использовали OAuth 2.0 и OIDC для реализации единого входа с использованием GitHub и Okta. Наконец, вы увидели, как Okta Spring Boot Starter можно использовать для упрощения настройки единого входа OAuth/OIDC в Spring Boot и как разрешить пользователям регистрироваться в Okta для самообслуживания.

Вы можете найти весь код для примеров в этом руководстве на GitHub .

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

Образец входа в систему Spring Security oauth2 также содержит отличную информацию и другие примеры.

Вот несколько связанных сообщений в блоге, которые демонстрируют, как использовать Spring Boot и Spring Security для входа и аутентификации:

Если вам понравился этот пост, подписывайтесь на нас в социальных сетях { Твиттер , Facebook , LinkedIn , YouTube }, чтобы знать, когда мы публиковали похожие.

Оригинал: “https://dev.to/oktadev/a-quick-guide-to-spring-boot-login-options-5fjo”