반응형
Role(역할)이란?
Role(역할)은 여러 개의 Authority(권한)을 묶어둔 개념입니다.
즉, ROLE_ADMIN은 "READ_POST", "WRITE_POST", "DELETE_POST" 등의 권한을 가질 수 있습니다.
Role 예시
hasRole("ADMIN") // 관리자 역할
hasRole("USER") // 일반 사용자 역할
Spring Security에서는 Role을 내부적으로 "ROLE_" prefix를 붙여 관리
예를 들어 hasRole("ADMIN")은 내부적으로 "ROLE_ADMIN"을 의미
특징
- 사용자 그룹(역할) 단위로 권한을 부여 가능
- 하나의 Role이 여러 개의 Authority를 포함할 수 있음
- Role 기반 접근 제어가 더 단순하고 이해하기 쉬움
Authority(권한)란?
Authority(권한)은 사용자가 수행할 수 있는 개별적인 권한(행동 단위)을 의미합니다.
예를 들어, "게시글 읽기", "게시글 작성", "게시글 삭제" 등의 권한을 설정할 수 있습니다.
Authority 예시
hasAuthority("READ_POST") // 게시글 읽기 권한
hasAuthority("WRITE_POST") // 게시글 작성 권한
hasAuthority("DELETE_POST") // 게시글 삭제 권한
특징
- 더 세부적인 권한 관리가 가능 (세밀한 접근 제어 가능)
- 하나의 Role에 여러 개의 Authority를 포함할 수 있음
- 권한을 통해 특정 기능(행동)에 대한 접근을 제어
Role과 Authority 차이 정리
항목 | Role(역할) | Authority(권한) |
개념 | 여러 개의 권한을 묶은 역할 | 특정 기능(행동)에 대한 권한 |
사용 예시 | hasRole("ADMIN") | hasAuthority("READ_POST") |
접근 방식 | 사용자 그룹(역할) 단위 관리 | 세부적인 기능별 관리 |
유연성 | 역할별 권한 일괄 관리 가능 | 세밀한 제어 가능 |
Spring 내부 처리 | "ROLE_ADMIN" (Spring이 "ROLE_" prefix 추가) | "READ_POST" |
즉, Role은 큰 개념이고, Authority는 개별적인 세부 권한을 부여할 때 사용합니다.
보통 Role을 기본으로 사용하고, 세부적인 권한이 필요할 때 Authority를 추가하는 방식이 가장 좋습니다.
반응형
'Spring' 카테고리의 다른 글
Spring boot 3.x + Amazon SQS 적용기 (2) | 2023.05.30 |
---|---|
Spring Boot Admin 구축 및 보안 설정 (0) | 2023.01.02 |
SlackAppender를 이용한 Logback Slack 알림 받기 (0) | 2022.12.01 |
플러그인을 사용해 라이선스 보고서 생성하기 (0) | 2022.09.06 |
Spring Boot + AOP + Sentry 로깅 및 오류 모니터링 하기 (0) | 2022.07.19 |