모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: gaming on aws 2016

27
모바일 플랫폼 쉽게 개발하기 (Cognito User Pools and API Gateway) Seon Yong Park Solutions Architect

Upload: amazon-web-services-korea

Post on 07-Jan-2017

403 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

모바일플랫폼쉽게개발하기(Cognito User Pools and API Gateway)

Seon Yong Park Solutions Architect

Page 2: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

내용

1. 인증(Authentication)과인가(Authorization)2. 인증관련 AWS 서비스와사용례3. Cognito User Pools 자세히보기4. 오늘의데모

Page 3: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

1.인증(Authentication)과인가(Authorization)

Page 4: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

What is Authentication à AuthNAuthorization à AuthR

Page 5: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

Who? == AuthN What? == AuthR

정체를확인• ID/Password• ID card• Security token

허용/거부의규칙• IAM Policy• Security group

Page 6: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

2. 인증관련 AWS 서비스와사용예

Page 7: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

AuthN, AuthR과관련된 AWS 서비스

AWS Directory Service

AWS IAM AmazonCognito

Amazon API Gateway

Page 8: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

AuthN, AuthR과관련된 AWS 서비스

AWS Directory Service

AWS IAM

• 쉽게 Microsoft Active Directory를 AWS 상에서사용• 3개의디렉토리타입 :

1. Microsoft AD2. Simple AD3. AD connector

• 온프리미스 AD와통합가능

• AWS리소스에접근할수있는권한과인증을콘트롤• AuthN : 누가 AWS 리소스를사용할수있는가?• AuthR : 인증받은사용자가어떤 AWS 리소스에접근할수있는가?• EC2, Lambda등의 AWS 리소스에대한접근권한에대한제어

Page 9: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

AuthN, AuthR과관련된 AWS 서비스• 모바일/웹앱에대한사인인,사인업,유저관리• 소셜 auth와커스텀 auth지원• 여러디바이스간의유저데이터동기화기능제공

• 쉽게 Restful웹 API를생성/조작• API의관리용이• API리소스접근제어를위해 IAM, 커스텀 Auth람다함수,

Cognito유저풀이제공됨

AmazonCognito

Amazon API Gateway

Page 10: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

사용예

AWS Directory Service

AWS IAM

• 고용자를위한 in-house 시스템의계정관리• IAM과연계되어 AWS 콘솔에대한 SSO• Sharepoint, Amazon WorkMail등윈도우기반비지니스서비스에대한 authN제어

• 관리콘솔이나 API를사용하는사용자에대해 IAM 유저/그룹을통해관리

• EC2 혹은 Lambda로부터 AWS리소스로접근하는접근권을제어

Page 11: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

사용예

• 모바일네이티브앱혹은자바스크립트브라우저앱을위한Temparary credential발급으로 AWS 리소스에접근가능하게함

• 만약 authN이필요하다면,고객은 3rd파티아이디제공자나Cognito User Pools를사용가능

• JSON기반의웹 API를생성• 백앤드서비스들과연동가능• 만약 authN이필요하다면,고객은 IAM, Custom

Authorizer(Lambda function) 혹은 Cognito User Pools Authorizer 를이용할수있다

AmazonCognito

Amazon API Gateway

오늘데모대상

Page 12: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

3. Cognito User Pools 자세히보기

Page 13: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

기존인증흐름 - federation

STS

5. ReceiveAWS

Credentials

3. Assume Role2. OpenID Token

Mobile Client

Cognito“IDP”

1. Get or Create Identity

4. Validate

Amazon S3

6. Store Data

Page 14: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

Cognito Identity

Federation IdentitiesYour User Pools

모바일앱/웹앰에대해쉽고안전하게사인-인,사인-아웃기능을생성할수있음수억명의사용자까지쉽게확대가능

3rd파티 ID제공자 (페이스북, Twitter and SAML 제공자등)를통해로그인할수있음.AWS리소스에대한앱의접근에대해제어할수있음

GA : 7/28/2016

Page 15: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

User Pools

당신의모바일/웹앱에대해쉽게사인업,사인인기능을쉽게추가할수있습니다.

쉬운유저관리

AWS의안전에대한경험이녹아있습니다.이메일인증,

MFA 인증의기능을쉽게적용할수있습니다.

강화된안전

유저디레토리를손쉽게생성합니다.간단하면서,안전하고,낮은비용의완전관리형유저디렉토리입니다.수억명까지쉽게확장됩니다.

유저디렉토리관리

Page 16: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

이전에는

부담이큰작업자신의유저디렉토리를만들기위해많은시간과리소스를투자해야만했음

제대로된작동이쉽지않음유저데이터패스워드에대한보안적인관리및처리가쉽지않음

확장성의문제앱이성공하고나면,디렉토리인프라를확장하는것이필요하게됨

Page 17: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

유저시나리오

이메일혹은전화번호확인

패스워드분실/리셋

유저 sign-up 과 sign-in

사용자는이메일주소나전화번호를어카운트활성화하기앞서확인할수있다.

사용자는자신의패스워드를변경할수있으며원하는경우리셋할수도있다

유저는이메일,전화번호혹은유저이름과패스워드로사인업을수행한다.이후이정보로사인인할수있다

사용자프로파일 사용자프로파일을가져오거나업데이트할수있다.사용자지정속성도포함된다.

SMS-기반 MFA 사인업,패스워드분실/리셋에서에서별도로 MFA를사용하게할수있다.

Page 18: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

유저시나리오

토큰기반인증

안전한원격패스워드프로토콜

SMS기반 Multi-factor 인증

Cognito사인인은 dentity provider로서 OpenID Connect (OIDC) 와 OAuth 2.0를지원한다

Cognito사인인은 Secure Remote Password (SRP)를안전한패스워드처리를위해서사용한다

모바일폰의텍스트메시징을이용해서보안레이어를더추가할수있다.

Page 19: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

Cognito Sign-in 흐름

Device Cognito Identity AWS STSLogin

GetIdValidation

ValidationGetCredentialsForIdentity

Cognito Sign-in

Page 20: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

Lambda 훅을통한커스터마이징

Lambda 훅으로커스텀로직을추가- Pre- and post user sign-up- Pre- and post user sign-in- Post user confirmation

사용예- 사기감지- Email 검증- 커스텀되거나로컬라이즈된메시지- 광고

Page 21: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
Page 22: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

확장된관리기능

커스텀속성정의

속성에대한필수사항설정

User Pools 생성및관리

사용자프로필에사용할커스텀속성을정의할수있다

사인업에앞서완전하게제공되어야할속성을선택할수있다

AWS region별로복수개의유저풀을생성,설정과삭제를할수있다

패스워드정책설정 패스워트정책(길이등)을설정하여서관리할수있다

유저검색 콘솔혹은 API를통해이메일,전화번호,유저이름등으로유저를검색할수있다.

유저관리 유저패스워드리셋,활성화,유저컨펌, MFA 사용,유저삭제,글로벌사인아웃등유저관리기능을수행한다.

Page 23: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

Cognito User Pools 과 API 게이트웨이

1. Custom Authorizer 기능당신의 API에대한접근을제어하기위해 Oauth나 SAML과같은토큰인증기능을사용할수있다.

2. Native SupportUser Pools는 API게이트웨이와함께API요청을인가해준다. API게이트웨이가 ID 토큰을받아서유저풀에기반한유저에대한인가를할수있게설정할수있다

Page 24: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016

4. 오늘의데모

Page 25: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
Page 26: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
Page 27: 모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016