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
- typescript
- OSI7계층
- 장고초기세팅
- westagram
- on_delete
- TypeError: this.boardRepository.createBoard is not a function
- docker
- pm2
- 스코프
- crud2
- wecode
- nodeJS
- manytomanyfield
- status code
- 트랜잭션
- 프로미스
- django westagram
- Django
- 노드
- javascript
- node
- 실행 컨텍스트
- bcrypt
- 호이스팅
- async/await
- Jest
- 자바스크립트
- rebase
- JWT
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 |