ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • OAuth
    iOS 2021. 3. 22. 18:32

    안녕하세요. 그린입니다!

    이번 포스팅에서는 OAuth에 대해 개념을 알아보겠습니다😃

    OAuth란?

     : "위키백과에는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 본인의 정보에 대해 웹사이트/앱의 접근 권한을 부여할 수 있는 공통적인 수단" 이라고 표기되어 있습니다.

     

    너무 말이 어렵습니다😭

    제가 이해한대로 조금 쉽게 해석해보겠습니다.

     : OAuth 전에는 사용자 인증방식에 대한 표준이 없었습니다.

     기본적인 아이디 및 패스워드를 통한 인증으로 보안상 취약하여 여러 회사에서는 인증을 위해 가지각색의 인증 시스템을 사용하였습니다.

    만약 써드파티 개발자들이 구글/페북/트위터/네이버 등의 계정으로 로그인을 하고 인증을 받기 위해서는 표준화된 인증 표준이 필요합니다.

    이에 OAuth라는 인증표준이 생겼습니다!!🥳

     

    예를들어 정리하자면, 제가 끝내주는 앱을 개발했습니다. 앱을 사용하는 사용자들이 해당 앱에서 공룡기업인 구글/페북 등의 기존 아이디를 통해 로그인을 하고 싶어합니다. 그러면 저는 우선 구글/페북 기업에 인증받을 수 있는 권한을 요청하고 부여받아 앱에 심어야합니다.

    이렇게되면 사용자는 굳이 제 앱에 새로 가입하지 않아도 되고 구글/페북의 아이디,비밀번호를 직접 알려주지 않아도 됨으로 더 안전하고 편리하게 됩니다.

    이렇게 된다면 구글/페북 같은 공룡기업들은 자신의 플랫폼에 데이터가 더 쌓이고 활용해서 좋고 저같은 써드파티 앱 개발자들은 더 편하게 사용자들을 끌어들일 수 있고 사용자는 새로 가입하거나 할 필요없이 편리하게 앱을 사용할 수 있는 1석 3조의 효과가 되는것입니다.

     

    이러한것을 가능하게 해주는 인증 표준이 OAuth라고 생각하면 됩니다☺️

    OAuth를 왜 사용하는데?!

     : OAuth라는 표준된 인증을 공유하면 여러 앱끼리 별도 인증이 불필요합니다.

     -> 즉 여러앱에서 하나의 인증으로 상호 연동 지원이 됩니다. (해당 앱에서 타 앱의 비밀번호를 넘겨주지 않아도 권한을 위임 받을 수 있음!!)

    OAuth의 버전

     : OAuth는 기존 1.0a에서 현재 2.0까지 보완시키며 발전해왔으며 현재는 대부분의 인터넷 서비스 기업에서 2.0을 사용하고 있습니다.

    OAuth의 용어

     1) 사용자(user): 서비스 제공자(인터넷 서비스 기업, 소위 공룡기업)과 소비자(써드파티 앱)을 사용하는 계정을 가진 개인

     2) 소비자(consumer): OAuth를 사용하여 서비스 제공자에게 접근하는 웹 및 앱 (써드파티 앱)

     3) 서비스 제공자(service provide): OAuth를 통해 접근에 대한 권한을 지원하는 웹 앱 (Open API 제공 서비스를 하는 구글/페북 등의 인터넷 서비스 기업)

     4) 소비자 비밀번호(consumer secret): 소비자가 자신임을 인증하는 키 (써드파티 앱에게 구글/페북 같은곳에서 제공한 인증 패스워드)

     5) 요청 토큰(request token): 소비자가 사용자에게 접근권한 인증을 받기 위한 요청 정보 (써드파티 앱에서 구글/페북 같은곳에 사용자 정보를 쓰게 요청)

     6) 접근 토큰(access token): 요청 토큰 인증 소비자를 통해 데이터에 접근하기 위한

     --> 토큰을 이용하여 사용자의 아이디 및 패스워드를 직접 알 필요가 없음

    OAuth 인증방식

     1) 소비자 -> 서비스제공자에 요청 토큰 요청

     2) 서비스제공자 -> 소비자에 요청 토큰 발급

     3) 소비자가 사용자를 서비스제공자로 이동 (사용자 인증 수행)

     4) 서비스제공자가 사용자를 소비자로 이동

     5) 소비자가 접근 토큰 요청

     6) 서비스제공자가 접근 토큰 발급

     7) 접근 토큰을 이용해 소비자에서 사용자 정보 접근

    OAuth의 Auth

     : Auth는 Authentication(인증)이라는 뜻과 Authorization(허가)라는 뜻의 두가지 의미를 모두 내포하고 있음

     -> 'XX앱에서 어떤 정보나 서비스에 사용자의 권한 접근을 허용 하시겠습니까?' 라는 의미

     

    [참고자료]

    야곰의 iOS-StartCamp

    https://ko.wikipedia.org/wiki/OAuth

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

    https://opentutorials.org/course/3405

    'iOS' 카테고리의 다른 글

    Localization  (0) 2021.03.25
    User Notification (2)  (0) 2021.03.23
    User Notifications  (0) 2021.03.18
    View Drawing Cycle  (0) 2021.03.15
    iOS File System  (0) 2021.02.25
Designed by Tistory.