웹 어플리케이션에서의 인증과 인가

진경천·2024년 12월 2일

spring의 보안 모듈로 웹 애플리케이션의 인증과 인가를 담당한다.

인증이란

사용자가 누구인지 확인하는 과정
Spring Security는 사용자가 제공한 자격을 확인하고 유효한 사용자인지 판단한다.

종류

  • 지식 기반 인증
  • 소유물 기반 인증
    • 문자 메시지, OTP 등
  • 생체 인증

인가란

인증된 사용자가 수행할 수 있는 작업의 범위를 결정하는 과정

역할 기반 접근 제어

RBAC(Role-Based Access Control)
사용자 역할에 기반하여 접근 권한을 부여한다.
단순화, 보안강화, 최소 권한 원칙 등의 이점을 제공한다.

Ex

public class SecurityConfig extends WebSecurityConfigurerAdapter {
	@OVerride
    protected void configure(HttpSecurity http) throws Exception {
    	http.authorizeRequests()
        		.andMatchers("/admin/**").hasRole("ADMIN")
                .andMatchers("/user/**").hasAnyRole("USER", "ADMIN")
                .andMatchers("/", "/home", "/public/**").permitAll()
                .anyRequest().authenticated();
        
    }
}

속성 기반 접근 제어

ABAC(Attribute-Based Access Control)
사용자, 리소스 환경 등 다양한 속성에 기반하여 접근 권한을 결정하는 더 유연하고 세분화된 접근 방식

정책이 속성과 그 속성들 간의 관계를 기반으로 정의된다.

사용 사례

  • AWS IMS
    • AWS-IAM을 사용해 사내 데이터 정책에 따라 보안성을 유지함
  • PostGreSQL RLS
    • 행 수준의 보안 정책 구현 질의어 존재
    • SQL의 권한에 따라 모든 행에 접근 가능함

행위 기반 접근 제어

PBAC(Policy-Based Access Control)
사용자의 행동 패턴이나 시스템의 상태를 기반으로 접근 권하을 부여

사용 사례

  • 사용자 행동 패턴을 분석하여 비정상적인 활동 감지 및 계정 보호
    • 로그인 시간, 위치, IP 주소 등의 정보로 식별

인증가 인가의 차이

항목인증인가
목적사용자의 신원을 확인사용자의 접근 권한을 설정
발생 시점리소스 접근 전에 발생리로스 접근을 시도할 때 발생
기술적 구현사용자명/비밀번호, 생체 인증, 인증 토큰 등역할기반 접근 제어, 정책 기반 접근 제어
식별 사항누구인지를 식별권한에 따라 작업 수행 가능 여부 식별
profile
어중이떠중이

0개의 댓글