몇십년만에 과학은 엄청나게 발전했다.
종이로 정보를 보관할때보다 컴퓨터를 통해 데이터를 보관하고 사용하는 방법이 더 간편하고 빨라지게 되었다.
다만, 장점만 있는 것은 아니다.
데이터를 쉽게 가져올 수 있는 만큼 쉽게 빼오기도 하는데 이는 한 서비스의 수명을 결정하기도 한다.
아무에게나 핵심 정보를 공개하지않고 뺏기지않기위해 디지털이 성장함에 따라
보안
이라는 영역이 중요해지고 있다.
지금 공부하고있는 MSA 에서는 각각의 서비스가 독립적으로 배포되고 통신하는 과정을 거친다.
그렇기 때문에 보안 또한 굉장히 중요하다.
보안과 관련된 프로토콜 중 하나로 OAuth2가 있다.
개발을 하면서 꽤 많이 마주쳐서 언제 꼭 한번 공부해보고 싶었다.
OAuth2는
토큰
기반의인증 및 권한 부여
프로토콜이다.
인증은 이 사용자가 어떤 사람인지를 확인하는 과정, 인가는 그 사용자가 해당 데이터에 접근할 수 있는 사람인지를 확인하는 과정이다.
즉, 클라이언트 어플리케이션이 사용자의 권한을 얻어 다른곳에서 사용자의 정보를 사용할 수 있도록 해준다.
예를 들어 휴대폰 번호만 저장해도 카카오톡에 친구추천으로 뜨는 것 처럼 !
JWT는 JSON Web Token의 약자로 OAuth2와 비슷하게 토큰
기반으로 사용자 정보를 전달한다.
또한 JWT는 헤더, 페이로드, 시그니처로 구성되어있다.
JWT에는 토큰 자체에 모든 정보
를 포함하고 있기 때문에 별도의 상태 저장이 필요하지 않다.
짧고 간결한 문자열로 이루어져 있어 URL, 헤더 등에 쉽게 사용할 수 있다.
무결성과 인증을 보장한다. (암호화 방식 그 자체로 사용하기 보다는 데이터가 전송 중 변경되었는지를 판단하는데에 사용된다.)