OAuth 2.0 쿡북 (Spring Security를 이용한 OAuth 애플리케이션 개발)

OAuth 2.0 쿡북 (Spring Security를 이용한 OAuth 애플리케이션 개발)

$41.16
Description
Spring Security를 이용해 실질적으로 OAuth 2.0 애플리케이션을 구현하는 데 초점 맞추고 있다. 기본적인 형태의 OAuth 2.0 애플리케이션 구현뿐만 아니라 동적 클라이언트 등록, 토큰 인트로스펙션, PKCE, JWT 액세스 토큰, OpenID Connect와 같은 다양하고 확장된 주제에 대해 구체적인 구현 가이드를 제시한다.
저자

아돌포엘로이나시멘토

저자아돌포엘로이나시멘토(AdolfoEloyNascimento)는Elo7의소프트웨어엔지니어로서컴퓨터과학학사학위를취득했고,1999년부터소프트웨어개발업무를수행해왔다.2003년에ASP,PHP4/5,자바스크립트와자바(때로는루비온레일즈애플리케이션의유지보수작업도수행)를이용한웹애플리케이션개발을시작했다.마이크로서비스아키텍처를이용한애플리케이션설계와퍼블릭API를모델링하고상호작용하기위해2년전부터OAuth2.0을사용하기시작했다.
기술애호가로서프로그래밍언어와새로운기술에대한것을읽고배우는것을좋아한다.또한새로운애플리케이션을만드는것뿐만아니라자신이습득한지식을공유하는것도중요하다고믿기때문에개인블로그에글을쓰고브라질에있는자바매거진에기사를쓰거나기술도서를집필하고있다.

목차

1장.OAuth2.0기본
__소개
__기반환경준비
__클라이언트측에서페이스북사용자의연락처읽기
__서버측에서페이스북사용자의연락처읽기
__링크드인의보호된리소스에접근
__사용자세션에바이딩된구글의보호된리소스에접근

2장.OAuth2.0프로바이더구현
__소개
__인가코드그랜트타입을이용한리소스보호
__암시적그랜트타입지원
__OAuth2.0으로의전환을위한리소스소유자패스워드자격증명그랜트타입
__클라이언트자격증명그랜트타입
__리프레시토큰지원
__토큰과클라이언트정보를저장하기위한관계형데이터베이스이용
__Redis를이용한토큰저장
__클라이언트등록구현
__중간에서OAuth2.0프로바이더분리
__공유된데이터베이스를이용한토큰유효성검사과정을Gatling으로테스트

3장.OAuth2.0보호API
__소개
__인가코드그랜트타입을이용하는OAuth2.0클라이언트
__암시적그랜트타입을이용하는OAuth2.0클라이언트
__리소스소유자패스워드자격증명그랜트타입을이용하는OAuth2.0클라이언트
__클라이언트자격증명그랜트타입을이용하는OAuth2.0클라이언트
__클라이언트에서의리프레시토큰관리
__RestTemplate으로OAuth2.0의보호된API에대한접근

4장.OAuth2.0프로파일
__소개
__발급된토큰폐기
__토큰인트로스펙션을이용한원격검증
__캐시를이용한원격검증성능향상
__Gatling을이용한원격토큰검증에대한부하테스트
__동적클라이언트등록

5장.JWT
__소개
__JWT액세스토큰만들기
__리소스서버에서JWT토큰검증
__JWT에사용자정의클레임추가
__JWT토큰의비대칭서명
__비대칭서명된JWT토큰검증
__JWT토큰을암호화해서보호하기위한JWE
__리소스서버에서의JWE사용
__OAuth2.0프로바이더에서소유증명키사용
__클라이언트에서소유증명키사용

6장.인증을위한OpenIDConnect
__소개
__구글OpenIDConnect를통한구글사용자의인증
__ID프로바이더로부터사용자정보획득
__사용자인증을위한페이스북이용
__SpringSecurity5로구글OpenIDConnect이용
__SpringSecurity5로마이크로소프트와구글OpenID프로바이더함께이용

7장.모바일클라이언트구현
__소개
__안드로이드개발환경준비
__시스템브라우저로인가코드를이용하는안드로이드OAuth2.0클라이언트만들기
__시스템브라우저로암시적그랜트타입을이용한안드로이드OAuth2.0클라이언트만들기
__내장브라우저를이용하는안드로이드2.0클라이언트만들기
__OAuth2서버가제공하는패스워드그랜트타입을이용하는클라이언트앱
__PKCE로안드로이드클라이언트보호
__모바일애플리케이션으로동적클라이언트등록이용

8장.보안취약점방지
__소개
__리소스서버에대한요청자검증
__권한범위검증을통한리소스서버보호
__사용자의리소스를보호하기위한사용자역할과권한범위바인딩
__인가코드삽입으로부터클라이언트보호
__잘못된리다이렉션으로부터인가서버보호

출판사 서평

★이책에서다루는내용★

■발급된액세스토큰과리프레시토큰을저장하기위해서레디스(Redis)와관계형데이터베이스를이용하는방법
■SpringSecurity를이용하는OAuth2.0프로바이더로보호되는리소스에대한액세스방법
■인가서버에자신을동적으로등록하는웹애플리케이션구현방법
■동적클라이언트등록을이용해서모바일클라이언트의안전성을향상시키는방법
■PKCE를이용한안드로이드클라이언트보호방법
■잘못된리다이렉션으로부터인가서버를보호하는방법

★이책의대상독자★

API보안과OAuth2.0에대한기술을향상시키고자하는소프트웨어엔지니어와보안전문가를대상으로한다.안드로이드모바일애플리케이션뿐만아니라,SpringBoot애플리케이션을위한OAuth2.0지원을프로그램적으로추가하고자하는개발자에게도도움을주고자한다.프로그래밍지식과기본적인웹개발에대한이해가필요하다.이책전반에걸쳐SpringSecurityOAuth2를이용하기때문에사전에Spring프레임워크에대한경험이있다면도움이될것이다.

★이책의구성★

1장,‘OAuth2.0기본’에서는독자가페이스북이나링크드인,구글같이공개된OAuth2.0API와상호작용할수있도록간단한예제를통해OAuth2.0의기본을설명한다.
2장,‘OAuth2.0프로바이더구현’에서는OAuth2.0프로바이더구현방법을설명하며,인가서버와리소스서버가다른OAuth2.0그랜트타입을고려하는것에도도움을준다.또한다른데이터베이스에액세스토큰을저장함으로써리프레시토큰을효과적으로처리하는방법도설명한다.
3장,‘OAuth2.0보호API’에서는OAuth2.0스펙에서설명하는모든그랜트타입과상호작용할수있는OAuth2.0클라이언트애플리케이션만드는방법을설명한다.또한클라이언트에서리프레시토큰을관리하는방법도설명한다.
4장,‘OAuth2.0프로파일’에서는몇가지OAuth2.0프로파일과SpringSecurityOAuth2를이용해그것을구현하는방법을설명한다.프로파일은토큰폐기와토큰을원격에서확인할수있게해주는토큰인트로스펙션처럼OAuth2.0스펙에서다루고있지않는특정시나리오를처리하는데이용된다.또한원격에서토큰을확인할때캐시를사용하는시기와방법에대한몇가지가이드를제공한다.
5장,‘JWT’에서는OAuth2.0액세스토큰으로JWT를사용하는방법을설명하며,JWT액세스토큰에의해전달되는내용을보호하기위해서서명과암호화를제공하는JWS와JWE같은확장된JWT의구현방법을설명한다.또한OAuth2.0에서소유증명키를이용해애플리케이션의보안성을향상시킬수있는좋은방법도설명한다.
6장,‘인증을위한OpenIDConnect’에서는인가와인증의차이점,OAuth2.0이어떻게인증프로토콜을구축하는지설명한다.OpenIDConnect의사용방법을설명하기위해모든예제는OpenIDConnect프로바이더가아닌클라이언트애플리케이션을대상으로한다.
7장,‘모바일클라이언트구현’에서는안드로이드용OAuth2.0네이티브모바일클라이언트구현방법을다룬다.네이티브앱을위한OAuth2.0이라는이름으로최근에공개된스펙에서기술하고있는몇가지가이드라인도설명한다.
8장,‘보안취약점방지’에서는OAuth2.0생태계에서고려해야하는OAuth2.0의주요구성요소를좀더효과적으로보호할수있는방법을설명한다.

★옮긴이의말★

OAuth2.0은현재광범위하게사용되고있는인가(Authorization)프로토콜이다.상대적으로구현이간단할뿐만아니라다양한확장성을제공하고있기때문에많이사용된다고할수있다.즉,데스크톱애플리케이션,모바일앱,그리고웹애플리케이션등다양한형태의애플리케이션에서인가플로우를간단히개발할수있게해준다.
이책을통해매우다양한형태의OAuth2.0애플리케이션과그확장된기능구현에대해배울수있다.즉,SpringSecurity를이용해다양한형태의OAuth2.0인가플로우뿐만아니라동적클라이언트등록,토큰인트로스펙션,PKCE,JWT액세스토큰,OpenIDConnect같은확장된주제와기능을어떻게구현하면되는지예제코드를기반으로실질적으로가이드한다.또한OAuth2.0클라이언트와서버간에발생할수있는보안취약점과그것을방지하기위한방법을제시한다.
OAuth2.0은엄밀히말하면인증(Authentication)프로토콜이아닌인가프로토콜이기때문에인증프로토콜이추가로필요한애플리케이션인경우OAuth2.0을확장해서인증을구현하거나별도의인증프로토콜을구현하는데대해좀더깊이생각할수있는계기가되길희망한다.