로그인 기능_Spring Security 기본편(11)에서 배운 것
InMemory방식 프로젝트
SecurityConfig 파일 내부에 UserDetailsService 클래스를 이용하여 Bean을 등록하여 회원을 생성
토이 프로젝트 또는 시큐리티 로그인 환경은 필요하지만 소수의 회원 정보만 가지며 데이터베이스라는 자원을 투자하기 힘든 경우 회원가입 없는 InMemory 방식으로 유저 저장
스프링 시큐리티로 구현 할 수 있는 로그인 방식
formLogin 인증 방식
form 로그인 방식은 사용자 정의 HTML 로그인 페이지를 만들어, 그 안에 form 태그를 작성한 뒤, 사용자로부터 입력받은 아이디와 비밀번호를 서버로 전송하여 인증을 처리하는 방식
구현 방법
1. HTML 생성 및 form 태그 작성
로그인 폼을 작성하여 사용자로부터 아이디와 비밀번호를 입력받도록 설정.
폼의 action 속성으로 서버의 로그인 처리 경로와 method="POST"를 지정.
2. SecurityConfig 클래스 설정
Spring Security의 http.formLogin() 메서드를 사용하여 formLogin 방식 활성화.
로그인 페이지 경로, 로그인 처리 URL 등을 설정
2. HttpBasic 인증 방식
HttpBasic 인증 방식은 사용자의 아이디와 비밀번호를 Base64 방식으로 인코딩하여 HTTP 인증 헤더(Authorization)에 포함시킨 뒤, 서버로 요청을 보내는 방식. 서버는 이를 디코딩한 후 인증 정보를 검증하여 요청을 처리
특징
간단하고 빠르게 구현 가능.
기본적으로 HTTP 헤더를 사용하므로 브라우저나 클라이언트에서 쉽게 처리 가능.
Base64는 단순한 인코딩 방식이므로 SSL/TLS와 함께 사용해야 보안이 보장됨.
주요 사용 사례
마이크로서비스 아키텍처(MSA) 환경에서, 유레카 서버(Eureka), 컨피그 서버(Config Server) 등 내부적으로 private 망에서 통신하는 서비스 간 인증.
내부 시스템에서 간단한 인증 절차가 필요한 경우.
테스트 또는 개발 환경에서 간단한 인증 방식으로 사용.
단점:
인증 정보가 매 요청마다 노출되므로 반드시 HTTPS를 통해 암호화된 통신을 보장해야 함.
인증 토큰과 같은 보다 안전한 방식으로 대체하는 것이 권장됨.
기존 작성한 프로젝트에서 formLogin() 관련 @bean 등록된 것을 아래와같이 변경시 httpBasic 방식으로 인증
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
http
.httpBasic(Customizer.withDefaults());
return http.build();
}
'Spring Security_로그인 기능 구현 > Spring Security Basic' 카테고리의 다른 글
로그인 기능_Spring Security 기본편(11) (1) | 2024.11.04 |
---|---|
로그인 기능_Spring Security 기본편 (10) (0) | 2024.10.31 |
로그인 기능_Spring Security 기본편 (9) (1) | 2024.10.22 |
로그인 기능_Spring Security 기본편 (8) (0) | 2024.10.16 |
로그인 기능_Spring Security 기본편 (7) (0) | 2024.10.11 |