dev_dbdb1114

OAuth2.0, 인증과 인가 본문

프로그래밍/server

OAuth2.0, 인증과 인가

dbdb1114 2023. 9. 12. 22:29

인증과 인가 ( Authorization, Authentication )

인증은 사용자의 신원을 검증하는 프로세스를 뜻한다. 로그인 하는 행위를 인증이라고 할 수 있다. 인증된 사용자가 어떠한 자원에 접근할 수 있는지를 확인하는 절차가 인가이다. 즉 모든 웹 사이트는 인증과 인가를 필요로 한다. 조금 더 확실히 설명하자면, 인증은 사용자의 신원을 확인하는 프로세스이고, 인가는 특정 자원이나 기능에 대한 액세스 권한을 부여하는 프로세스이다. 즉 인증 후 인가이다.

OAuth2.0이란?

OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의(FaceBook, Twitter, Google) 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. ( 위키백과 )

즉 우리가 로그인 하거나 회원가입을 할 때 우리가 직접 하는 것 보다는 우리가 이미 정보를 제공해준 서비스에서 로그인이나 회원가입을 대신 처리해주는 것이다. 예를 들어 우리가 새로운 웹 서비스에 회원가입을 하거나 로그인을 하려면 우리의 정보를 결국 입력 해줘야한다. 이 과정을 생략하기 위해서 우리가 이미 정보를 제공한 업체에서 우리의 정보를 가입하려는 서비스에 제공을 함으로써 로그인이나 회원가입을 진행하는 것이다.

역할 구분

  1. Resource Server : Client가 제어하고자 하는 자원을 보유하고 있는 서버
    1. sns로그인을 사용할 때 해당하는 sns 서비스 서버
  2. Resource Owner : 자원의 소유자 입니다.
    1. Client가 제공하는 서비스를 통해 로그인하는 실제 유저의 정보를 가진 서비스
  3. Client : Resource Server에 접속해서 정보를 가져오고자 하는 클라이언트 즉, sns 자원을 통해 지금 현재 로그인 하려는 애플리케이션

필요한 용어들

Resource Owner

사용자를 말한다. ( Resource 는 사용자 정보를 이야기 하는 것이다. )

Authorization & Resource Server

Authorization은 인가를 말한다. 인증과 인가라는 개념이 있는데 인증은 사용자의 신원을 검증하는 프로세스를 뜻한다. 인가는 인증된 사람에게 새로운 정보에 대한 접근을 허용하는 개념을 말한다.

Client

지금 로그인 하려는 새로운 애플리케이션을 말한다.
( Google이나 Facebook 등이 아닌 Google이나 Facebook을 통해 로그인 하려는 새 애플리케이션이다. )

인증 순서 ( Authorization 순서 )

  1. ResourceOwner가 Client에게 로그인 요청 ( Google 로그인 요청, Facebook 로그인 요청 등 )
  2. Client( 새로운 어플리케이션 )가 AuthorizationServer(Ex:Google서버)로 로그인 요청을 보내면 로그인 페이지를 제공 받습니다.
  3. ResourceOwner가 제공받은 로그인 페이지에 id, pw를 입력해서 AuthorizationServer로 부터 AuthorizationCode를 발급 받습니다. 직후 AuthorizationCode를 Client( 새로운 어플리케이션 )에게 전송합니다.
  4. Client는 전달받은 코드로 AuthorizationServer에 AccessToken을 요청하고 발급받은 토큰을 이용해서 AuthorizationServer로 자원을 요청합니다.
  5. Client는 응답값으로 받은 자원들을 이용해서 회원가입이나 로그인을 진행합니다.

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

MSA란 무엇인가?  (0) 2023.09.13
이미지 호스팅 서비스 Cloudinary with React  (0) 2023.09.04
JWT토큰에 대해서  (0) 2023.07.19
세션은 무엇인가?  (0) 2023.07.18
ProxyServer에 대해서  (0) 2023.07.05
Comments