Top

OAuth 2.0 마스터 [OAuth 2.0 애플리케이션 개발을 위한 모든 것]

  • 원서명Mastering OAuth 2.0 (ISBN 9781784395407)
  • 지은이찰스 비히스(Charles Bihis)
  • 옮긴이윤우빈
  • ISBN : 9788960779907
  • 25,000원
  • 2017년 04월 05일 펴냄
  • 페이퍼백 | 268쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

OAuth 2.0은 현재 가장 널리 사용되는 표준 인가 프로토콜로, 세계적으로 유명한 서비스 제공자와 상호작용해 세계적인 수준의 기술을 활용할 수 있게 해주는 강력한 인가 프레임워크다. OAuth 2.0이 무엇이며, 어떻게 동작하는지 이해할 수 있고, OAuth 2.0 애플리케이션을 만들기 위해서 무엇을 해야 하는지 정확히 알게 될 것이다. 또한 보안에 있어 강력한 OAuth 2.0 애플리케이션을 만드는 방법에 대해서도 배우게 될 것이다.

이 책에서 다루는 내용

■ OAuth 2.0의 장점을 활용한 애플리케이션 개발
■ 페이스북과 연동하는 OAuth 2.0 샘플 애플리케이션 구현
■ OAuth 2.0 스펙에서 지원하는 다양한 워크플로우 소개 및 활용
■ OAuth 2.0 서비스 제공자와 상호작용하는 애플리케이션 개발 및 보안 고려 사항
■ 여러 가지 디버깅 기술, 문제 해결 방법, 관련 툴에 대한 소개
■ OAuth 2.0의 다양한 확장 방법 분석
■ 세계적인 기업의 일류 기술을 바탕으로 하는 응용프로그램 구현

이 책의 대상 독자

자신의 서비스와 애플리케이션에서 OAuth 2.0을 효과적으로 활용하려는 애플리케이션 개발자, 소프트웨어 아키텍트, 보안 엔지니어뿐 아니라 일반적인 프로그래머에게도 유용하다. 프로그래밍과 OAuth에 대한 기본적인 지식을 갖췄다면 이 책의 내용을 충분히 이해할 수 있다.

이 책의 구성

1장, '왜 OAuth 2.0에 관심을 가져야 하는가?'에서는 OAuth 2.0 프로토콜을 소개하고 그것의 목적, 중요성, 보급 현황 등을 설명한다.
2장, 'OAuth 2.0 개요'에서는 개요와 OAuth 2.0가 지원하는 여러 가지 워크플로우의 차이점을 설명한다.
3장, '네 개의 단계'에서는 OAuth 2.0 프로토콜을 사용하는 서비스 제공자에 통합하기 위해 필요한 각 단계를 설명한다.
4장, '애플리케이션 등록'에서는 네 단계 중 첫 번째 단계인 애플리케이션을 서비스 제공자에 등록하는 단계를 자세히 설명한다.
5장, '클라이언트 사이드 플로우로 액세스 토큰 얻기'에서는 이른바 비신뢰 클라이언트에서 보호된 리소스에 대한 접근 권한을 얻는 플로우를 설명한다.
6장, '서버 사이드 플로우로 액세스 토큰 얻기'에서는 신뢰 클라이언트에서 보호된 리 소스에 대한 접근 권한을 얻는 플로우를 설명한다.
7장, '액세스 토큰 이용하기'에서는 획득한 액세스 토큰을 이용해서 리소스에 접근하기 위한 과정을 설명한다.
8장, '액세스 토큰 갱신하기'에서는 만료된 액세스 토큰을 갱신하기 위한 절차를 설명한다. 9장, '보안 고려 사항'에서는 애플리케이션 개발에서 고려해야 할 중요한 보안 사항을 설명한다. 이는 모든 애플리케이션에서 중요한 주제지만, OAuth 2.0 프로토콜을 이용하는 애플리케이션에게 특히 더 중요하다.
10장, '모바일 애플리케이션'에서는 스마트폰과 태블릿 같은 모바일 기기를 위한 장으로 모바일 애플리케이션에서 고려해야 할 모든 것을 다룬다.
11장, '도구와 문제 해결'에서는 문제를 해결하는 방법을 살펴보고, 어떻게 하면 사용자의 개입을 최소화하면서 에러를 처리할 수 있는지 설명한다.
12장, 'OAuth 2.0 확장'에서는 다양한 사용 시나리오를 보기 위해 OAuth 2.0을 확장하는 여러 가지 방법을 살펴본다.
부록 A, '리소스 소유자 비밀번호 자격증명 Grant'에서는 부가적으로 지원하는 워크플로우 중 하나를 살펴본다.
부록 B, '클라이언트 자격증명 Grant'에서는 부가적으로 지원하는 또 다른 워크플로우를 살펴본다.
부록 C, '레퍼런스'에서는 이 책에서 참조하는 다양한 오픈 스펙을 나열한다.

저자/역자 소개

지은이의 말

OAuth 2.0은 서비스에 대한 권한을 위임하기 위한 오픈 프로토콜이며, 전 세계적으로 널리 사용되는 표준 인가 프로토콜로 자리 잡았다. OAuth 2.0을 이용하면 누구나 자신의 애플리케이션이 세계적인 수준의 기술에 접근하도록 만들 수 있고 그것을 이용하게 할 수 있다. 즉, OAuth 2.0은 매력적이고 우아한 해결책을 솔루션이라고 할 수 있다. 나는 운 좋게도 지난 7년 동안 신원을 식별하기 위한 기술 분야에서 일해왔고, 프로토콜의 진화와 발전을 목격할 수 있었다. 이 책은 OAuth 2.0 프로토콜의 사용법과 그것을 위한 설계를 포함해서 OAuth 2.0의 가장 중요한 부분을 설명하고자 노력했다. 실용성과 보안에 초점을 맞춘 이 책은 애플리케이션 개발자에게 가장 큰 이익과 혜택을 제공하도록 구성됐다. OAuth 2.0이 지속적으로 채택되고 개발자가 통합해 활용할 수 있는 서비스가 점점 더 많아지면서 이 책을 통해 다음 세대의 세계적인 애플리케이션과 기술에 대한 개발을 편안하게 시작할 수 있길 기대한다.

지은이 소개

찰스 비히스(Charles Bihis)

캐나다 밴쿠버 출신의 과학자이자 엔지니어다. 브리티시 콜롬비아 대학에서 소프트웨어 엔지니어링을 전공해 컴퓨터공학 학위를 취득했고, 기술의 경계를 탐구하길 즐긴다. 기술이야말로 우리 주변의 모든 사람들이 삶을 더 풍요롭게 누리게 해주는 열쇠며 사람들이 매일 직면하는 문제를 해결하기 위해 노력한다고 믿는다. 그런 관심을 바탕으로 웹사이트(www.whoischarles.com)를 통해 세상의 문제를 함께 해결하려고 한다.

옮긴이의 말

웹 애플리케이션 기술은 매우 역동적으로 변화, 발전해 왔다. 앞으로도 계속해서 새로운 웹 애플리케이션 기술이 등장하고 사라질 것이다. 또한 웹 애플리케이션 기술은 그 영역을 지속해서 확장해 나가고 있다. PC나 모바일 기기뿐만 아니라 다양한 가전 기기, 자동차, 로봇, 산업 기기 등 현재는 그 영역을 경계 짓는 것 자체가 무의미하게 여겨질 정도다. 그런 역동적인 웹 애플리케이션 기술 중에서 가장 많이 사용되는 것 중 하나가 바로 OAuth 2.0이다. OAuth 2.0은 전 세계적으로 널리 사용되는 표준 인가 프로토콜이다. Facebook, Google뿐만 아니라 국내외의 수많은 IT 기업들이 자신들의 서비스나 애플리케이션에 OAuth 2.0 기술을 적용하고 있다. 또한, 그러한 기업들은 Open API 형태로 자신들의 기술들을 오픈하는 경우가 많은데, 그런 Open API에 대한 인가 프레임워크로서 OAuth 2.0이 주로 사용되다. 따라서 지금 여러분들이 주로 사용하는 애플리케이션 중에서 OAuth 2.0 기술을 이용하는 것이 생각보다 많을 것이다. OAuth 2.0이 그렇게 보편적으로 널리 사용되는 이유 중 하나는 OAuth 2.0이 사용자 인가 문제를 간단히 해결해 주기 때문이다. 물론, 보안하는 관점에서 OAuth 2.0을 자세히 들여다보면 잠재적으로 문제가 될 만한 부분이 보일 수 있다. 하지만 OAuth 2.0은 오픈 스펙이기 때문에 그것의 세부적이고 전체적인 구현 방법 자체에 대해서는 명확히 정의하지 않는다. 따라서 OAuth 2.0을 구현하는 방법은 개발사마다 약간씩은 다를 수 있다. 즉, OAuth 2.0에 대한 잠재적인 보안 위협은 OAuth 2.0 스펙 자체보다 그것을 구현하는 방법에 더 의존적이라고 말할 수 있다. 물론 이 책에서는 OAuth 2.0 애플리케이션을 개발하면서 보안적으로 어떤 것을 고려해야 하는지 설명하며, OAuth 2.0 애플리케이션에 대한 보안 공격은 어떤 것이 있을 수 있고 각 공격에 대한 대응 방법도 설명한다. 이 책은 매우 체계적으로 OAuth 2.0의 스펙을 설명하며, 동시에 실제 예제 애플리케이션을 통해서 그 내용을 친절히 설명한다. 또한, OAuth 2.0 스펙의 다른 군더더기를 빼고 핵심적인 부분에 집중함으로써 OAuth 2.0을 이해하고자 하는 독자나 OAuth 2.0을 이용해 애플리케이션을 개발하고자 하는 개발자에게 매우 실용적인 가이드다.

옮긴이 소개

윤우빈

기존의 IT 기술과 새로 만들어지는 최신 기술을 보안이라는 관점에서 이해하고 새로운 기술, 비즈니스 영역의 새로운 보안 위협과 그에 대한 대응 기술을 고민 중이며, 에이콘출판사를 통해 다양한 보안 관련 지식을 공유하고자 노력한다. 지금도 여전히 새로운 분야에 대한 보안 기술을 연구하고 다양한 보안 기술을 개발하기 위해 진땀을 흘리고 있다.

목차

목차
  • 1장. 왜 OAuth 2.0에 관심을 가져야 하는가?
    • 인증과 인가
      • 인증
      • 인가
    • 무엇을 해결해주는가?
      • 연합된 신원
      • 권한 위임
      • OAuth 2.0의 실제 예
    • OAuth 2.0은 실제로 문제를 어떻게 해결하는가?
      • OAuth 2.0 없이: GoodApp이 여러분의 페이스북 친구 목록을 보고 여러분에게
      • GoodApp 친구를 추천하고자 할 때
      • OAuth 2.0을 이용해서: GoodApp이 여러분의 페이스북 친구 목록을 보고 여러분에
  • 게 GoodApp 친구를 추천하고자 할 때
    • 누가 OAuth 2.0을 사용하는가?
    • 세계에서 가장 흥미로운 인포그래픽 생성기
    • 요약

  • 2장. OAuth 2.0 개요
    • 어떻게 동작하는가?
      • 사용자 동의
      • 두 가지 유형의 클라이언트와 동작 흐름
      • 신뢰 vs. 비신뢰 클라이언트
    • 클라이언트 사이드 워크플로우
      • 비신뢰 클라이언트: GoodApp이 implicit grant를 이용해 페이스북의 친구 목록에 대한 접근을 요청
      • 전체적인 그림
      • 언제 implicit grant를 사용해야 하는가?
      • 비신뢰 클라이언트의 장단점
    • 서버 사이드 워크플로우
      • 신뢰 클라이언트: GoodApp이 인가 코드 grant를 이용해서 페이스북의 친구 목록에
      • 대한 접근을 요청
      • 전체적인 그림
      • 인제 인가 코드 grant를 사용해야 하는가?
      • 신뢰 클라이언트의 장단점
    • 차이점
    • 모바일의 경우는?
    • 요약

  • 3장. 네 개의 단계
    • 시작
    • 1단계: 클라이언트 애플리케이션 등록
      • 다른 서비스 제공자, 다른 등록 절차, 동일한 OAuth 2.0 프로토콜
      • 클라이언트 자격증명
    • 2단계: 액세스 토큰 얻기
      • 액세스 토큰
      • 리프레시 토큰
    • 3단계: 액세스 토큰 사용
      • 액세스 토큰은 액세스 토큰일 뿐이다
    • 4단계: 액세스 토큰 갱신
      • 리프레시 토큰이 없다면?
      • 리프레시 토큰도 만료된다
    • 종합
    • 요약..

  • 4장. 애플리케이션 등록
    • 등록 과정 다시 살펴보기
    • 페이스북에 애플리케이션 등록
      • 애플리케이션 생성
      • 리다이렉션 엔드포인트 설정
      • 서비스 제공자의 인가 엔드포인트와 토큰 엔드포인트
    • 종합
    • 요약

  • 5장. 클라이언트 사이드 플로우로 액세스 토큰 얻기
    • implicit grant 플로우 다시 살펴보기
    • implicit grant 플로우
      • 인가 요청
      • 액세스 토큰 응답
    • 개발 시작!
      • 애플리케이션 빌드
      • 인가 요청 수행
      • 액세스 토큰 응답을 처리
    • 요약
    • 레퍼런스 페이지
      • implicit grant 플로우의 개요
      • 인가 요청
      • 액세스 토큰 응답
      • 에러 응답

  • 6장. 서버 사이드 플로우로 액세스 토큰 얻기
    • 인가 코드 grant 플로우 다시 살펴보기
    • 인가 코드 grant 플로우
      • 인가 요청
      • 인가 응답
      • 액세스 토큰 요청
      • 액세스 토큰 응답.
    • 개발 시작!
      • 애플리케이션 빌드
      • 인가 요청 수행
      • 인가 응답 처리
      • 액세스 토큰 요청
      • 액세스 토큰 응답을 처리
    • 요약
    • 레퍼런스 페이지
      • 인가 코드 grant 플로우의 개요
      • 인가 요청
      • 인가 응답
      • 에러 응답
      • 액세스 토큰 요청
      • 액세스 토큰 응답
      • 에러 응답.

  • 7장. 액세스 토큰 이용하기
    • 액세스 토큰 다시 살펴보기
    • 액세스 토큰을 이용해 API 호출
      • 인가 요청 헤더 필드로 전달
      • 인코딩된 폼의 파라미터로 전달
      • URI 질의 파라미터로 전달
    • 개발 시작!
      • 클라이언트 사이드 샘플 애플리케이션
      • 서버 사이드 샘플 애플리케이션
    • 세계에서 가장 흥미로운 인포그래픽 애플리케이션
    • 요약
    • 레퍼런스 페이지
      • 보호된 리소스 접근에 대한 개요
      • 인가 요청 헤더 필드
      • 인코딩된 폼의 파라미터
      • URI 질의 파라미터

  • 8장. 액세스 토큰 갱신하기
    • 리프레시 토큰 워크플로우
      • 리프레시 요청
      • 액세스 토큰 응답
    • 리프레시 토큰이 없거나 만료됐다면?
      • 두 가지 방법 비교
    • 이상적인 워크플로우
    • 요약
    • 레퍼런스 페이지
      • 리프레시 토큰 플로우의 개요
      • 액세스 토큰 갱신 요청
      • 액세스 토큰 응답
      • 에러 응답

  • 9장. 보안 고려 사항
    • 무엇이 위험한가?
    • 보안 고려 사항
      • TLS를 사용하라!
      • 최소한의 범위만을 요청하라
      • implicit grant 플로우를 사용할 때는 읽기 전용 권한만을 요청하라
      • 사용자의 손이 미치지 않는 곳에 자격증명과 토큰을 보관하라
      • 가능하면 항상 인가 코드 grant 플로우를 사용하라
      • 가능하면 항상 리프레시 토큰을 사용하라
      • 내장 브라우저 대신 네이티브 브라우저를 이용하라
      • 리다이렉션 엔드포인트에서 서드파티 스크립트를 사용하지 말라
      • 클라이언트 자격증명을 바꿔서 사용하라
    • 공격
      • CSRF
      • 피싱
      • 리다이렉션 URI 조작
      • 클라이언트와 사용자 사칭
    • 요약

  • 10장. 모바일 애플리케이션
    • 모바일 애플리케이션이란 무엇인가?
    • 모바일 애플리케이션에서는 어떤 플로우를 사용해야 하는가?
      • 모바일 애플리케이션은 신뢰 애플리케이션인가, 비신뢰 애플리케이션인가?
      • 모바일 애플리케이션이 시큐어 스토리지 API를 사용한다면?
    • 하이브리드 아키텍처
      • 모바일 애플리케이션을 위한 implicit grant 워크플로우와 백엔드 서버를 위한 인가 코
  • 드 grant 워크플로우
    • 하이브리드 아키텍처의 장점
  • 애플리케이션을 통한 인가
  • 요약

  • 11장. 도구와 문제 해결
    • 도구
    • 문제 해결
      • implicit grant 플로우
      • 인가 코드 grant 플로우
      • API 호출 흐름
      • 리프레시 토큰 플로우
    • 요약

  • 12장. OAuth 2.0 확장
    • OAuth 2.0 프레임워크 확장
      • 커스텀 grant 유형
      • 다양한 유형의 토큰
      • 인가 백엔드
    • OpenID Connect
    • 요약

  • 부록 A. 리소스 소유자 비밀번호 자격증명 Grant
    • 언제 사용해야 하는가?
    • 레퍼런스 페이지
      • 리소스 소유자 비밀번호 자격증명 grant의 개요
      • 인가 요청과 응답
      • 액세스 토큰 요청
      • 액세스 토큰 응답
      • 에러 응답
    • 언제 사용해야 하는가?

  • 부록 B. 클라이언트 자격증명 Grant
    • 레퍼런스 페이지
    • 클라이언트 자격증명 grant의 개요
      • 인가 요청과 응답
      • 액세스 토큰 요청
      • 액세스 토큰 응답
      • 에러 응답
    • OAuth 2 인가 프레임워크
    • The OAuth 2 인가 프레임워크: Bearer 토큰 사용

  • 부록 C. 레퍼런스
    • OAuth 2.0 토큰 폐기
    • OAuth 2.0 위협 모델과 보안 고려 사항
    • 클라이언트 인증과 인가 Grant를 위한 OAuth 2.0 assertion 프레임워크
    • OAuth 2.0 클리이언트 인증과 인가 Grant를 위한 SAML 2.0 프로파일
    • JSON 웹 토큰
    • OAuth 2.0 클라이언트 인증과 인가 Grant를 위한 JSON 웹 토큰 프로파일
    • OpenID Connect Core 1.0
    • HTTP 인증: Basic and Digest Access Authentication
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안