250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 트랜잭션
- CORS
- django westagram
- typescript
- pm2
- javascript
- crud2
- rebase
- manytomanyfield
- wecode
- nodeJS
- 노드
- westagram
- bcrypt
- JWT
- async/await
- docker
- 실행 컨텍스트
- OSI7계층
- node
- 자바스크립트
- Jest
- on_delete
- 스코프
- 호이스팅
- status code
- Django
- 장고초기세팅
- 프로미스
- TypeError: this.boardRepository.createBoard is not a function
Archives
- Today
- Total
될때까지
((OAuth)) OAuth2.0이란? 본문
728x90
OAuth란?
OpenID Authentication의 줄임말로 인터넷 사용자들이 자신의 비밀번호를 제공하지 않고도 다른 웹사이트에 가입한 정보로 해당 애플리케이션에 접근 권한을 부여받을 수 있는 개방형 표준이다.
OAuth가 등장하기 전에는 평범하게 id와 password로 진행을 했었다.
그러다 보니 사용자는 서비스 사이트에 내 id와 비밀번호를 공개하는 것에 찝찝함을 느꼈고,
서비스 사이트는 아이디와 비밀번호가 털릴 경우 해당 보안 문제를 모두 책임져야했다.
다른 사이트는 해당 서비스 사이트를 신뢰할 수 없었기에
이에 대한 문제를 해결하고자 2007년 OAuth 1.0 초안이 발표되었고, 현재는 2.0버전이 더 많이 사용되고 있는 상태다.
OAuth 2.0 용어
- Client : Resource Server의 API를 사용해서 데이터를 가져오려고 하는 서비스, 애플리케이션(내가 개발한 사이트)
- Resource Owner : Resource Server의 계정을 소유하고있는 실제 사용자
- Resource Server : OAuth 2.0서비스를 제공하고 자원을 관리하는 구글, 페이스북, 카카오톡 같은 회사
- Authorization Server : Client가 Resource Server의 서비스를 사용할 수 있도록 인증하고 토큰을 발행해주는 서버(인증 서버)
- 사용자가 client로 서비스 접근 및 이용을 시도한다.
- client측에서 resource owner에게 인증방식 4가지 중 하나로 승인 요청을 한다.
- resource owner측에서 client측으로 인증 권한을 부여한다.
- client는 부여받은 인증 권한으로 authorization server에 access token을 요청한다.
- authorization server에서 client와 부여받은 인증 권한에 대한 유효성 검사 후 통과하면 access token을 발급한다.
- 사용자가 client로 서비스를 요청한다.
- client는 access token으로 resource server에게 API 호출한다.
- resource server는 access token 유효성 검사 후 요청에 대한 resource를 client에게 전달하고, client는 사용자에게 전달한다.
OAuth 1.0 vs OAuth 2.0
OAuth 1.0 | OAuth 2.0 | |
API 호출 인증 및 보안 | 서명 | HTTPS기본 |
클라이언트 지원 유형 | 웹 애플리케이션 만 | 웹 애플리 케이션 이용자 에이전트 애플리케이션 네이티브 애플리케이션 |
OAuth 2.0은 OAuth 1.0의 보안 문제를 개선한 버전이다. |
728x90
'학습 > 개념정리' 카테고리의 다른 글
((SoC, Layered Pattern)) 관심사의 분리, 레이어드 패턴 (0) | 2022.09.27 |
---|---|
((함수형 프로그래밍)) 프로그래밍 패러다임, 절차형 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 (1) | 2022.09.21 |
((Docker)) 도커가 뭐야? (0) | 2022.09.12 |
((git)) git flow (0) | 2022.09.05 |
((Database)) SQL, NoSQL, RDB, RDBMS 개념정리 (0) | 2022.09.04 |