-
Oauth는 인터넷 사용자가 구글, 카카오, 네이버 같은 SNS 계정을 통해
다른 서비스에 로그인할 수 있도록 하는 개방형 표준입니다.이를 통해 사용자는 자신의 계정 정보를 직접 공유하지 않고, 다른 서비스에 특정 권한을 부여할 수 있습니다.
예를 들어, 구글 로그인 기능을 사용할 때 사용자가 구글의 비밀번호를 제공하지 않고,
계정의 일부 접근 권한을 얻을 수 있습니다.| 안전하지 않은 인증 방식
만약 사용자가 서비스에 자신의 SNS 아이디와 비밀번호를 직접 입력하고,
서비스가 이를 통해 SNS에 직접 로그인하는 방식은
사용자의 계정 정보가 서비스 제공자에게 직접 노출되기 때문에 보안적인 측면에서 매우 위험합니다.이는 사용자의 계정 정보가 유출될 위험이 있으며,
이는 심각한 개인정보 침해로 이어질 수도 있습니다.| Oauth를 통한 안전한 인증 방식
Oauth에서는 이러한 문제를 해결하기 위해 Access Tocken을 사용합니다.
사용자가 자신이 설정한 권한에 따라, 서비스가 자신의 정보에 접근할 수 있도록 합니다.
이 과정에서 사용자의 계정 정보를 직접 공유하지 않으므로, 보안성이 향상됩니다.
| Oauth 2.0의 주요 구성 요소
Oauth 2.0은 Oauth의 발전된 버전으로, 더 안전하고 유현한 인증 방식을 제공합니다.
또한, 주요 구성 요소는 다음과 같습니다.
- Resource Owner
서비스를 사용하고자 하는 사용자로, 대부분 개인 정보(Resource)의 실제 소유자입니다.
- Client
특정 개인 혹은 회사가 만든 서비스로, 일반적으로 웹이나 앱 서버입니다.
여기서 Resource Server(구글, 카카오, 네이버 등)의 입장에서는 Client이기 때문에 Client라고 합니다.
- Resource Server
사용자의 개인정보를 보유하고 있는 서버(구글, 카카오, 네이버 등)를 의미합니다.
Client는 Access Token을 이용해 Resource Server로 사용자의 개인 정보를 얻습니다.
- Authorization Server
실질적으로 권한 부여 기능을 담당하는 서버입니다.
사용자로부터 SNS계정 정보를 받아 Authorization Code를 발급하고,
Client는 해당 코드를 사용해 Access Token을 받게 됩니다.| Oauth 2.0의 동작 예시
Oauth 2.0의 인증 과정은 크게 사용자 인증, Authorization Code 발급, Access Token의 발급으로 이루어집니다.
'얇게 공부한 CS' 카테고리의 다른 글
JWT(JSON Web Token) 란 (0) 2024.03.01 HTTP(HyperText Transfer Protocol) 이해하기 (0) 2024.02.26 REST API (0) 2024.02.25 명령어의 구조 (0) 2024.02.24 쿠키(Cookie)와 세션(Session) (0) 2024.02.23