OAuth
2023. 11. 12. 12:48ㆍ개인노트-개인공부
# OAuth
- OAuth 란 , Google 로그인 기능을 떠올리면 간단하다.
- 웹 서버에 Google 비밀번호를 제공하지 않고도, Google 계정의 일부 접근 권한을 부여할 수 있다.
- 실제로 많은 애플리케이션에서는 SNS(Google, Facbook 등) 간편 로그인 기능을 제공한다.
## 안전하지 않은 인증 방식 예시 (잘못된 경우)
- 먼저 예시로 아래는 안전하지 않은 SNS 로그인 방식이다.
- 아래 경우에서는 사용자가 서버에게 Google 아이디와 패스워드를 알려주어야 한다.
## Access Token 이용하기
- 사용자가 설정한 권한에 대해서만 Google 정보에 접근 할 수 있도록 한다.
- 바로 Access Token 을 이용하는 것이다.
## OAuth 2.0 구성 요소
구성요소 | 설명 |
Resource Owner | 특정한 서비스를 사용하려고 하는 사용자다. 대부분 개인정보(Resource)의 소유자(개인)를 의미한다. |
Client | 특정한 개인 혹은 회사가 만든 서비스를 의미한다. 일반적인 웹/앱 서버를 의미하지만, Client라고 부른다. 그 이유는 Resource Server (Google, Facebook 등) 등의 입장에서는 Client이기 때문이다. |
Resource Server | 사용자의 개인정보를 가지고 있는 서버(Google, Facebook 등)를 의미한다. Client는 Access Token을 Resource Server에 보내서 사용자의 개인정보를 얻는다. |
Authorization Server | 실질적으로 권한 부여 기능을 담당하는 서버다. 사용자는 자신의 SNS 계정 정보(ID, PW)를 넘겨 Authorization Code를 받는다. Client는 사용자로부터 받은 Authorization Code를 넘겨 Access Token을 받는다. |
## OAuth 2.0 동작 예시 (개발자 = Client 입장에서)
## OAuth 사용 사례 예시
1. 서비스 등록하기
- Google에 본인의 웹 사이트(서비스)를 Client로 등록한다.
- 이러한 과정에서 Client ID, Redirect URI 등의 정보를 설정한다.
2. 본인의 웹 사이트 사용자를 통해 Access Token 받기
- 사용자를 Google 로그인 페이지로 이동시킨다.
- Google이 로그인 된 사용자를 웹 사이트(Client)로 Redirect를 진행한다.
3. Client(웹 사이트)는 사용자가 Redirect 페이지로 전달한 Authorization Code를 활용
- Authorization Code를 이용하여 사용자 정보에 접근 가능한 Access Token을 받는다.
- Access Token을 Resource Server(Google 등)로 보내 인가된 사용자 정보를 얻는다.
'개인노트-개인공부' 카테고리의 다른 글
리팩토링(Refactoring) (2) | 2023.11.26 |
---|---|
JWT(JSON Web Token) (2) | 2023.11.19 |
REST API (0) | 2023.11.05 |
함수형 프로그래밍 (1) | 2023.10.30 |
개인 노트) w3schools.com - Node.js - 1 (0) | 2023.05.30 |