본문 바로가기
백엔드/Spring Security

SPRING SECURITY란?

by 임지혁코딩 2024. 1. 8.

보안에 활용되는 보안 프레임워크 . 유일무이한 선택지 

 

EX) 어떠한 사용자라도 괜찮은지, 아닌지 

 

LOGIN인이랑, 사실 사용자 인증의 역할을 한다. (네트워크 보안 교과목에서 수강하였다) 

이에 추가적으로, 운영자와 사용자의 ROLE을 분할한다 (ROLE-BASED-ACCESS라고 볼 수 있다)

 

우리가 필요로하는 어떤 보안 절차라도 사용이 가능하다 .

 

스프링의 가장 유연하고 쉽게 구현된 기능은

인증과, 인가이다. 

 

인증 (Authentication)

인증은 사용자가 누구운지 확인하는 절차이다. ex) 로그인 

사용자의 인증을 주로 인증이라고 호칭한다. 

*주의해야할 핵심 기능 -> 로그인을 한번 하고 나면, 해당 user가 user가 맞음을 계속 인증받아야 한다.

 

case 1 ) 모든 request시마다, id와 pw를 포함한다. 

 

case 2 ) id,pw를 전송하고, nonce를 받아온다. 그 nonce를 앞으로는 매 연결시마다 전송한다. 

 

*네트워크보안 강의 내용에 따라  , replyattack과 mitm attack을 어떻게 방지할 수 있는지가 궁금증이 생겼다. 

허나 놀랍게도, spring secuirty에서 tls혹은 ssl를 적용가능함을 깨달았다! 해당 내용을 이후에 추가로 공부하기로 하였다. 

 

인가 (Authorization)

한마디로, role 에 따라 할 수 있는 역할의 제한을 두는 것 

 

SPRING SECURITY에서 통크게 지원해준, UserDetails 인터페이스. 

이러한 method 들이 포함되어 있으며, 이를 오버라이딩하여 구체화하고 사용함을 목표로 한다. 

 

SPRING에서 제공하는 두번째 CLASS는 PASSWORD ENCODER! 

비밀번호 암호화 CLASS. 

허나 이 PASSWORDENCODER를 사용할때는, 빈으로 직접 CONFIG를 통해서 설정해주어야한다. 

 

password encoder를 빈으로 등록.

 

번거롭게 Authentication을 사용하는 이유이자, 스프링의 존재 가치 .

 

User->authentication 객체로 변환하여, 해당 객체가 인증받은 객체인지 아닌지를 get Principal로 확인해 줄 수 있다.

즉 User->authentication | 인증 받았는가? | -> 인증 받았다면 해당 User를 다시 구현하는 형태이다 .

 

@Modelattribute는 앞선 thymeleaf에 model 형태로 전달하기 위해서, 

@Requestparam은 @PATHVARIABLE과 다르게, 

/{}형태로 전달되지 않아도 사용된다

@GetMapping("/example") public String exampleMethod(@RequestParam String paramName)

/example?paramName=어쩌구 이와 같이 대입되는것이 requestparam

 

@GetMapping("/example/{id}") public String exampleMethod(@PathVariable Long id)

이것이 pathvariable 

 

***긴급 ****

기존 사용했던 WebSecurityAdapter와 http에 관련된 모든 것들이 deprecated 되었다. 

기존 이를 활용하여 configuration으로 설정했던 부분들은, application properties혹은 이를 상속하지 않는 형태의 configuration으로 수정이 필요하다. 

 

이렇게

 

++ @Bean으로 void를 return 할 수 없다. 초기화를 위할땐 @PostConstruct를 사용하자 

 

[Springboot] spring security 기본 설정, SecurityConfig 설정, 회원가입 구현 - authorizeHttpRequests(), anyRequest() 설정 값 이해하기 — 오늘도 열심히 - BE (tistory.com)

 

[Springboot] spring security 기본 설정, SecurityConfig 설정, 회원가입 구현 - authorizeHttpRequests(), anyRequest()

Spring Security란 무엇인가? : 스프링 프레임워크 기반의 보안(인증과 권한 부여)을 다루기 위한 보안 프레임워크입니다. 스프링 시큐리티는 웹 애플리케이션, Restful 서비스, 메서드 수준의 보안까

kylo8.tistory.com

설정이 정말 잘 나와있는 블로그. 감사합니다.

'백엔드 > Spring Security' 카테고리의 다른 글

Spring Security Config  (0) 2024.01.11
Spring Security의 핵심 , SECURITY Filter  (1) 2024.01.11
Spring Security 구조와 내부  (0) 2024.01.11