🎈 OAuth
다양한 플랫폼 환경에서 권한 부여를 위한 표준 프로토콜
OAuth를 사용하면 로그인 등의 인증 작업을 카카오, 네이버의 시스템을 일부 호출해 인증 결과값을 리턴받는 것으로 해결 할 수 있다.
기존에는 인증방식의 표준이 없었기 때문에 기본인증인 아이디와 비밀번호 방식을 사용했는데 비밀번호의 탈취, 관리의 어려움, 폐기 문제 등 다양한 보안적 취약점이 우려되었다.
OAuth 방식은 사용자에 대한 인증 및 보안 정보를 타 플랫폼에 위임하는 방식으로 이러한 관리 문제를 중앙화시키는 방식이라고 생각한다.
🎓 인증 방식
OAuth인증은 소비자와 서비스 제공자 사이에서 일어나는데 이 인증 과정은 다음과 같다.
- 소비자가 서비스제공자에게 요청토큰을 요청
- 서비스제공자가 소비자에게 요청토큰을 발급
- 소비자가 사용자를 서비스제공자로 이동 후 사용자 인증 진행
- 서비스제공자가 사용자를 소비자로 이동
- 소비자가 접근토큰을 요청
- 서비스제공자가 접근토큰을 발급
- 발급된 접근토큰을 이용하여 소비자에서 사용자 정보에 접근
🥢 OAuth 1.0 vs OAuth 2.0
OAuth 2.0 방식으로 변경되며 생긴 차이점들
- 비 브라우저 기반 애플리케이션에 대한 더 나은 지원
- 클라이언트 애플리케이션에 암호화가 필요없어짐
- 더 간단해진 signatures(특별한 구문 분석, 정렬 또는 인코딩 불필요)
- Access Token의 생명주기를 단기로 변경
React와 Spring을 연동해 사용하기 위해서 아래의 포스팅을 참고할 예정이다. https://data-jj.tistory.com/53