Hah-nna / Tech_Interview

0 stars 0 forks source link

[network] JWT와 OAuth의 차이 #36

Open young-02 opened 9 months ago

young-02 commented 9 months ago

OAuth와 JWT는 웹 애플리케이션에서 일반적으로 사용되는두가지 보안 메커니즘이다. 둘 다 인증 기능을 제공하지만 접근 방식과 사용사례가 다르다.

OAuth

OAuth는 자격 증명을 노출하지 않고 타사 애플리케이션이 사용자의 리소스에 액세스할 수 있도록 하는 개방형 인증 표준이다. OAuth 흐름에는 리소스 소유자(사용자),클라이언트(애플리케이션)및 권한 부여 서버 이 세가지가 관련된다. 클라이언트는 Authorization Server를 통해 리소스 소유자에게 Authorization(권한부여)을 요청하고, 승인이 나면 클라이언트는 리소스에 접근하기 위한 Access Token을 받는다. OAuth는 일반적으로 사용자가 Facebook또는 Google자격증명을 사용하여 애플리케이션에 로그인할 수 있는 소셜 미디어 로그인에 사용된다.

JWT

JWT(JSON Web Token)는 두 당사자 간에 전송될 클레임(Clam)을 표현하는 URL 안전의 컴팩트한 수단이다. header, payload, signature의 세 부분으로 구성된다. 헤더는 토큰 유형과 서명 알고리즘을 지정하고, 페이로드에는 클레임이 포함되며, 서명은 토큰의 무결성을 확인하는데 사용된다. JWT는 일반적으로 사용자가 애플리케이션에 로그인하고 JWT를 응답으로 받는 인증에 사용된다. 그런 다음 JWT를 사용하여 애플리케이션 내의 보호된 리소스에 액세스할 수 있다.

OAuth와 JWT의 차이점

OAuth와 JWT는 서로 다른 목적으로 사용되며 사용 사례도 다르다. OAuth는 권한 부여 (authorization)에 사용되고 JWT는 인증(authentication)에 사용된다. OAuth는 타사 애플리케이션에 리소스에 대한 액세스 권한을 부여하는데 사용되는 반면, JWT는 애플리케이션 내의 보호된 리소스에 액세스 하는데 사용 된다. OAuth에는 인증 서버가 필요하지만 JWT에는 그렇지 않다. OAuth 흐름에는 여러 단계와 당사자가 포함되는 반면, JWT흐름은 더 간단하고 두 당사자만 포함한다.