어떠한 어플리케이션이나 서비스를 이용할 때 이렇게 카카오톡이나 페이스북 등등..의 계정으로 로그인을 하는 경험이 있을 것이다. 어떻게 다른 서비스를 이용하는데 다른 계정으로 로그인해서 사용할 수 있을까(안전하게)? 이걸 가능하게 해주는 것이 OAuth이다.
OAuth를 살펴보기 전에 먼저 그림으로 쉽게 만나보고 알아가보자.
이렇게 3명의 참여자가 서로 서비스를 상호작용 하는 것을 보다 안전하게 도와주는 역할을 하는 것이 OAuth 이다.
사전적 의미로는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.
용어
- 사용자(user)/Resource Owner: 서비스 제공자와 소비자를 사용하는 계정을 가지고 있는 개인
- 소비자(consumer)/Client: Open API를 이용하여 개발된 OAuth를 사용하여 서비스 제공자에게 접근하는 웹사이트 또는 애플리케이션
- 서비스 제공자(service provider)/Resource Server: OAuth를 통해 접근을 지원하는 웹 애플리케이션(Open API를 제공하는 서비스)
- 소비자 비밀번호(consumer secret) : 서비스 제공자에서 소비자가 자신임을 인증하기 위한 키
- 요청 토큰(request token) : 소비자가 사용자에게 접근권한을 인증받기 위해 필요한 정보가 담겨있으며 후에 접근 토큰으로 변환된다.
- 접근 토큰(access token) : 인증 후에 사용자가 서비스 제공자가 아닌 소비자를 통해서 보호된 자원에 접근하기 위한 키를 포함한 값.
인증 방식
- 소비자가 서비스제공자에게 요청토큰을 요청한다.
- 서비스제공자가 소비자에게 요청토큰을 발급해준다.
- 소비자가 사용자를 서비스제공자로 이동시킨다. 여기서 사용자 인증이 수행된다.
- 서비스제공자가 사용자를 소비자로 이동시킨다.
- 소비자가 접근토큰을 요청한다.
- 서비스제공자가 접근토큰을 발급한다.
- 발급된 접근토큰을 이용하여 소비자에서 사용자 정보에 접근한다.
참고: 생활코딩
'정보들' 카테고리의 다른 글
칸반(KanBan) 기법 (0) | 2022.02.05 |
---|---|
스크럼(Scrum) 기법 (0) | 2022.02.04 |
애자일 모형(Agile Model) (0) | 2022.02.04 |
HTML Color Chart / HTML Color Names (0) | 2022.01.14 |