OAuth 10

REST JWT(JSON Web Token)소개 - #2 node.js에서 JWT 사용하기

REST JWT(JSON Web Token)소개 - #2 node.js에서 JWT 사용하기조대협 (http://bcho.tistory.com) Jwt-simple을 이용한 node.js에서 JWT 토큰 사용하기앞에서 http://bcho.tistory.com/999 JWT 토큰에 대한 개념에 대해서 간략하게 알아보았다. 그러면,실제로 JWT 토큰을 어떻게 생성하고 파싱하는 지를 node.js를 샘플을 통해서 알아보도록 하자.시작부터 말하자면. 너무 쉽다. 쉬워도 너무..!!node.js에는 여러가지 JWT 라이브러리가 있지만 그중에서 가장 사용이 편리한 라이브러리는 jwt-simple 이라는 라이브러리가 있다. 먼저 npm을 이용해서 해당 패키지를 설치한 후에 다음과 같은 코드를 작성한다.var jwt ..

REST JWT(JSON Web Token)소개 - #1 개념 소개

JWT(JSON Web Token)을 이용한 API 인증 - #1 개념 소개조대협 (http://bcho.tistory.com) REST API에 대한 보안과 인증이 화두가 되면서 많이 언급되는 것이 OAuth인데, 근래에 들어서 화두가 되고 있는 것이 JWT (JSON Web Token)이라는 표준이다. Claim기반 토큰의 개념 OAuth에 의해서 발급되는 access_token은 random string으로 토큰 자체에는 특별한 정보를 가지고 있지 않는 일반적인 스트링 형태 이다. 아래는 페이스북에서 발급된 access_token의 형태로 일반적인 문자열 형태임을 확인할 수 있다. API나 서비스를 제공하는 서버 입장에서 그 access_token을 통해서 사용자에 연관된 권한(예를 들어 scope..

REST API의 이해와 설계-#3 API 보안

REST API의 이해와 설계 #3 API 보안 REST API 보안 API 보안에 대해서는 백번,천번을 강조해도 과함이 없다. 근래에 대부분의 서비스 시스템들은 API를 기반으로 통신을 한다.앱과 서버간의 통신 또는 자바스크립트 웹 클라이언트 와 서버간의 통신등 대부분의 통신이 이 API들을 이용해서 이루어지기 때문에, 한번 보안이 뚫려 버리면 개인 정보가 탈취되는 것 뿐만 아니라 많은 큰 문제를 야기할 수 있다. REST API 보안 관점API는 보안 포인트에 따라서 여러가지 보안 관점이 존재하는데, 크게 아래와 같이 5가지 정도로 볼 수 있다. 인증 (Authentication)인증은 누가 서비스를 사용하는지를 확인하는 절차이다.쉽게 생각하면 웹 사이트에 사용자 아이디와 비밀 번호를 넣어서, 사용자..

OAuth 2.0 노트

OAuth 용어 정리 Resource Owner (사용자) Authorization Server (인증서버 Resource Server (REST API) OAuth 2.0 grant flow Authorization code grant flow 가장 많이 권장되고, 사용자와 앱을 둘다 인증함. 앱 인증을 위해서 call back URL(앱의)를 등록해서 call back을 통해서 앱을 인증함 Implicit grant flow 자바스크립트 애플리케이션에서 많이 사용됨. 스크립트 단에서는 credential 등이 노출 될 수 있으니, 주로 Read only 용도로 많이 사용함. accessToken이 노출될것을 전제로 함. 모바일 애플리케이션도 많이 사용하는걸로 나오네?? Ÿ Used in public ..

빠르게 훝어 보는 node.js - #16 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 2/2)

빠르게 훝어보는 node.js#16 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 2/2)조대협 (http://bcho.tistory.com) node.js에서 페이스북 로그인하기앞에서(http://bcho.tistory.com/913) 설명한 Facebook 로그인 시나리오를 기반으로 하여 node.js와 passport-facebook 모듈을 이용해서, 간단한 로그인 서비스를 만들어보자.시나리오만들고자 하는 시나리오는 다음과 같다. /login 페이지에서 페이스북 로그인 버튼이 출력된다. 페이스북 로그인 버튼을 누르면 /auth/facebook 페이지로 이동한다./auth/facebook 페이지에서는 페이스북에 로그인을 하기 위한 OAuth 요청을 passport-fac..

빠르게 훝어 보는 node.js - #15 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 1/2)

빠르게 훝어보는 node.js#15 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 1/2)조대협 (http://bcho.tistory.com) REST 기반의 OPEN API 인증을 고민하다가 보니, 가장 많이 쓰이는게, OAuth 2.0이라서, 이 OAuth 2.0을 보다보니, 도저히 이해가 안되겠다 싶어서, 간단하게 직접 구현해보기로 했다. OAuth 서버를 구현하기전에 먼저 테스트 클라이언트가 필요했기 때문에, node.js + passport 를 이용해서 facebook API를 호출하는 간단한 웹 사이트를 만들어보기로 했다.Facebook의 API는 기본적으로 OAuth 2.0을 사용하고, Passport 모듈에서 잘 추상화된 라이브러리를 제공하기 때문에 쉽게 구축..

REST API 디자인 가이드

REST API 디자인 가이드조대협(http://bcho.tistory.com)REST API 디자인을 보면, REST 사상에 맞춰서 제대로 디자인 (CRUD를 HTTP method에 맞춘)하기도 어렵고, URI Convention등이나 보안, 버전 관리등 고려할 사항이 많다. 이번 글에서는 REST API를 디자인에 대한 가이드를 소개하고자 한다.동사보다는 명사를 사용하자URL을 심플하고 직관적으로 만들자REST API를 URL만 보고도, 직관적으로 이해할 수 있어야 한다 URL을 길게 만드는것 보다, 최대 2 depth 정도로 간단하게 만드는 것이 이해하기 편하다./dogs /dogs/1234URL에 동사보다는 명사를 사용한다.REST API는 리소스에 대해서 행동을 정의하는 형태를 사용한다. 예를 ..

django 에서 REST API 만들기

Dango에서 간단한 REST API 만들기 조대협 Django에서 REST API를 만들려면 가장 널리 사용되는 프레임웍중 하나가 dango rest_framework이다.http://django-rest-framework.org/tutorial/quickstart 설치는 다음과 같다.pip install djangorestframeworkpip install markdown # Markdown support for the browsable API.pip install django-filter # Filtering support 1. quickstart라는 앱을 생성 C:\Users\terry\git\django_restframework_sample\django_restframework_sample>p..

Federation과 SSO 에 대한 주요 표준 (메모)

Federation 기술로는 크게 1. WS-Security가 있으며, 상세 스펙으로는 WS-Trust 는 STS 기반의 초기 인증과 토큰 발행WS-Federation은 다른 리소스의 액세스에 대한 토큰 사용을 정의을 정의 2. 반대 진영으로는 SAML 기반의 SSO가 있음 3. 그리고 B2C 진영에는 OAuth도 사용됨 주로 현재 대세는SSO는 SAML을 사용하고,API를 통한 특정 resource에 대한 접근은 OAuth를 사용한다. 구글을 사례SSO 구현 : http://support.google.com/a/bin/answer.py?hl=ko&answer=60224API 접근 : https://support.google.com/a/bin/answer.py?hl=ko&answer=61017&topic..

HMAC을 이용한 REST API 인증 방법 모음

HMAC 개념 잡기 - http://nts_story.blog.me/50109958210HMAC 을 이용한 REST 보안 - http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/HMAC 프로그래밍 언어별 구현 방법External linksOnline HMAC Calculator for dozens of underlying hashing algorithmsFIPS PUB 198, The Keyed-Hash Message Authentication CodePHP HMAC implementationPython HMAC implementationPerl HMAC implementationRuby HMAC impl..