본문 바로가기

[책] OAuth 2.0 마스터 비히스 지음/에이콘출판

by newly everyday 2019. 3. 20.


[책] OAuth 2.0 마스터  비히스 지음/에이콘출판



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

acorn+PACKT 시리즈

찰스 비히스 지음 | 윤우빈 옮김 | 에이콘출판 | 2017년 04월 05일 출간




OAuth 를 처음 접하거나, 

OAuth를 사용하여 애플리케이션을 개발해야 한다면 강력히 추천한다.

(소셜 연동, 회원관리 등)


인터넷으로 1주 정도 구글링 하는 것보다, 

이 책으로 1~2주 동안 개념을 잡고, 예제를 따라 하는 것이 훨씬 낫다. (개인적으로)


저 같은 경우는 도서관에서 빌려서 봤는데

훝어보고, 페이스북 예제를 따라하는데 10일 정도 걸렸다. 



목차

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장 액세스 토큰 갱신하기 181 
__리프레시 토큰 워크플로우 
____리프레시 요청 
____액세스 토큰 응답 
__리프레시 토큰이 없거나 만료됐다면? 
____두 가지 방법 비교 
__이상적인 워크플로우 
__요약 
__레퍼런스 페이지 
____리프레시 토큰 플로우의 개요 
____액세스 토큰 갱신 요청 
____액세스 토큰 응답 
____에러 응답 

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

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

11장 도구와 문제 해결 225 
__도구 
__문제 해결 
____implicit grant 플로우 
____인가 코드 grant 플로우 
____API 호출 흐름 
____리프레시 토큰 플로우 
__요약 

12장 OAuth 2.0 확장 239 
__OAuth 2.0 프레임워크 확장 
____커스텀 grant 유형 
____다양한 유형의 토큰 
____인가 백엔드 
__OpenID Connect 
__요약 

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

부록 B 클라이언트 자격증명 Grant 251 
__레퍼런스 페이지 
__클라이언트 자격증명 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


댓글