Hansel
스프링 시큐리티 기초 용어 본문
현재 하는 프로젝트는 하다 단순 세션을 이용한 로그인을 지원하는데 이런 간단한 방식 보다는 스프링에서 지원해주는 더 좋은 기능을 최대한 활용해보고자 스프링 시큐리티를 적용하기로 했다.
어떤 기능을 사용하고 확장하기 위해서는 그 구조를 잘 알아야한다.
우선 스프링 시큐리티와 관련된 중요 단어를 먼저 정리하자.

Authentication = Prove who you are
일반적인 웹사이트는 단순히 보기만 하는 것은 로그인을 필요로 하지 않지만 글을 쓰거나 특정한 무언가를 하려면 로그인을 해야한다.
그 로그인을 통해 내가 누구인지 증명하는 과정이 Authentication 이라고 할 수 있다.
Authorization = Can this user do this? / Is he/she allowed to do this?
유저에 대한 권한과 허가라고 볼 수 있다.
어떤 상품을 판매하는 앱을 예로 든다면,
일반적인 회원은 상품을 보고 주문하고 그에 대한 리뷰를 남길 수 있다.
판매자는 물건을 올리고 물건을 수정하고 리뷰를 관리할 수 있다.
그렇다면 회원이 물건을 게시하고 수정할 권리를 가져도 될까?
당연히 안된다. 역할에 맞는 작업을 해야 원하는 애플리케이션의 모습이 제대로 그려지는 것이다.
Authorization은 역할에 맞는 허가 행위 정도로 생각하면 된다.
Principal = Currently logged in User
Authentication 작업을 거친 인증된 객체를 의미한다.
스프링 시큐리티에선 Authentication을 위해 유저가 전달하는 자격 정보를 Credential이라 칭하며
그 자격 정보를 검증하고 그에 맞는 유저 객체를 돌려주는데 이 객체는 Principal이라 칭한다.
Granted Authority
아까 예시로 들었던 판매 앱에서는 회원이 상품을 보고, 주문하고, 그에 대한 리뷰를 남길 수 있다고 하였고
판매자는 상품을 게시하고, 수정하고, 리뷰를 관리할 수 있다고 했다.
이처럼 유저의 권한에 따라 작업의 범위를 나눈 것을 Granted Authority 혹은 Authority라 칭한다.
Role = Group of authorities

Role은 유저가 가진 권한을 의미한다.
하지만 유저는 단순히 하나의 권한에 국한되지 않고 다양한 권한을 가질 수 있다.
예를 들어 판매자는 상품을 올리고 수정하는 일을 할 수 있지만 그와 동시에 상품을 보는 일도 가능하다.
여기까지가 스프링 시큐리티에 필요한 기초 용어이며 다음 게시글에서는 어떻게 작동하는지를 다루겠습니다.
'Spring > Security' 카테고리의 다른 글
| 스프링 시큐리티 / 코드로 보는 동작 (0) | 2022.04.25 |
|---|---|
| 스프링 시큐리티 / 작동 방식 (0) | 2022.04.25 |