본문 바로가기
TIP

유저 인증 - OAuth2

by GREEN나무 2025. 3. 24.
728x90

OAuth2

외부 애플리케이션이 사용자의 민감한 인증 정보를 직접 다루지 않고, 제한된 권한만을 위임받아 데이터를 안전하게 접근할 수 있도록 하는 인증/인가 프레임워크입니다.


1. 기본 개념 및 역할

  • Resource Owner (자원 소유자): 자신의 데이터 소유자(즉, 사용자).
  • Client (클라이언트): 사용자 데이터를 접근하려는 애플리케이션(예: 게임 커뮤니티 앱).
  • Resource Server (자원 서버): 사용자의 데이터를 보관하는 서버(예: 구글, 네이버).
  • Authorization Server (인증 서버): 사용자의 동의를 받고 액세스 토큰을 발급하는 서버.

2. OAuth2 동작 방식 (Authorization Code Flow 예시)

  1. 사용자 승인:
    • 사용자가 "구글 계정으로 로그인" 버튼을 클릭하면 클라이언트는 인증 서버로 리디렉션합니다.
  2. 인증 및 동의:
    • 사용자는 인증 서버에서 로그인 후 앱이 요청한 권한을 확인, 동의합니다.
  3. Authorization Code 발급:
    • 인증 서버가 리디렉션 URI에 코드(Authorization Code)를 포함시켜 전달합니다.
  4. Access Token 요청 및 발급:
    • 클라이언트는 받은 코드를 이용해 액세스 토큰(및 필요시 리프레시 토큰)을 요청, 발급받습니다.
  5. 보호된 리소스 접근:
    • 클라이언트는 액세스 토큰을 이용해 자원 서버에서 사용자의 데이터를 안전하게 요청합니다.

3. OAuth2의 장점

  • 비밀번호 미노출: 사용자 비밀번호 대신 토큰을 사용하여 보안 유지
  • 권한 범위 제한: 사용자가 동의한 범위 내에서만 데이터 접근
  • 토큰 기반 접근: 토큰 만료 시간을 통해 추가 보안 강화

4. 다양한 권한 부여 방식

  • Authorization Code Grant: 가장 일반적이며, 보안성이 높음
  • Implicit Grant: 클라이언트(특히 브라우저 기반)에서 간편하게 사용
  • Resource Owner Password Credentials Grant: 자원 소유자의 직접 자격증명 사용 (내부 애플리케이션에 적합)
  • Client Credentials Grant: 클라이언트 자체의 자격증명으로 액세스 토큰 획득

참고


OAuth 2.0 동작 방식의 이해|작성자 MDS인텔리전스 : https://blog.naver.com/mds_datasecurity/222182943542

https://developers.google.com/identity/protocols/oauth2?hl=ko

'TIP' 카테고리의 다른 글

게임화면 크기 설정  (1) 2025.04.07
플렛폼이란  (0) 2025.04.03
연결된 포트 끊기  (0) 2025.03.10
깃헙 기본 브릿지 바꾸기  (0) 2025.02.12
터미널로 gitHub 커밋하기  (0) 2025.02.12