웹앱프로젝트/Java

[JWT] com.auth0 vs io.jsonwebtoken 어떤 것을 사용할 것이냐?

Minah Park 2022. 9. 5. 00:28
반응형

JWT를 구현하기 위해 JWT 공식사이트(https://jwt.io/libraries?language=Java)에 들어가서 확인하는 중에, 발견한 것이 Java에서 사용할 경우, 여러가지의 라이브러리가 있었는데, 내가 알아본 예제들은 대부분, io.jsonwebtoken 을 사용했거나, ,com.auth0을 사용했다. 그래서 그 둘의 차이를 알아봤다.

반응형

Auth0 이란?

이름에서도 알 수 있다시피, authentication과 authorization에 관한 application 이다. 

어떤 경우에 Auth0을 사용할 수 있냐 :

- JavaScript 로 front-end app을 만들고, API의 access를 안전하게 하고 싶다면 사용 가능하다.
- SAML로 접근, 권한 설정을하는 web app을 만든다. 
SAML (Security Assertion Markup Language) 프로토콜은 open-standard, xml-based 프레임워크 에서의 authentication 과 authorization을 비밀번호 없이 관리할 수 있다. Auth0은 SAML 을 서포트해준다. 
- 사용자가 비밀번호가 아닌 이메일이나 SMS 로 보내진 one-time codes로 로그인하게 하고 싶다
.

여기서, Auth0 을 검색할때마다 OAuth 도 같이 나오는데, 차이가 뭔지 보면,

OAuth 2.0: 모든 소프트웨어(windwos, mobile 또는 web)의 인증을 위한 기준 또는 프로토콜
Auth0:  OAuth 2.0 프로토콜을 사용, 구현하는 소프트웨어 상품

즉, Auth는 OAuth 의 구현체 라고 나는 이해했다.

그래서, 알아본 OAuth

OAuth 란,
- google, github, 카카오톡 등 서비스에 인증을 맡기고, 접근 권한 관리만을 수행하는 인증방식

https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow


JJWT는 JVM이 제공하는 JWT 토큰 생성  JWT 토큰 파싱, 검증을 해주는 라이브러리 입니다.

그래서, 결국 나는 JJWT를 이용할 것이다. 왜? 아이디와 비번으로 로그인을 구현할 것이기때문이다.

반응형