201030_TIL

oh_ji_0·2020년 10월 30일
1

TIL

목록 보기
53/61

TODAY I LEARNED

  • 토큰 기반 인증 방식 스프린트 적용(jwt module)
  • OAuth 2.0 이용 소셜 로그인 실습
  • OAuth 인증 관련 블로깅 (하단 내용)

@@ 오늘은 토큰 기반 인증으로 이전 스프린트를 리팩토링 하는 것을 페어시간에 페어분과 해보았고, 오후엔 소셜 로그인을 진행해보았다. 대체 쿠키를 어떤식으로 넣어야 하는지, jwt는 어떻게 어떤 메소드를 이용하여 어떤식으로 검증을 받아야하는 것인지 하나도 모르겠었는데 페어분과 진행하다보니 (그리고 헬데에서 좋은 참고 블로그 글을 하나 발견해서) 잘 마무리 지을 수 있었다.

또한 소셜 로그인을 바로 진행했는데, redirect 부분과 콜백 URL등 어떤 것에 어떤것을 대입하고 연결해줘야 하는지 몰라서 많이 헷갈렸다. 그래도 스프린트 구현 코드를 보니, 서버에서 어떤 것을 인증 받고 또 받은 것을 이용하여 어떻게 브라우저에 던져줘야 하는지가 눈에 들어왔고 역시 이것 역시 블로그 글을 참고하여 진행해보았다. 도움 받은 해당 블로그글은 맨 아래 하단에 참고 글에 적겠다.

OAuth 인증

  • 인증을 위한 오픈 스탠더드 프로토콜
  • 사용자가 인터넷 서비스 기능을 다른 애플리케이션에서도 사용할 수 있게 한 것
  • OAuth 1.0은 2007년, OAuth 1.0 revision A 가 2008년 나옴
  • API접근 위임에 대한 표준안을 만들기 위함
  • 2010 IETF 표준 프로토콜로 발표됨
  • 'Auth'는 'Authentication'(인증)뿐만 아니라 'Authorization'(허가) 또한 포함
  • OAuth의 주요 목적은 허가( Authorization ) 이다.

로그인과 OAuth의 차이

로그인 - 사원증, OAuth - 방문증 과 같인 접근 권한에 대한 차이가 존재 한다.

출처 : OAuth와 춤을

그림 3 OAuth 1.0a 인증 과정(원본 출처: http://oauth.net/core/diagram.png)

OAuth 2.0 API

  • OAuth 1.0과 호환되지 않음.

  • 인증 절차가 간략하다는 장점이 있다.

  • 1.0의 단점 보완(웹 외의 애플리케이션 사용 곤란, 절차 복잡)

  • 암호화가 필요 없으며 HMAC을 사용하지 않음

  • Signature 단순화 정렬과 URL인코딩이 필요 없다.

  • Access Token 갱신 OAuth 1.0에서 Access Token을 받으면 Access Token을 계속 사용할 수 있었다. 트위터의 경우에는 Access Token을 만료시키지 않는다. OAuth 2.0에서는 보안 강화를 위해 Access Token의 Life-time을 지정할 수 있도록 했다.

  • 인증 절차

    계정 생성, client_id(or client_secret) 정보를 제공 받아서 서비스와 상호 작용시 사용 한다.(토큰처럼)

    응용 프로그램이 사용할 하나 이상의 리디렉션 URL을 등록해야 한다.

    이들을 등록해서 사용자 데이터를 훔치는 악성 애플리케이션을 방지한다

소셜 로그인 스프린트 진행, OAuth 2.0인증 다이어그램

참고 문서:

profile
기본에 충실하고 싶습니다. #Front-end-developer

0개의 댓글