인증(Authenticatio)은 시스템의 단일 사용자의 특정 신원을 확인하고 이 사용자를 식별가능한 엔티티와 매핑하는 과정을 말한다.
즉 인증은 애플리케이션의 사용자가 해당 사용자가 주장하는 본인이 맞는지 확인하는 절차를 말한다.
- 크리덴셜 기반 인증: 사용자명과 비밀번호를 입력하여 로그인한다.
- 이중인증: 은행의 경우 물리적인 카드에 저장된 정보와 사용자가 입력한 비밀번호를 조합하여 특정 계좌
에 대한 접근이 가능한지 판단한다.
- 하드웨어 인증: 차에 시동을 걸때 키를 사용한다.
권한부여(Authorization)는 권한이 부여된 사용자들 특정 기능 또는 데이터에 접근을 허용하는 기능이다.
권한부여 작업은 보안이 적용된 시스템의 접근성을 나타내기 위해 다음 두가지 서로 다른 작업을 의미한다.
- 인증된 주체를 하나 이상의 권한에 매핑하는 일이다.
- 보호된 리소스에 대한 권한 체크다.
애플리케이션에서 권한부여 모델을 적용하려면,
권한, 기능및 데이터, 사용자에 맞게 애플리케이션의 기능과 데이터 영역을 구분하는 작업이 필요하다.
스프링 시큐리티 3을 사용하면,
- 시스템 사용자를 개별 사용자군으로 세분화한다.
- 사용자 역할에 따라 권한 부여 레벨을 부여한다.
- 사용자군에 사용자 역할을 부여한다.
- 애플리케이션 리소스에 대해 전역으로 인증규칙을 적용한다.
- 모든 애플리케이션 아키텍처 레벨에서 권한 부여 규칙을 적용한다.
- 사용자의 세션을 조작하거나 훔치려는 일반적인 공격을 차단한다.
스프링 시큐리티는 JAAS(Java Authentication and Authorization Service)나 Java EE Security도 물론 같은 인증 및 권한부여 기능들을 제공하지만 Top-to-Bottom 애플리케이션 보안 솔루션을 간편하고 합리적으로 구현할 수 있는 모든 기능들을 제공한다.
'오픈소스프레임워크 > Spring' 카테고리의 다른 글
[Spring] Interceptor 와 Filter의 차이점 (0) | 2014.04.20 |
---|---|
[시큐어코딩실습] 스프링 시큐리티 시작하기 LAB (0) | 2014.04.16 |
[Spring 3.0] 09. Junit 테스트 (0) | 2013.12.26 |
[Spring 3.0] 08. 스프링의 트랜잭션 관리 (0) | 2013.12.26 |
[Spring 3.0] 07. 데이터베이스 연동 (0) | 2013.12.26 |