[Spring Security] Authentication의 메커니즘

SeongWon Oh·2021년 11월 30일
0

Spring Framework

목록 보기
27/33
post-thumbnail

  • Authentication에는 인증된 결과 뿐만 아니라 인증을 하기 위한 정보, 인증을 받기 위한 정보가 하나의 객체에 들어가 있다.
  • AuthenticationProvider는 입력된 인증을 보고 허가된 인증을 내주는 방식으로 인증 허가를 판단하며 처리 가능한 Authentication에 대해서 알려주는 support메서드를 지원한다.
  • Authorities에는 '어디를 갈 수 있는지', '어떤 역할을 할 수 있는지'에 대한 권한 정보로 이를 구현(implement)한 GrantedAuthority에 관한 정보들이 저장되어있다.

    인가, 권한(Authorization)
    - 사용자가 어떤 일을 할 수 있는지 권한 설정하는 절차이다.
    - 특정 페이지/리소스에 접근할 수 있는지 권한을 판단한다.
    - Secured, PrePostAuthorize 어노테이션으로 쉽게 권한 체크를 할 수 있다.
    - 비즈니스 로직이 복잡한 경우 AOP를 이용해 권한 체크를 해야한다.

  • Authentication에 들어가 있는 Token들은 각각의 Filter들을 통해 발행된 Token들이다.
  • Credentials은 인증을 받기 위해 필요한 정보들로 대표적인 예시로는 비밀번호가 있다.
  • Principal은 인증된 결과에 대한 정보이다. credentials를 이용해 인증을 받고 그 결과이다!
  • Details은 위의 정보 외의 인증에 관여된 주변 정보들을 갖고 있다.

AuthenticationProvider

  • Authentication을 제공하는 것을 Authentication Provider라고 한다.
  • Authentication Provider는 credentials나 Principal이 있는 Authentication을 받아서 인증을 하고 인증된 결과를 다시 Authentication객체로 전달하는 역할을 한다.
  • 이때 Authentication Provider는 어떤 인증에 대해 승인을 해줄지 Authentication Manager에게 알려줘야 하기 때문에 support()라는 메서드를 제공합니다.
  • Authentication Manager은 인증 대상과 방식이 다양할 수 있어 여러개일 수 있습니다.

Reference

profile
블로그 이전했습니다. -> https://seongwon.dev/

0개의 댓글