본문 바로가기
카테고리 없음

Spring Cloud - 인증 서버 (OAuth2, Security)

by Moonsc 2021. 1. 30.
728x90

OAuth2 란 ?

토큰 기반 보안 프레임워크로 사용자가 애플리케이션 서비스를 이용할 때 계정을 갖고있지 않더라도 자신을 인증할 수 있도록 해주는 수단이다. OAuth2 의 주요 목적은 사용자 요청을 수행하기 위해 여러 서비스들을 호출할 때 이 요청을 처리할 서비스에 일일이 자격증명을 제시하지 않고도 사용자를 인증하는 것이다.

 

OAuth2 구성 요소

  • Resource Owner (자원 소유자)
    • User 사용자
    • Naver, Google 등 사이트(자원 서버)에 계정을 가진 사용자
    • 애플리케이션은 자원 소유자로 등록되었다면 자격 식별 가능한 애플리케이션 이름과 Secret key 건네준다.
  • Resource Server (자원 서버 *Rest API Server)
    • 자원을 호스팅하는 서버
    • OAuth 제공자
    • MSA Client Server
  • Authorization Server (인증 서버)
    • 사용자 동의를 받아서 권한을 부여하며, 관리하는 서버
  • Client (애플리케이션)
    • 리소스 서버에서 제공하는 자원을 사용하는 애플리케이션 (* Client는 보는 관점에 따라 기준이 달라진다.)

 

OAuth2 Grant Type

  • Password 
    • 사용자의 인증 정보를 알고 있으며, 신뢰 가능할 때 사용하는 타입
    • 인증 서버 (M-Talk : Auth-server) 를 구성할 때 사용할 방식이다.
  • Client credential (클라이언트 자격 증명)
  • Authorization code (인가 코드)
  • implicit (암시적) 

 

인증 서버 ?

  • 자격 증명
    • 스프링 기반 서비스의 보안을 위해 시큐리티와 OAuth2 Password 를 사용하여 본인 인증과 권한을 확인
  • 토큰 발행 및 검증
    • JWT 를 사용하여 더욱 견고한 보안 과정을 만든다 

 

 

댓글