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, '레퍼런스'에서는 이 책에서 참조하는 다양한 오픈 스펙을 나열한다.
목차
목차
- 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 워크플로우
- 하이브리드 아키텍처의 장점
- 애플리케이션을 통한 인가
- 요약
- 도구
- 문제 해결
- implicit grant 플로우
- 인가 코드 grant 플로우
- API 호출 흐름
- 리프레시 토큰 플로우
- 요약
- OAuth 2.0 프레임워크 확장
- 커스텀 grant 유형
- 다양한 유형의 토큰
- 인가 백엔드
- OpenID Connect
- 요약
- 언제 사용해야 하는가?
- 레퍼런스 페이지
- 리소스 소유자 비밀번호 자격증명 grant의 개요
- 인가 요청과 응답
- 액세스 토큰 요청
- 액세스 토큰 응답
- 에러 응답
- 언제 사용해야 하는가?
- 레퍼런스 페이지
- 클라이언트 자격증명 grant의 개요
- 인가 요청과 응답
- 액세스 토큰 요청
- 액세스 토큰 응답
- 에러 응답
- OAuth 2 인가 프레임워크
- The OAuth 2 인가 프레임워크: Bearer 토큰 사용
- 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