● 인증과 인가/권한
페이지 정보
본문
스프링 시큐리티 전체를 관통하는 가장 중요한 개념은 인증(Authentication)과 인가(Authorization)라는 개념이다.
⊙ 인증 : '스스로를 증명하다'라는 뜻이며 흔히 말하는 로그인 개념이다.
인증을 위해서 사용자는 자신이 알고 있는 자신의 정보를 제공하는데 아이디와 패스워드가 이에 속한다.
⊙ 인가 : '허가나 권한'이라는 개념과 같다.
인증이 된 사용자라고 해도 이에 접근할 수 있는 권한이 있는지를 확인하는 과정을 의미한다.
웹 애플리케이션에서 스프링 시큐리티를 적용하면 로그인을 통해서 '인증'을 수행하고 컨트롤러의 경로에 시큐리티 설정으로 특정한 권한이 있는 사용자들만 접근할 수 있도록 설정하게 된다.
인증과 username
스프링 시큐리티에서 로그인에 해당하는 인증 단계는 과거의 웹과 다르게 동작하는 부분이 있으므로 주의해야 한다.
인증 처리는 다음과 같은 단계를 거쳐 동작한다.
1. 사용자의 아이디(username)만으로 사용자의 정보를 로딩(흔히 아이디라고 하는 존재는 스프링 시큐리티에서는 username이라는 용어를 쓰므로 주의하자.
2. 로딩된 사용자의 정보를 이용해서 패스워드를 검증
스프링 시큐리티의 동작 방식은 웹에서 로그인 처리로 아이디와 패스워드를 한번에 조회하는 방식과 달리 아이디(username)만을 이용해서 사용자 정보를 로딩하고 나중에 패스워드를 검증하는 방식이다.
인증 처리는 '인증 제공자(Authentication Provider)라는 존재를 이용해서 처리되는데 인증 제공자와 그 이하의 흐름은 일반적으로 커스터마이징해야 하는 경우가 거의 없으므로 실제 인증 처리를 담당하는 객체만을 커스터마이징하는 경우가 대부분이다.
- 이전글== 공란 == 24.07.18
- 다음글● application.properties ( 로그 레벨 조정 ) 24.07.05
댓글목록
등록된 댓글이 없습니다.