[스프링으로하는 마이크로서비스 구축] API 접근 보안

뿌이·2022년 2월 25일
0

스프링 클라우드

목록 보기
23/32

스프링 시큐리티를 사용해 API를 보호하는 방법에 대해 다룬 단원입니다.

OAuth 2.0 인증코드의 사용 목적은 무엇인가?

Authorization Server: 권한을 부여(인증에 사용할 아이템을 제공주는)해주는 서버

  • 사용자는 Authorization Server로 ID, PW를 넘겨 Authorization Code를 발급 받을 수 있다.
  • Client는 Authorization Server로 Authorization Code을 넘겨 Token을 받급 받을 수 있다.
    (여기서 말하는 Client는 Authorization Server로 access token을 요청하는 웹 페이지를 말한다)

이렇게 두가지의 목적이 authorized code의 사용 목적이다.

OAuth 2.0 스코프의 사용 목적은 무엇인가?

scope란?

  • Resource Server에서 사전에 사용 가능하도록 미리 정의한 기능
  • 글 작성하기, ID알기, Email 알기, 캘린더 일정 입력하기 등등
  • 페이스북이든 구글이든 로그인 되었다면, 그 서비스 안에서 사용할 수 있는 모든 기능

정확히 말하면 아니지만, scope는 작게 만든다면 서비스 안에 있는 세부 역할들을 말할 수도 있고, 크게 만든다면 서비스 자체의 접근 범위를 뒀다고 생각하여 scope=서비스다 라고 생각할 수도 있다.
나의 블로그 글 scope 정의 부분 참조하시라.

scope 왜 사용하냐면
client가 Resource Owner 대신에 사용할 기능들을 정의해야 하기 때문이다

토큰이 JWT 토큰이라는 것의 의미는 무엇인가?

JSON Web Token
정보를 비밀리에 전달하거나, 인증을 할 때 사용

JWT Token 은 access token 을 만들기 위해 사용된다. 물론 여기에서 이야기 하는 access token 이란 단순하게 우리가 분류하는 자원에 접근하는 access token 만을 이야기 하는 것이 아니라, 권한/인증에 대한 token 을 말한다. JWT Token 은 그 자체만으로도 권한과 인증의 역할을 가질 수 있다.

JWT 토큰에 저장된 정보를 신뢰할 수 있는 이유는 무엇인가?

JWT Token 은 무결성이 보장된다.

공식 홈페이지에 메인에서 테스트를 해보면 예시로 보여주고 있는 JWT Token 의 secret 키를 하나라도 입력을 하게 되면 JWT Token 에서 Signature 영역의 글자가 바로 바뀌는 것을 알 수 있다. 이처럼 JWT Token 은 변조가 되었을 때, 바로 알아차릴 수가 있다.

출처

OAuth 2.0 매우 잘 정리되어있는 블로그

profile
기록이 쌓이면 지식이 된다.

2개의 댓글

comment-user-thumbnail
2022년 2월 25일

뿌이씨 오늘도 공부 열심히 하셨네요~ 항상 화이팅이에요~

1개의 답글