OAuth2 System with using Spring Boot

2016. 3. 1. 15:55Java/Spring Boot

OAuth2를 살펴보게 된것에는 우선 사내에서 개발중인 REST API 때문이였다.
다른 앱과의 정보를 전달하는데 사용을 하려고 쓰다보니,
특정 앱이 아닌 다른 분들이 사용을 할지도 모른다라는 보안적인 측면에서 
어느 정도는 막아 놔야 겠다고 생각이 들어서 우선 그리 하였다.

이걸 생각하기 이전에 앞서선 우선 간단하게 Session을 생각했다.
Spring Session을 활용하여 Redis 를 가지고 세션 서버를 두고, 세션 서버 활용을 하면 되겠다고 
개발을 진행했다.

다시말하자면, 우리 API를 사용하는 기기가 세션의 권한을 취득하는 것이다.
세션 권한이 있는 기기들만, 드디어 API 접근이 가능한 것이다.

뭐 그리하여 개발을 하던중에, 인증은 어찌 통과를 하였다고 하더라도,
세션 타임아웃 만료가 되면, 다시 재로그인을 해야 하는 상황이 발생....
그럴때 마다 다시 권한 요청을 하여 다시 세션을 유지하는 형태로 개발을 하면 될것이라 생각했다.

쩝.. 그러던 중에 아래 OAuth2 에 대한 글을 읽고, 이 방법으로 해보는 것도 나쁘진 않을 것 같아서,
자세히 읽어보고, 따라서 진행 해봤다.. 오홋 원리는 똑같으면서 이것도 편한데..
암튼 그렇고, 자세한 내용은 아래 글을 잘 읽어보시면 좋을것 같다. 

참고로 OAuth2이라 할까에 대한 궁금증은...http://d2.naver.com/helloworld/24942 에서 읽어보면 도니다.
OAuth1.0은 웹 어플리케이션이 아닌 어플리케이션에서 사용하기가 곤란하다.
절차가 복잡하여 OAuth 구현 라이브러리를 제작하기 어렵고, 이런저런 복잡한 절차 때문에 Service Provider에게도 연산 부담이 발생한다.
따라 이런 단점을 개선하였다.... blablabla..


https://brunch.co.kr/@sbcoba/1 : 스프링 부트와 OAuth2 
https://brunch.co.kr/@sbcoba/2 : 본격적인 개발 전에 
https://brunch.co.kr/@sbcoba/3 : API 서버 만들기 
https://brunch.co.kr/@sbcoba/4 : 간단한 OAuth2 서버 만들기 
https://brunch.co.kr/@sbcoba/5 : OAuth2 서버를 커스터마이징
https://brunch.co.kr/@sbcoba/6 : API 서버와 OAuth2 서버를 분리

계속 업데이트 되고 있는 중이다.