[hello world 오픈 세미나]oauth
TRANSCRIPT
발표자����������� ������������������ :����������� ������������������ 오창훈이메일����������� ������������������ :����������� ������������������ [email protected]����������� ������������������ me2DAY����������� ������������������ :����������� ������������������ me2day.net/lovedev
실전����������� ������������������ OAuth����������� ������������������ A����������� ������������������ to����������� ������������������ Z
발표자����������� ������������������ :����������� ������������������ 오창훈이메일����������� ������������������ :����������� ������������������ [email protected]����������� ������������������ me2DAY����������� ������������������ :����������� ������������������ me2day.net/lovedev
실전����������� ������������������ OAuth����������� ������������������ A����������� ������������������ to����������� ������������������ Z
Q&A
OAuth����������� ������������������ 무엇에����������� ������������������ 쓰는����������� ������������������ 물건인고?
OAuth는����������� ������������������ 인증을����������� ������������������ 위한����������� ������������������ 오픈����������� ������������������ 스탠더드����������� ������������������ 프로토콜로,����������� ������������������ 사용자가����������� ������������������ Facebook이나����������� ������������������ 트위터����������� ������������������ 같은����������� ������������������ 인터넷����������� ������������������ 서비스의����������� ������������������ 기능을����������� ������������������ 다른����������� ������������������ 애플리케이션(데스크톱,����������� ������������������ 웹,����������� ������������������ 모바일����������� ������������������ 등)에서도����������� ������������������ 사용할����������� ������������������ 수����������� ������������������ 있게����������� ������������������ 한����������� ������������������ 것이다.
OAuth의����������� ������������������ 탄생����������� ������������������ 이전에도����������� ������������������ 다른����������� ������������������ 애플리케이션에����������� ������������������ 사용자의����������� ������������������ 아이디와����������� ������������������ 암호가����������� ������������������ 노출되지����������� ������������������ 않도록����������� ������������������ 하면서����������� ������������������ API����������� ������������������ 접근����������� ������������������ 위임(API����������� ������������������ Access����������� ������������������ Delegation)이����������� ������������������ 가능한����������� ������������������ 여러����������� ������������������ 인증����������� ������������������ 방법이����������� ������������������ 있었다.����������� ������������������ Google과����������� ������������������ Yahoo!,����������� ������������������ AOL,����������� ������������������ Amazon����������� ������������������ 등에서는����������� ������������������ 각각의����������� ������������������ 인증����������� ������������������ 방식을����������� ������������������ 제작하여����������� ������������������ 사용했다.
OAuth����������� ������������������ 1.0이����������� ������������������ 나온����������� ������������������ 때는����������� ������������������ 2007년이며,����������� ������������������ 이후����������� ������������������ 보안����������� ������������������ 문제를����������� ������������������ 해결한����������� ������������������ 수정����������� ������������������ 버전인����������� ������������������ OAuth����������� ������������������ 1.0����������� ������������������ revision����������� ������������������ A����������� ������������������ 가����������� ������������������ 2008년에����������� ������������������ 나왔다.
OAuth의����������� ������������������ 시작은����������� ������������������ 2006년에����������� ������������������ 트위터의����������� ������������������ 개발자와����������� ������������������ 소셜����������� ������������������ 북마크����������� ������������������ 서비스인����������� ������������������ Gnolia의����������� ������������������ 개발자가����������� ������������������ 만나����������� ������������������ 인증����������� ������������������ 방식을����������� ������������������ 논의한����������� ������������������ 때부터였다.����������� ������������������ 두����������� ������������������ 회사의����������� ������������������ 개발자들은����������� ������������������ 그때까지����������� ������������������ API����������� ������������������ 접근����������� ������������������ 위임에����������� ������������������ 대한����������� ������������������ 표준안이����������� ������������������ 없다는����������� ������������������ 것을����������� ������������������ 알았다.����������� ������������������ 그래서����������� ������������������ 2007년����������� ������������������ 4월����������� ������������������ 인터넷에����������� ������������������ OAuth����������� ������������������ 논의체를����������� ������������������ 만든����������� ������������������ 뒤����������� ������������������ OAuth드래프트����������� ������������������ 제안서를����������� ������������������ 만들어����������� ������������������ 공유했다.����������� ������������������ 그����������� ������������������ 뒤에����������� ������������������ 이����������� ������������������ 활동을����������� ������������������ 지지하는����������� ������������������ 사람이����������� ������������������ 생기게����������� ������������������ 되었고,����������� ������������������ 2008년����������� ������������������ IETF����������� ������������������ 모임(73회,����������� ������������������ 미네소타에서����������� ������������������ 개최)에서����������� ������������������ OAuth가����������� ������������������ IETF����������� ������������������ 표준안으로����������� ������������������ 관리되야����������� ������������������ 하는����������� ������������������ 가에����������� ������������������ 대한����������� ������������������ 논의가����������� ������������������ 있었다.����������� ������������������ 그리고����������� ������������������ 2010년에����������� ������������������ OAuth����������� ������������������ 1.0����������� ������������������ 프로토콜����������� ������������������ 표준안이����������� ������������������ RFC5849로����������� ������������������ 발표되었다.
2007년에����������� ������������������ 나온����������� ������������������ OAuth����������� ������������������ 1.0은����������� ������������������ 비공식����������� ������������������ 논의체에����������� ������������������ 의해����������� ������������������ 최초로����������� ������������������ 만들어진����������� ������������������ 것이고,����������� ������������������ 2010년����������� ������������������ IETF����������� ������������������ OAuth����������� ������������������ 워킹그룹에����������� ������������������ 의해����������� ������������������ 이����������� ������������������ 프로토콜이����������� ������������������ IETF����������� ������������������ 표준����������� ������������������ 프로토콜로����������� ������������������ 발표된����������� ������������������ 것이다.
현재����������� ������������������ 나와����������� ������������������ 있는����������� ������������������ OAuth����������� ������������������ 2.0은����������� ������������������ 드래프트����������� ������������������ 단계에����������� ������������������ 있는����������� ������������������ 것으로,����������� ������������������ IETF����������� ������������������ OAuth����������� ������������������ 워킹그룹이����������� ������������������ 주축이����������� ������������������ 되어����������� ������������������ 만든����������� ������������������ 것이다.����������� ������������������ OAuth����������� ������������������ 2.0은����������� ������������������ OAuth����������� ������������������ 1.0과����������� ������������������ 호환되지����������� ������������������ 않지만,����������� ������������������ 인증����������� ������������������ 절차가����������� ������������������ 간략하다는����������� ������������������ 장점이����������� ������������������ 있다.
......����������� ������������������ 중략
OAuth란?
OAuth는����������� ������������������ 인증을����������� ������������������ 위한����������� ������������������ 오픈����������� ������������������ 스탠더드����������� ������������������ 프로토콜로,����������� ������������������ 사용자가����������� ������������������ Facebook이나����������� ������������������ 트위터����������� ������������������ 같은����������� ������������������ 인터넷����������� ������������������ 서비스의����������� ������������������ 기능을����������� ������������������ 다른����������� ������������������ 애플리케이션(데스크톱,����������� ������������������ 웹,����������� ������������������ 모바일����������� ������������������ 등)에서도����������� ������������������ 사용할����������� ������������������ 수����������� ������������������ 있게����������� ������������������ 한����������� ������������������ 것이다.
OAuth의����������� ������������������ 탄생����������� ������������������ 이전에도����������� ������������������ 다른����������� ������������������ 애플리케이션에����������� ������������������ 사용자의����������� ������������������ 아이디와����������� ������������������ 암호가����������� ������������������ 노출되지����������� ������������������ 않도록����������� ������������������ 하면서����������� ������������������ API����������� ������������������ 접근����������� ������������������ 위임(API����������� ������������������ Access����������� ������������������ Delegation)이����������� ������������������ 가능한����������� ������������������ 여러����������� ������������������ 인증����������� ������������������ 방법이����������� ������������������ 있었다.����������� ������������������ Google과����������� ������������������ Yahoo!,����������� ������������������ AOL,����������� ������������������ Amazon����������� ������������������ 등에서는����������� ������������������ 각각의����������� ������������������ 인증����������� ������������������ 방식을����������� ������������������ 제작하여����������� ������������������ 사용했다.
OAuth����������� ������������������ 1.0이����������� ������������������ 나온����������� ������������������ 때는����������� ������������������ 2007년이며,����������� ������������������ 이후����������� ������������������ 보안����������� ������������������ 문제를����������� ������������������ 해결한����������� ������������������ 수정����������� ������������������ 버전인����������� ������������������ OAuth����������� ������������������ 1.0����������� ������������������ revision����������� ������������������ A����������� ������������������ 가����������� ������������������ 2008년에����������� ������������������ 나왔다.
OAuth의����������� ������������������ 시작은����������� ������������������ 2006년에����������� ������������������ 트위터의����������� ������������������ 개발자와����������� ������������������ 소셜����������� ������������������ 북마크����������� ������������������ 서비스인����������� ������������������ Gnolia의����������� ������������������ 개발자가����������� ������������������ 만나����������� ������������������ 인증����������� ������������������ 방식을����������� ������������������ 논의한����������� ������������������ 때부터였다.����������� ������������������ 두����������� ������������������ 회사의����������� ������������������ 개발자들은����������� ������������������ 그때까지����������� ������������������ API����������� ������������������ 접근����������� ������������������ 위임에����������� ������������������ 대한����������� ������������������ 표준안이����������� ������������������ 없다는����������� ������������������ 것을����������� ������������������ 알았다.����������� ������������������ 그래서����������� ������������������ 2007년����������� ������������������ 4월����������� ������������������ 인터넷에����������� ������������������ OAuth����������� ������������������ 논의체를����������� ������������������ 만든����������� ������������������ 뒤����������� ������������������ OAuth드래프트����������� ������������������ 제안서를����������� ������������������ 만들어����������� ������������������ 공유했다.����������� ������������������ 그����������� ������������������ 뒤에����������� ������������������ 이����������� ������������������ 활동을����������� ������������������ 지지하는����������� ������������������ 사람이����������� ������������������ 생기게����������� ������������������ 되었고,����������� ������������������ 2008년����������� ������������������ IETF����������� ������������������ 모임(73회,����������� ������������������ 미네소타에서����������� ������������������ 개최)에서����������� ������������������ OAuth가����������� ������������������ IETF����������� ������������������ 표준안으로����������� ������������������ 관리되야����������� ������������������ 하는����������� ������������������ 가에����������� ������������������ 대한����������� ������������������ 논의가����������� ������������������ 있었다.����������� ������������������ 그리고����������� ������������������ 2010년에����������� ������������������ OAuth����������� ������������������ 1.0����������� ������������������ 프로토콜����������� ������������������ 표준안이����������� ������������������ RFC5849로����������� ������������������ 발표되었다.
2007년에����������� ������������������ 나온����������� ������������������ OAuth����������� ������������������ 1.0은����������� ������������������ 비공식����������� ������������������ 논의체에����������� ������������������ 의해����������� ������������������ 최초로����������� ������������������ 만들어진����������� ������������������ 것이고,����������� ������������������ 2010년����������� ������������������ IETF����������� ������������������ OAuth����������� ������������������ 워킹그룹에����������� ������������������ 의해����������� ������������������ 이����������� ������������������ 프로토콜이����������� ������������������ IETF����������� ������������������ 표준����������� ������������������ 프로토콜로����������� ������������������ 발표된����������� ������������������ 것이다.
현재����������� ������������������ 나와����������� ������������������ 있는����������� ������������������ OAuth����������� ������������������ 2.0은����������� ������������������ 드래프트����������� ������������������ 단계에����������� ������������������ 있는����������� ������������������ 것으로,����������� ������������������ IETF����������� ������������������ OAuth����������� ������������������ 워킹그룹이����������� ������������������ 주축이����������� ������������������ 되어����������� ������������������ 만든����������� ������������������ 것이다.����������� ������������������ OAuth����������� ������������������ 2.0은����������� ������������������ OAuth����������� ������������������ 1.0과����������� ������������������ 호환되지����������� ������������������ 않지만,����������� ������������������ 인증����������� ������������������ 절차가����������� ������������������ 간략하다는����������� ������������������ 장점이����������� ������������������ 있다.
......����������� ������������������ 중략
OAuth란?
이제����������� ������������������ 모바일����������� ������������������ 시대인만큼우리서비스도����������� ������������������ 오픈����������� ������������������ API를제공해����������� ������������������ 많은����������� ������������������ 곳에서����������� ������������������ 사용하게����������� ������������������ 하고����������� ������������������ 싶은데요
로그인이����������� ������������������ 필요한����������� ������������������ 서비스라그냥����������� ������������������ 제공이����������� ������������������ 어려워요..
외부에서����������� ������������������ 로그인을����������� ������������������ 할수있게����������� ������������������ 해주면되지����������� ������������������ 않을까요?
로그인을����������� ������������������ 제공한다는����������� ������������������ 것은����������� ������������������ 오픈����������� ������������������ API를����������� ������������������ 제공해주는����������� ������������������ 서비스뿐만����������� ������������������ 아니라����������� ������������������
서비스����������� ������������������ 내의����������� ������������������ 다른����������� ������������������ 기능도����������� ������������������ 접근할����������� ������������������ 수����������� ������������������ 있어����������� ������������������ 위험한����������� ������������������ 방식이라����������� ������������������ 큰일납니다.
다른서비스는����������� ������������������ 접근하지����������� ������������������ 못하게로그인을����������� ������������������ 제공해줄����������� ������������������ 수����������� ������������������ 없나요?
그렇다면����������� ������������������ OAuth를����������� ������������������ 말씀하시는것����������� ������������������ 같은데요?����������� ������������������ 그건����������� ������������������ 컨슈머키와보안키를����������� ������������������ 제공해����������� ������������������ 주고����������� ������������������ 통신하는...
OAuth가����������� ������������������ 뭔진����������� ������������������ 모르겠지만로그인����������� ������������������ 방식이����������� ������������������ 아니라는거죠?
로그인을����������� ������������������ 제공하는����������� ������������������ 것이����������� ������������������ 아니라외부����������� ������������������ 사용자에게����������� ������������������ 서비스의����������� ������������������ 접근����������� ������������������ 권한을����������� ������������������ 주는����������� ������������������ 방식이긴����������� ������������������ 한데..����������� ������������������ 로그인����������� ������������������ 과정은����������� ������������������ 거칩니다.
이런방식으로����������� ������������������ 외부에로그인을����������� ������������������ 제공해주고����������� ������������������ 사용자가����������� ������������������ 접근권한을결정하는����������� ������������������ 방식이에요
이런����������� ������������������ 십장생..����������� ������������������ 로그인을����������� ������������������ 하는데����������� ������������������ 로그인이����������� ������������������ 아니라니????나를����������� ������������������ 놀리는건가?
OAuth는����������� ������������������ 사용자가����������� ������������������ 3rd����������� ������������������ Party의����������� ������������������ 애플리케이션에게����������� ������������������ 특정����������� ������������������ 권한을����������� ������������������ 일임할����������� ������������������ 것인지����������� ������������������ 확인을����������� ������������������ 위해����������� ������������������
애플리케이션이����������� ������������������ 아닌����������� ������������������ API����������� ������������������ 제공서비스에����������� ������������������ 로그인을����������� ������������������ 합니다.
OAuth는����������� ������������������ 사용자가����������� ������������������ 3rd����������� ������������������ Party의����������� ������������������ 애플리케이션에게����������� ������������������ 특정����������� ������������������ 권한을����������� ������������������ 일임할����������� ������������������ 것인지����������� ������������������ 확인을����������� ������������������ 위해����������� ������������������
애플리케이션이����������� ������������������ 아닌����������� ������������������ API����������� ������������������ 제공서비스에����������� ������������������ 로그인을����������� ������������������ 합니다.
OAuth는����������� ������������������ 사용자가����������� ������������������ 3rd����������� ������������������ Party의����������� ������������������ 애플리케이션에게����������� ������������������ 특정����������� ������������������ 권한을����������� ������������������ 일임할����������� ������������������ 것인지����������� ������������������ 확인을����������� ������������������ 위해����������� ������������������
애플리케이션이����������� ������������������ 아닌����������� ������������������ API����������� ������������������ 제공서비스에����������� ������������������ 로그인을����������� ������������������ 합니다.
그리고����������� ������������������ OAuth가����������� ������������������ 자리잡기����������� ������������������ 전까지만����������� ������������������ 해도..����������� ������������������
facebookTwitter
Flickr me2DAY
SNSWriter����������� ������������������ Application
SNS����������� ������������������ Writer
작성완료
로그인����������� ������������������ 방식이����������� ������������������ 다����������� ������������������ 다르다..
OAuth는����������� ������������������ 너무����������� ������������������ 어려워..����������� ������������������ 우리는����������� ������������������ 더����������� ������������������ 쉽게����������� ������������������ 제공하자
SNS����������� ������������������ Writer는����������� ������������������ 트위터,����������� ������������������ 페이스북,����������� ������������������ 플리커,����������� ������������������ 미투데이에����������� ������������������ 게시글을����������� ������������������ 단����������� ������������������ 한번에����������� ������������������ 모두����������� ������������������ 게시하는����������� ������������������ SNS����������� ������������������ 통합����������� ������������������ 애플리케이션����������� ������������������ 입니다.����������� ������������������
그래서����������� ������������������ 외부����������� ������������������ 인증에����������� ������������������ 대한����������� ������������������ 표준이����������� ������������������ 필요했습니다.����������� ������������������
OAuth����������� ������������������ 개념����������� ������������������ 파헤치기!
content-from����������� ������������������ :����������� ������������������ http://oauth.net/core/diagram.png
Aㅏ...����������� ������������������ 컨슈머....����������� ������������������ 프로바이더.....����������� ������������������ 컨슈머..����������� ������������������
content-from����������� ������������������ :����������� ������������������ http://oauth.net/core/diagram.png
Aㅏ...����������� ������������������ 컨슈머....����������� ������������������ 프로바이더.....����������� ������������������ 컨슈머..����������� ������������������
방문객
소셜게임서비스팀에서����������� ������������������ 근무하는김철수님����������� ������������������ 만나러����������� ������������������ 왔습니다.����������� ������������������
방문객
소셜게임서비스팀에서����������� ������������������ 근무하는김철수님����������� ������������������ 만나러����������� ������������������ 왔습니다.����������� ������������������
아����������� ������������������ 그렇군요,����������� ������������������ 잠시만����������� ������������������ 기다리세요.김철수님께서����������� ������������������ 내려오실거에요.
안내데스크
리퀘스트토큰����������� ������������������ 요청
방문객
소셜게임서비스팀에서����������� ������������������ 근무하는김철수님����������� ������������������ 만나러����������� ������������������ 왔습니다.����������� ������������������
이����������� ������������������ 분은����������� ������������������ 오늘����������� ������������������ 저와����������� ������������������ 미팅하실����������� ������������������ 분이맞아요~����������� ������������������ 방문증����������� ������������������ 발급바랍니다.
방문객����������� ������������������ 확인자
아����������� ������������������ 그렇군요,����������� ������������������ 잠시만����������� ������������������ 기다리세요.김철수님께서����������� ������������������ 내려오실거에요.
안내데스크
리퀘스트토큰����������� ������������������ 요청
권한확인����������� ������������������ 요청
방문객
소셜게임서비스팀에서����������� ������������������ 근무하는김철수님����������� ������������������ 만나러����������� ������������������ 왔습니다.����������� ������������������
이����������� ������������������ 분은����������� ������������������ 오늘����������� ������������������ 저와����������� ������������������ 미팅하실����������� ������������������ 분이맞아요~����������� ������������������ 방문증����������� ������������������ 발급바랍니다.
방문객����������� ������������������ 확인자
아����������� ������������������ 그렇군요,����������� ������������������ 잠시만����������� ������������������ 기다리세요.김철수님께서����������� ������������������ 내려오실거에요.
안내데스크
방문증은����������� ������������������ 4층만����������� ������������������ 출입가능합니다.4층����������� ������������������ 출입부탁드립니다~
안내데스크
액세스토큰����������� ������������������ 발급
리퀘스트토큰����������� ������������������ 요청
권한확인����������� ������������������ 요청
액세스토큰����������� ������������������ 요청
방문객이����������� ������������������ 김철수����������� ������������������ 대리의����������� ������������������ 사원증을����������� ������������������ 탈취한다면?
OAuth����������� ������������������ 동작방식의����������� ������������������ 이해����������� ������������������
http://dev.naver.com����������� ������������������ >>����������� ������������������ OAuth����������� ������������������ >>����������� ������������������ 애플리케이션����������� ������������������ 등록
OAuth의����������� ������������������ 기본은����������� ������������������
HTTP����������� ������������������ Protocol
-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐[HTTP Method] [URL PATH] HTTP/1.1Host: [URL HOST]-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐-‐Message
Header
Body
GET /naver.oauth?mode=req_req_token HTTP/1.1Accept-‐Encoding: gzip, deflateConnection: Keep-‐AliveHost: nid.naver.com
http://nid.naver.com/naver.oauth?mode=req_req_token
example
POST /naver.oauth HTTP/1.1\r\nConnection: Keep-‐Alive\r\nHost: nid.naver.com\r\n\r\nmode=req_req_token\r\n\r\n\r\n
http://nid.naver.com/naver.oauth?mode=req_req_token
POST /naver.oauth HTTP/1.1\r\nContent-‐Type:multipart/form-‐data; boundary="a12ddggs"\r\nConnection: Keep-‐Alive\r\nHost: nid.naver.com\r\n\r\n-‐-‐a12ddggs\r\nContent-‐Disposition:form-‐data; name=mode\r\n\r\nreq_req_token\r\n\r\n\r\n
•일회성•한시성•보안성
OAuth����������� ������������������ 주요����������� ������������������ 파라미터의����������� ������������������ 특징����������� ������������������
oauth_nonce
oauth_timestamp
oauth_signature
이����������� ������������������ 외에����������� ������������������ oauth_signature_method,����������� ������������������ oauth_version,����������� ������������������ oauth_consumer_key����������� ������������������ 등이����������� ������������������ 있음.
OAuth����������� ������������������ 스펙����������� ������������������ 구현해보기
oauth_callback 권확����������� ������������������ 확인����������� ������������������ 후����������� ������������������ 이동할����������� ������������������ URL(또는����������� ������������������ oob)
oauth_consumer_key API����������� ������������������ 사용자����������� ������������������ 키
oauth_nonce 임의의����������� ������������������ 문자열����������� ������������������ (동일����������� ������������������ 시간대����������� ������������������ 요청에����������� ������������������ 대해����������� ������������������ 유일한����������� ������������������ 문자열이어야����������� ������������������ 함)
oauth_signature URL정보를����������� ������������������ 조합하여����������� ������������������ 비밀키로����������� ������������������ 암호화한����������� ������������������ 문자열
oauth_signature_method oauth_signature의����������� ������������������ 암호화����������� ������������������ 방식
oauth_timestamp 1970이후를����������� ������������������ 초단위로����������� ������������������ 환산한����������� ������������������ 값
oauth_version OAuth의����������� ������������������ 버전����������� ������������������ (1.0a까지는����������� ������������������ 1.0으로����������� ������������������ 명시)
Request����������� ������������������ Token요청을����������� ������������������ 위해����������� ������������������ 필요한����������� ������������������ 매개변수
oauth_token request����������� ������������������ token
oauth_token_secret consumer����������� ������������������ secret����������� ������������������ key와����������� ������������������ 조합하는����������� ������������������ 추가����������� ������������������ 비밀키
Request����������� ������������������ Token요청����������� ������������������ 완료����������� ������������������ 시����������� ������������������ 결과����������� ������������������ 값
oauth_signature
https://nid.naver.com/naver.oauth?mode=req_req_token&oauth_callback=http://example.com/oauth_result.do&oauth_consumer_key=WEhGuJZWUasHg&oauth_nonce=zSs4RFI66oauth_signature_method=HMAC-‐SHA1&oauth_timestamp=1330442419&oauth_version=1.0
oauth_signature를����������� ������������������ 제외한����������� ������������������ 나머지����������� ������������������ URL
BASE64_ENCODE(HMAC-SHA1(GET����������� ������������������ +����������� ������������������ encode(https://nid.naver.com/naver.oauth)����������� ������������������ +mode=encode(req_req_token)&oauth_callback=encode(http://example.com/oauth_result.do)&oauth_nonce=encode(zSs4RFI66)&oauth_signature_method=encode(HMAC-SHA1)&oauth_timestamp=1330442419&oauth_version=1.0
,����������� ������������������ SECRET_KEY))
consumer����������� ������������������ secret����������� ������������������ key����������� ������������������ +����������� ������������������ “&”����������� ������������������ +����������� ������������������ oauth_token_secret
GET[HTTP����������� ������������������ METHOD]
GET[HTTP����������� ������������������ METHOD]+����������� ������������������ URL[URL����������� ������������������ PATH]
GET[HTTP����������� ������������������ METHOD]+����������� ������������������ &����������� ������������������ +URL[URL����������� ������������������ PATH]����������� ������������������
+����������� ������������������ &����������� ������������������ +����������� ������������������ PARAMETER[key=value]
surprise����������� ������������������ QUIZ!
https://nid.naver.com/naver.oauth?mode=req_req_token&oauth_callback=http://example.com/oauth_result.do&oauth_consumer_key=WEhGuJZWUasHg&oauth_nonce=zSs4RFI66oauth_signature_method=HMAC-‐SHA1&oauth_timestamp=1330442419&oauth_version=1.0
surprise����������� ������������������ QUIZ!
HMAC-SHA1(
)
GET[HTTP����������� ������������������ METHOD]+����������� ������������������ &����������� ������������������ +����������� ������������������ URL[URL����������� ������������������ PATH]����������� ������������������ +����������� ������������������ &����������� ������������������ +����������� ������������������ PARAMETER[key=value]
GET[HTTP����������� ������������������ METHOD]+����������� ������������������ &����������� ������������������ +����������� ������������������ URL[URL����������� ������������������ PATH]����������� ������������������ +����������� ������������������ &����������� ������������������ +����������� ������������������ PARAMETER[key=value]
HMAC-SHA1(
)
BASE64.encode(
)
https://nid.naver.com/naver.oauth?mode=auth_req_token&oauth_token=wpsCb0Mcpf9dDDC2
권한확인����������� ������������������ 페이지����������� ������������������ 호출하기����������� ������������������
oauth_token����������� ������������������ 매개변수만����������� ������������������ 정의하면����������� ������������������ 끝!
oauth_token 액세스����������� ������������������ 토큰����������� ������������������ 호출용����������� ������������������ 권한확인이����������� ������������������ 완료된����������� ������������������ 토큰
oauth_varifier access����������� ������������������ token����������� ������������������ 호출����������� ������������������ 시����������� ������������������ 사용될����������� ������������������ 매개변수
권한요청����������� ������������������ 완료����������� ������������������ 시����������� ������������������ callback_url로����������� ������������������ 전달되는����������� ������������������ 결과����������� ������������������ 값
oauth_verifier 권한����������� ������������������ 확인����������� ������������������ 후����������� ������������������ 발급받은����������� ������������������ oauth_verifier����������� ������������������ 값
oauth_consumer_key API����������� ������������������ 사용자����������� ������������������ 키
oauth_nonce 임의의����������� ������������������ 문자열����������� ������������������ (동일����������� ������������������ 시간대����������� ������������������ 요청에����������� ������������������ 대해����������� ������������������ 유일한����������� ������������������ 문자열이어야����������� ������������������ 함)
oauth_signature URL정보를����������� ������������������ 조합하여����������� ������������������ 비밀키로����������� ������������������ 암호화한����������� ������������������ 문자열
oauth_signature_method oauth_signature의����������� ������������������ 암호화����������� ������������������ 방식
oauth_timestamp 1970이후를����������� ������������������ 초단위로����������� ������������������ 환산한����������� ������������������ 값
oauth_version OAuth의����������� ������������������ 버전����������� ������������������ (1.0a까지는����������� ������������������ 1.0으로����������� ������������������ 명시)
oauth_token 권한����������� ������������������ 확인����������� ������������������ 후����������� ������������������ 발급받은����������� ������������������ oauth_token����������� ������������������ 값
Access����������� ������������������ Token요청을����������� ������������������ 위해����������� ������������������ 필요한����������� ������������������ 매개변수
oauth_token API����������� ������������������ 접근이����������� ������������������ 가능한����������� ������������������ 토큰
oauth_token_secret consumer����������� ������������������ secret����������� ������������������ key와����������� ������������������ 조합하는����������� ������������������ 추가����������� ������������������ 비밀키
Access����������� ������������������ Token요청����������� ������������������ 완료����������� ������������������ 시����������� ������������������ 결과����������� ������������������ 값
OAuth����������� ������������������ 를����������� ������������������ 이용해����������� ������������������ API를����������� ������������������ 호출해����������� ������������������ 보자!
POST /naver.oauth HTTP/1.1\r\nContent-‐Type:multipart/form-‐data; boundary="a12ddggs"\r\nConnection: Keep-‐Alive\r\nAuthorization: OAuth oauth_consumer_key="11sdfj123bAsd", oauth...Host: nid.naver.com\r\n\r\n-‐-‐a12ddggs\r\nContent-‐Disposition:form-‐data; name=mode\r\n\r\nreq_req_token\r\n\r\n\r\n
oauth_consumer_key API����������� ������������������ 사용자����������� ������������������ 키
oauth_nonce 임의의����������� ������������������ 문자열����������� ������������������ (동일����������� ������������������ 시간대����������� ������������������ 요청에����������� ������������������ 대해����������� ������������������ 유일한����������� ������������������ 문자열이어야����������� ������������������ 함)
oauth_signature URL정보를����������� ������������������ 조합하여����������� ������������������ 비밀키로����������� ������������������ 암호화한����������� ������������������ 문자열
oauth_signature_method oauth_signature의����������� ������������������ 암호화����������� ������������������ 방식
oauth_timestamp 1970이후를����������� ������������������ 초단위로����������� ������������������ 환산한����������� ������������������ 값
oauth_version OAuth의����������� ������������������ 버전����������� ������������������ (1.0a까지는����������� ������������������ 1.0으로����������� ������������������ 명시)
oauth_token 권한����������� ������������������ 확인����������� ������������������ 후����������� ������������������ 발급받은����������� ������������������ oauth_token����������� ������������������ 값
서비스����������� ������������������ 매개변수����������� ������������������ 정의
네이버의����������� ������������������ OAuth����������� ������������������ 기반����������� ������������������ API����������� ������������������ DEMO
총정리
발표자����������� ������������������ :����������� ������������������ 오창훈이메일����������� ������������������ :����������� ������������������ [email protected]����������� ������������������ me2DAY����������� ������������������ :����������� ������������������ me2day.net/lovedev