Oauth 인증 기술.

Slides:



Advertisements
Similar presentations
임직원 APP 설치 가이드 경영전략처 정보기획 TF 팀. 임직원 App- 운영체제 구분  안드로이드 갤럭시, 갤럭시노트, 갤럭시 S4 [ 삼성전자 ] 옵티머스 [LG 전자 ] 베가 [ 팬텍 모토로이 [ 모토롤라 ]  ios 아이폰 [ 애플.
Advertisements

2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
OpenAPI 의 응용 인공지능 연구실. Artificial Intelligence Laboratory 목차 1.OpenAPI 2.Mashup 3.How can use OpenAPI 4.Various OpenAPIs 5. 실습 2.
1 넷스팟 MAC ID 설정 방법 ( 서울캠퍼스 기준 ) 각종 스마트폰의 WiFi 를 이용시 각종 스마트폰의 WiFi 를 이용시 MAC ID 설정을 하는 방법 입니다. 아이폰의 경우는 별도의 설정없이 바로 사용이 가능하오니, 사용이 어려울 경우, 고객센터로 문의하시면 됩니다.
스마트 KTC 사용자 매뉴얼 스마트폰용 모바일학생증 앱 설치 및 기본기능. 강원관광대 스마트 KTC 앱 설치 강원관광대학교 모바일학생증 앱 ( 이하 ‘ 스마트 KTC’ 로 명명 ) 은 안드로이드폰은 Google Play Store, 아이폰 은 App Store 에서 무료로.
베플리-T 2.8 설치 매뉴얼 1. 윈도우 XP에서 설치하기 p.2
KyungPook National University
OpenAPI의 응용 인공지능 연구실.
SQL Injection Member 최병희, 김상우, 조용준, 유창열.
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
SSL - VPN 사용자 가이드 - IT 지원실 네트워크 운영팀 -.
MySQL 및 Workbench 설치 데이터 베이스.
업체등록신청절차 목차 메인화면 메세지별 유형 2-1. 이미 가입된 공급업체
연구장비 공동활용 지원사업 연구장비예약 매뉴얼(참여기업)
메뉴얼 - 협력업체용 -.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
고종봉 스프링 시큐리티와 OAuth.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
KHS JDBC Programming 4 KHS
어플리케이션 설치방법 서울메트로 모바일 오피스 구축 사업.
6강. Servlet 본격적으로 살펴보기-II
26강. 포워딩(Forwarding) RequestDispatcher 클래스 HttpServletResponse 클래스
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
CHAP 12. 리소스와 보안.
공인인증서 신청 및 발급 제일 먼저 은행에 직접 방문하여 인터넷뱅킹 신청.
Mobile SHI 사용자 메뉴얼 중공업조선CI그룹 전진형( )
7가지 방법 PowerPoint에서 공동 작업하는 다른 사용자와 함께 편집 작업 중인 사용자 보기
UpToDate® Anywhere(UTDA)
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
이메일 자동 포워딩 방법 (Outlook/OWA)
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
< 현금영수증가맹점 가입절차 >
중증장애인직업재활 지원사업 업무시스템 사용자 매뉴얼 Version 1.0
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
Nessus 4 설치 정보보호응용 조용준.
8장 쿠키와 세션 한빛미디어(주).
맞춤형복지 사용자 시스템 매뉴얼 공무원연금공단 맞춤형복지부 문의사항:
회원가입 안내 AROPA EDU Class Mate!
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
CHAP 21. 전화, SMS, 주소록.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
지문인식 전자입찰 사용자메뉴얼(조달업체) Ver 2.0.
Open4U 공급업체 접속 방법 Open4U 시스템 신규 접속 방법 메인 화면 및 로그인 하기 초기 비밀번호 변경하기
화상대화 매뉴얼 한국지역정보개발원.
STS 에서 웹 서버 설치 방법.
교보문고 전자도서관 이용방법.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
1. 신규 연세메일(Gmail)에 로그인 합니다. ( yonsei. ac. kr )
안녕하세요!.
교육성향E 검사 방법 안내 1. 교육기관으로부터 전송받으신 교육성향E 검사링크를 클릭합니다.
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
공인인증로그인 매뉴얼.
JSP Programming with a Workbook
업체등록신청절차 목차 메인화면 메세지별 유형 2-1. 이미 가입된 공급업체
1. 포털 시스템 사이트 접속 ◎ 포털시스템 ( ) 사이트에 들어갑니다.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
공인인증로그인 매뉴얼.
UpToDate® Anywhere(UTDA)
전자수입인지 회원가입 및 구매절차 세무팀.
접근제어 솔루션 계정등록 및 클라이언트 설치.
CHAP 15. 데이터 스토리지.
구글 계정 생성가이드.
이 프레젠테이션은 PowerPoint의 새로운 기능에 대해 안내하며, 슬라이드 쇼에서 가장 잘 보입니다
8주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
Office 365 Student Advantage
공인인증로그인 매뉴얼.
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
Presentation transcript:

Oauth 인증 기술

Oauth Oauth는 OpenAPI로 개발된 표준 인증 방식으로, 각종 애플리케이션에서 사용자 인증을 거칠떄 활용될수 있습니다. Oauthrk 사용되기 전에는 인증방식의 표준이 없었기 떄문에 기존의 기본인증인 아이디와 비밀번호를 사용하였는데, 이는 보안상 취약한 구조입니다. 기본인증이 아닐 경우는 각 애플리케이션들이 각자의 개발한 회사의 방법대로 사용자를 확인하였는데 예를 들어 구글의 AuthSub, AOL의 OpenAuth, 야후의 BBAuth, 아마존 웹서비스 API 등이 있습니다. Oauth는 이렇게 제각각인 인증방식을 표준화한 인증방식입니다 Oauth를 이용하면 이 인증을 공유하는 애플리케이션끼리는 별도의 인증이 필요없으므로 여러 애플리케이션을 통합하여 사용하는것이 가능하게 됩니다.

Oauth 용어 서비스 프로바이더(Service Provider) – OPENAPI를 제공하는 서비스를 말합니다. 컨수머(Consumer) – API를 사용하여 개발된 애플리케이션 서비스를 말합니다. 사용자(users) – 서비스 프로바이더 혹은(그리고) 컨수머를 사용하는 이를 말합니다. 보호된 자원(protected Resources) – 서비스 프로바이더에 존재하는 데이터를 의미합니다. 컨수머 개발자(Consumer Developer) – 컨수머를 개발하는 개인 혹은 단체 컨수머 키(Consumer Key) – 서비스 프로바이더에게 컨수머 자신임을 인증하기 위한 키 컨수머 시크릿(Consumer Secret) – 컨수머의 컨수머 키 소유권한이 있는지 인증하기 위한 키 토큰(Tokens) – 컨수머에서 서비스 프로바이더에 있는 사용자의 보호된 자원에 접근하기 위해 사용되는 사용자의 인증정보.

Oauth 용어 리퀘스트 토큰(Request Token) : 컨수머가 사용자에게 접근권환을 획득하는 과정에서 사용하는 값이며, 이것은 차후 액세스 토큰으로 교환됩니다. 리퀘스트 토큰 시크릿(Request Token Secret) : 리퀘스트토큰이 사용자의 것임을 인증하기 위한 값입니다. 액세스 토큰(Access Token) : 컨수머가 사용자의 서비스 프로바이더를 통해서가 아닌 컨수머를 통해서 보호된 자원에 접근할 수 있는 권한을 받기 위한 값입니다. 액세스 토큰 시크릿(Access Token Secret) : 액세스토큰이 사용자의 것임을 인증하기 위한 값입니다.

흐름도 A; Consumer가 Request Token 요청 B; Service Provider가 Request Token 발급 C; Consumer는 사용자를 Service Provider로 이동, 사용자를 인증하고 토큰 발급을 확인함 D; Service Provider는 사용자를 Consumer로 이동 E; Consumer는 Access Token 요청 F; Service Provider는 Consumer의 신원과 Request Token 확인, Access Token 발급 G; Consumer는 Access Token으로 사용자 정보에 접근

다음 OAuth OAuth를 사용하기 위해서는 "Consumer Key" 와 "Consumer Secret"을 발급 받아야 합니다. 컨슈머 키와 컨슈머 시크릿은 인증에 자주 사용하는 내용임으로 util 클래스를 만들어 따로 관리 하고 다음과 같이 OauthUtil 클래스에 발급 받은 consumer key 와 consumer secret을 상수로 선언합니다. 아래의 URL들은 Oauth인증에 사용할 URL이기 때문에 이또한 Util class에 저장해 둡니다 .

다음 OAuth Oauth 인증 Oauth인증은 크게 다음과 같은 단계로 이루어 집니다. 1) 컨슈머 키와 컨슈머 시크릿을 통해서 리퀘스트 토큰을 얻습니다. 2) 획득한 리퀘스트 토큰을 통해 다음 로그인 창으로 이동하여 로그인을 합니다. 3) 로그인이 완료된 후에 컨슈머 등록시에 입력하였던 callback URL로 oauth_verifier를 가지고 이동합니다. 4) 이때 callback URL에서 oauth_verifier를 획득한후 Access Token URL로 요청하면 access token과 access token secret을 받아 옵니다. .

다음 OAuth -----------------------------------index.jsp---------------------------------- OAuthConsumer consumer = new DefaultOAuthConsumer(OauthUtil._CONSUMER_KEY, OauthUtil._CONSUMER_SECRET); OAuthProvider provider = new DefaultOAuthProvider (OauthUtil._REQUEST_TOKEN_URL, OauthUtil._ACCESS_TOKEN_URL, OauthUtil._AUTHORIZE_URL); //consumer 객체와 consumer 등록시 등록했던 callback URL을 입력 String oauthURL = provider.retrieveRequestToken (consumer, "http://localhost/OauthTutorial/callback.jsp"); //생성된 consumer객체와 provider객체를 세션에 저장한다. session.setAttribute("consumer", consumer); session.setAttribute("provider", provider); //Daum login 창으로 Redirect response.sendRedirect (oauthURL); .

다음 OAuth 로그인후 callback URL로 페이지가 이동하게 됩니다. Callback URL로 이동할때 AccessToken을 얻기 위해서 필요한 oauth_verifier를 parameter로 전달하게 되는데 이 parameter를 받아 AccessToken과 AccessTokenSecret을 생성해 주면 됩니다. 이렇게 발급 받은 AccessToken 과 AccessTokenSecret은 인증시(로그인) 매번 바뀌지 않고 계속 일정한 값을 유지합니다. 그렇기 때문에 한번 발급 받은 AccessToken과 AccessTokenSecret을 DB에 저장하거나 프로그램 상의 상수 값으로 고정시켜 로그인 과정없이 API를 사용할 수 있습니다. 간단한 컨수머 .

다음 OAuth . //parameter로 전달된 oauth_verifier를 저장 String oauthVerifier = request.getParameter("oauth_verifier"); OAuthConsumer consumer = (DefaultOAuthConsumer)session.getAttribute("consumer"); OAuthProvider provider = (DefaultOAuthProvider)session.getAttribute("provider"); if(oauthVerifier != null) { //파라미터로 전달된 oauth_verifier를 통해서 access Token을 생성합니다. provider.retrieveAccessToken(consumer, oauthVerifier.trim()); //getToken() method로 생성된 accessToken을 가져오고, //getTokenSecret() method로 accessTokenSecret을 가져와 session에 저장 session.setAttribute("accessToken", consumer.getToken()); session.setAttribute("accessTokenSecret", consumer.getTokenSecret()); } .