OpenID와 Oauth 모두 인증을 위한 오픈 스탠더드 프로토콜로, 이를 이용하면, Facebook과 같은 인터넷 서비스의 기능을 다른 어플리케이션 등에서도 사용할 수 있다.


OAuth 사용 이전에도 다른 어플리케이션에 사용자의 아이디와 암호가 노출되지 않도록 하는 API 접근 위임이 가능한 여러 접근 방법이 있었지만 서로 통일되어있지 않았었고, 표준으로써 제정된 것이 OpenID와 Oauth 인증방식이다.


 OpenID와 Oauth 방식은 몇가지 공통점과 차이점을 갖고 있다. 일단 알아야 할 것은 두방식 모두 로그인과는 조금 다른 권한이라는 것을 의미하는 것이다.


 그 중에서도 OpenID의 주요 목적이 인증(Authentication)이라면 OAuth의 주요 목적은 허가(Authorization)이다.


 OpenID는 Login과는 다르지만 본질적으로 볼때는 로그인하는 행동과 같다. OpenID Provider로부터 사용자의 인증과정을 처리하며 Relying Party(여러 서비스)가 OpenID Provider에게 인증을 위임하는 것이다.


 물론 OAuth에도 인증 절차가 있지만 OAuth의 근본적인 목적은 해당 API를 사용할 수 있는 권한이 있는 사용자인지를 확인하는 것이다. 물론 OAuth를 사용자 인증의 방법으로 사용할 수는 있지만 근본적은 목적 자체가 다르다.


 


 아래는 Oauth 인증과정을 그림으로 표현한 것이다.

 

<원본 : http://oauth.net/core/diagram.png>


이를 정리하면 OAuth의 인증과정은 간단히 다음과 같다.


1. Request Token의 요청과 발급


2. 사용자 인증 페이지 호출


3. 사용자 로그인 완료


4. 사용자의 권한 요청 및 수락


5. Access Token 발급


6. Access Token을 이용해서 서비스 정보를 요청



OAuth 인증 방식은 단순히 기능 사용에 대한 인증을 부여하는 방식이고 그 외에 어떤 권한도 부여하지 않는다.
즉 기능 사용만을 위한 최소한의 효율적인 보안을 유지하는 방식이다.

OAuth 방식을 사용하면, 실제 보안 채널을 유지하는 것보다 개발 비용과 운영 비용을 줄이는 효과가 있으며 서비스적인 입장으로써는 타서비스에 연동함으로써 유저의 진입을 좀 더 쉽게 기획할 수도 있다.
이러한 비용적 효율성들덕분에 OAuth 인증 방식으로 패러다임이 많이 전환되어있는 추세이다.


출처 : 

https://d2.naver.com/helloworld/24942 

http://oauth.net

+ Recent posts