프로그래밍/Etc

OAuth 란?

가라멜 2021. 2. 6. 16:56
반응형

OAuth 란?

인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 잇는 공통적인 수단으로서 사용되는,
접근 위임을 위한 개방형 표준.
이 인증을 이용하면 해당 인증을 공유하는 애플리케이션끼리는 별도의 인증이 필요 없다.

<관련 용어>

  • user(사용자) : 서비스 제공자와 소비자를 사용하는 계정을 가지고 있는 개인
  • consumer(소비자) : Open API 를 이욯하여 개발된 OAuth를 사용하여 서비스 제공자에게 접근하는 웹사이트 또는 어플리케이션
  • service provider(서비스 제공자) : OAuth를 통해 접근을 지우너하는 웹 애플리케이션
  • consumer secret(소비자 비밀번호) : 서비스 제공자에서 소비자가 자신임을 인증하기 위한 키
  • request token(요청 토큰) : 소비자가 사용자에게 접근권한을 인증받기 위해 필요한 ㅈ어보가 담겨잇으며 후에 접근 토큰으로 변환
  • access token(접근 토큰) : 인증 후에 사용자가 서비스 제공자가 아닌 소비자를 통해서 보호된 자원에 접근하기 위한 키를 포함한 값

<인증 방식>
1.소비자가 서비스제공자에게 요청 토큰 요청
2. 서비스제공자가 소비자에게 요청 토큰 발급
3. 소비자가 사용자를 서비스제공자로 이동시키고, 사용자 인증 수행
4. 서비스제공자가 사용자를 소비자로 이동
5. 소비자가 접근 토큰을 요청한다.
6. 서비스제공자가 접근 토큰을 발급한다.
7. 발급된 접근토큰을 이용하여 소비자에서 사용자 정보에 접근한다.

<OAuth 2.0>

OAuth 1.0은 웹 애플리케이션이 아닌 애플리케이션에서는 사용하기 어렵다. 따라서 OAuth 1.0의 단점을 보완하기 위하여 OAuth 2.0이 사용된다.

OAuth 2.0은 다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜이다.

<관련 용어>

  • Resource Owner : 일반사용자
  • Client : 클라이언트, 구글/페이북등의 아이디로 로그인이 가능한 제 3의 서비스
  • Resource Server : API 서버, 구글/페이스북/네이버 등
  • Authorization Server : 권한 부여 서버, 로그인을 통해 인증 후 권한을 부여하는 서버
  • Authentication Server : 인증 서버, 실제로 로그인 서비스를 제공하는 서버

<인증 방식의 종류>

  • Authorization Code Grant Tyep(권한 부여 코드 승인 타입) : 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할 때 사용
  • Implicit Grant Type(암시적 승인 타입) : 권한코드 교환 단계 없이 액세스 토큰을 즉시 반환받아 이를 인증에 이용
  • Resource Owner Password Credentials Grant Type(리소스 소유자 암호 자격 증명 타입) : 클라이언트가 암호를 사용하여 액세스 토큰에 대한 사용자의 자격증명을 교환
  • Client Credentials Grant Type(클라이언트 자격 증명 타입) : 클라이언트가 컨텍스트 외부에서 액세스 토큰을 얻어 특정 리소스에 접근을 요청할때 사용

<출처 및 참고>
https://ko.wikipedia.org/wiki/OAuth
https://d2.naver.com/helloworld/24942
https://blog.naver.com/pjok1122/221583426424
https://meetup.toast.com/posts/105
https://cheese10yun.github.io/oauth2/

반응형

'프로그래밍 > Etc' 카테고리의 다른 글

OpenStack 이란?  (0) 2021.02.10
HiperVisor 란?  (0) 2021.02.08
SSO 란?  (0) 2021.02.05
[Seminar]매일 15분 전공 스터디 3기 후기  (0) 2019.04.04
[Seminar]Project 100..  (0) 2019.03.18