Sunday, July 1, 2012

Spring Security

Spring Security 3

[작성중이다가 현재 멈춤 상태임. 볼 것 없슴]

이 문서가 도움이 될거라 기대되는 대상

스프링 프레임워크의 하위 프레임워크인 Spring Security 프레임워크를 이용해 애플리케이션에 보안(security)을 적용하는 방법을 살펴보려고 해.  이 글의 목적은 Spring Security의 일반적인 지식들과 함께 실제 애플리케이션에서의 적용 예를 수박 겉핥기 식으로 살펴보는 것이지만, 때에 따라서는 '왜?'를 설명하기 위해 살짝 안쪽으로 들어갈 수도 있어. 여하튼, 이 문서의 타겟은 Spring Security 입문자야. 자기가 입문자 이상이라고 생각하면 볼만한 게 없을 거라는 얘기지. :)


  • 이 문서는 Spring Security 3 입문자용 수박핥기식 살펴보기 문서임



제공되는 예제를 함께 작성하고 따라해보기 위한 준비


우선 예제를 (혹시나) 따라해보기 위해서는 내가 예제를 만든 환경을 말해줘야겠군.
Eclipse는 springsource.org에서 배포하는 버전(STS-2.9.2.RELEASE) 을 사용했고,
사용자 인증과 권한을 조회하기 위한 데이터베이스로는 Oracle 11g를 사용했고, 내가 참고한 책들은 Spring Recipe, Spring in action, Springsouce.org 의 Spring Security Document 등등 이야. ( 자세한 내용을 보려면 세 번째 문서들을 정독하면 좋겠지만, 간단한 예제들을 통해 알고 싶다면 맨 앞의 Spring Recipe이라는 책이 좋을 듯 해. 초판을 먼저 보고 두번째판은 관심 종목별로 보면 될 듯)

  • Eclipse 3.7
  • Oracle 11g




시작하기 전에, 기본적인 용어 설명


자, 본격적으로 시작하기에 앞서 (읽기가 귀찮더라도) 기본적인 정보들은 살짝 알고 넘어가자.
Spring Security는 원래 Acegi Security라는 이름으로 알려져 있었어.. 그러다가 스프링 포트폴리오 프로젝트에 포함된 이후에 Spring Security라는 이름을 갖게 된거지.

그리고, 몇 개의 용어들:


  • Principal :  번역하자면 (보안 검증의 대상이 되는 대상, 본인) 이 정도가 맞으려나? user, device, system 모두가 될 수 있지만, 대부분은 user가 되겠지.
  • Credential : Principal이 인증을 받기 위해서는 자신을 증명하는 정보를 제시해야 하잖아? 그 때 제공하는 정보를 Credential이라고 해. 로긴하기 위해 패스워드를 제출하잖아? 그게 바로 credendial이 되는 거지.
  • Authentication : 이렇게 제출된 자료와 시스템이 가지고 있던 자료를 비교해서 검증하는 과정을 인증(authentication)이라고 하고,
  • Authorization : 인증된 사용자에게 그게 걸맞는 권한(authority)을 제공하는 것을 권한부여(authorization)이라고 하지.

시스템은 그 인증받은 사람의 역할(role)에 맞는 권한(authority)을 부여하고, 사용자가 해당 리소스에 대한 접근이 허용되는지를 결정(acsess control decision)한 다음에, 리소스에 대한 접근을 제어(access control)하지. 접근하게 하거나 못하게 하거나...





이제 본격적으로 설명을 해볼까요?


No comments:

Post a Comment