OAuth 프로토콜이란?
웹 서비스를 개발할 때 인증 과정은 가장 중요한 요소중 한가지 이다.
인증은 보안에 있어서 가장 핵심적인 문제이기 때문에, 고급 개발자가 아니고서는 잘 다룰 수 없다.
그리고 고급 개발자 역시 많은 고민을 해야한다.
OAuth 는 이러한 개발자의 고민을 해결해줄수가 있다.
요즘 우리가 사용하는 대다수의 웹 서비스는 로그인 시 외부 소셜 계정을 기반으로 간편하게 인증하는 인증 서비스를 제공하고
카카오, 구글, 페이스북 등 자신이 해당 플렛폼의 계정을 갖고만 있다면 손쉽게 로그인이 가능합니다.
해당 내용은 아래 참고포스팅에 예제가 있으니 참고 바란다.
이렇게 Third-Party 프로그램(참고 포스팅 참고) 이 Client를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임받는 방식을 OAuth 이라고 한다.
자세한 순서는 아래와 같다.
사용자는 한번의 인증절차로 다른 웹서비스를 이용할때 아이디/패스워드의 개인정보를 전송하지 않고도 자신의 접근 또는 기타 권한을 부여할 수 있도록 하는 것
1. google 아이디로 특정 사이트를 이용하게 되는 경우 사용자는 google에 로그인 하고 특정 사이트에 접속하면 특정 사이트에서는 google로 사용자 접근권한 요청을 보낸다.2. 그러면 사용자는 google의 화면으로 해당 사이트에서 접근하려고 하니 허용하시겠습니까 라는 메세지의 화면을 보게 되고 사용자가 승인 할경우 특정 사이트를 이용할 수 있게 된다.
이처럼 사용자는 특정 사이트에 회원가입 또는 개인정보를 따로 저장하지 않아도 google 로그인 하나만으로도 이용할 수 있게 되는데 이런 방식이 가능한것은 oAuth인증방식 때문이다.
oauth2.0 과의 차이
비교 | OAuth1.0 | OAuth2.0 |
참여자 구분 | - 이용자 - 소비자 - 서비스 제공자 |
- 자원 소유자 - 클라이언트 - 권한 서버 - 자원 서버 |
토큰 | - 요청 토큰(Request Token) - 접근 토큰(Access Token) |
- 접근 토큰(Access Token) - 재발급 토큰(Refresh Token) |
유효기간 | 접근 토큰의 유효기간 없음 | - 접근 토큰 유효기간 부여 - 만료 시 재발급 토큰 이용 |
클라이언트 | 웹 서비스 | 웹, 앱 등 |
참고 포스팅
https://thenicesj.tistory.com/81
https://thenicesj.tistory.com/360
'IT > Knowledge' 카테고리의 다른 글
Atlassian 이란? (22) | 2024.07.21 |
---|---|
SSO란? (oAuth와 SSO의 차이) (14) | 2024.07.15 |
핀테크(FinTech) (9) | 2024.07.10 |
노코드(no-code) / 로코드(low-code) (14) | 2024.07.09 |
Bitbucket 이란? (15) | 2024.07.08 |
댓글