728x90
OAuth2
외부 애플리케이션이 사용자의 민감한 인증 정보를 직접 다루지 않고, 제한된 권한만을 위임받아 데이터를 안전하게 접근할 수 있도록 하는 인증/인가 프레임워크입니다.
1. 기본 개념 및 역할
- Resource Owner (자원 소유자): 자신의 데이터 소유자(즉, 사용자).
- Client (클라이언트): 사용자 데이터를 접근하려는 애플리케이션(예: 게임 커뮤니티 앱).
- Resource Server (자원 서버): 사용자의 데이터를 보관하는 서버(예: 구글, 네이버).
- Authorization Server (인증 서버): 사용자의 동의를 받고 액세스 토큰을 발급하는 서버.
2. OAuth2 동작 방식 (Authorization Code Flow 예시)
- 사용자 승인:
- 사용자가 "구글 계정으로 로그인" 버튼을 클릭하면 클라이언트는 인증 서버로 리디렉션합니다.
- 인증 및 동의:
- 사용자는 인증 서버에서 로그인 후 앱이 요청한 권한을 확인, 동의합니다.
- Authorization Code 발급:
- 인증 서버가 리디렉션 URI에 코드(Authorization Code)를 포함시켜 전달합니다.
- Access Token 요청 및 발급:
- 클라이언트는 받은 코드를 이용해 액세스 토큰(및 필요시 리프레시 토큰)을 요청, 발급받습니다.
- 보호된 리소스 접근:
- 클라이언트는 액세스 토큰을 이용해 자원 서버에서 사용자의 데이터를 안전하게 요청합니다.
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 |