(참조 - https://opentutorials.org/course/3405/22006 생활코딩)
1. 기존의 방법 (위험한 방법)
(그림출처 - 생활코딩 Oauth)
*용어
User : 우리의 서비스를 이용하는 사용자
Mine : 사용자의 정보를 가공하여 그것을 다시 사용자에게 어떠한 서비스를 제공하는 제공자
Their : 사용자의 정보가 저장되어있는 기존의 서비스
*서비스 제공개념
달력서비스를 제공한다고 생각을 해보자
1. 사용자가 기념일을 확인하기 위해 Mine(우리의 서비스)에 가입을 했다
2. Mine(우리의 서비스)는 사용자의 생일 이라던지 여타 정보들을 얻기위해 Their 에 접근을 해야한다
3. User(서비스 사용자)로 부터 ID와 Password를 입력받아 그것을 Mine(우리서비스) 에서 보관을 한다
4. 사용자로 부터 입력받은 ID와 Password를 이용하여 Their에 접근하여 사용자의 정보를 얻어온다
5. 얻어온 사용자의 정보를 이용하여 User(사용자)에게 다시 서비스를 제공한다
*위험
User : 자신의 비밀번호를 신뢰할 수 없는 서비스에서 보관하고 있음은 굉장히 불안한 것.
Mine : 우리가 사용자의 ID와 PW를 보관하고 있다가 보안 사고가 난다면 굉장한 피해를 볼 수 있다.
2. Oauth
(그림 출처 - 생활코딩 oauth)
위의 그림은 Oauth의 입장에서 바라본 기존의 User, Mine(서비스 제공자) , Oauth 의 모식도 이다.
*용어
Resource Owner - Client(서비스)을 이용하는 자
- ResouceServer에 가입이 되어있는, 즉 정보의 주인.
Client - Resource Owner의 정보를 Resource Server로 부터 요청하는 Client 이다.
- Resource Owner에게 서비스를 제공하는 자이다.
Resource Server - Resource Owner의 정보를 보관하고 있는 자로 ResourceOwner로 부터 인증을 받아
Clinet에게 ResourceOwner의 정보를 제공하는 정보 보관소이다.
*서비스 제공개념
1. 아이디와 비밀번호를 이용하지 않는다
2. 먼저 Client(서비스 제공자)가 Resource Owner(User)에게 어떤 서비스를 제공하기 위해
Resource Server에게 필요한 정보를 요청한다
3. Resource Server 가 Resource Owner(User)에게 인증요청을 한다
4. Resource Owner(User)가 인증을 허가한다
5. Resource Server가 필요로하는 정보에만 접근할 수 있는 AccessToken을 Client(서비스제공자)에게
발급한다.
6. Client(서비스 제공자)가 AccessToken을 가지고 Resource Server에 있는 Resource Owner(User) 의 정보를 얻어와 가공하여 Resource Owner(User) 에게 서비스를 제공한다
*장점
1. 사용자의 아이디와 비밀번호를 이용하지 않는다
2. AccessToken을 통해 Client(서비스 제공자)는 필요로 하는 정보에만 접근이 가능하다
'IT Knowledge' 카테고리의 다른 글
스크립트언어란? , 프로그래밍언어란? , 스크립트와 프로그래밍언어 차이점 (2) | 2018.11.11 |
---|---|
프레임워크(FrameWork)란 , 라이브러리란 , 프레임워크 vs 라이브러리 (0) | 2018.11.10 |
그리드 컴퓨팅과 클러스터링 컴퓨팅의 차이 (0) | 2018.11.08 |
API 란 (0) | 2018.10.13 |
IT Knowledge - Oauth2 - 2 (App 등록) (0) | 2018.10.13 |