애초에 모던 애플리케이션이 Stateless 애플리케이션인데 오히려 State를 더 늘려서 확장성을 없애는 방식으로 만드냐...
http only, secure 쿠키에다가 origin도 설정해서 탈취될 일이 없도록 하는게 맞다고 생각함 ㅇㅇ
탈취된 것을 알아채도록 평소 접속하는 곳이 아니라든지 그런걸 감지하든지
아니면 webauthn 써서 2FA하든지...
모던 애플리케이션의 장점을 버리라고 하는게 너무 답답하다..
댓글 20
이게맞지
익명(117.111)2022-07-06 15:37
이게맞지
익명(49.165)2022-07-06 15:49
애초에 글에 리프레시 토큰을 저장하니 마니 하는거면 그냥 단순히 내 서비스에 대한 로그인을 클레임 기반으로 만드는게 아니라
소셜로그인 같은 서드파티 로그인 상황일텐데
댓글보면 그냥 내 서비스 하나만 달랑 로그인하는 상황에 리프레시 토큰을 발행하니 마니 하고있으니까 숨넘어가지
야딩조무사(cir6174)2022-07-06 16:08
답글
소셜로그인은 External OAuth 서비스라고 하는게 맞지 않을까 ㅇㅇ..
jwt 자체는 세션을 대체하려고 만든건데
익명(106.101)2022-07-06 16:12
답글
내가 답답했던게 그거임 그냥 세션 쓰기 싫으면 jwt를 쓰건 뭘 쓰건 클레임 기반 인증만 구현하면 되는데
여기에 억세스/리프레시를 나누는 순간 서드파티 끼고 장난질하는건데
그걸 서드파티 없는 로그인에서 굳이 토큰을 나눠가면서 쓰겠다고 저러고 있으니까
야딩조무사(cir6174)2022-07-06 16:14
답글
걍 jwt=소셜 로그인 이렇게 이해해서 발생한 잘못된 상황 같은데..
jwt는 소셜로그인이라고 이해하면 안될듯
익명(106.101)2022-07-06 16:14
답글
애초에jwt만 쓴거면 상관이 없지 그냥 클레임 기반으로 쓴걸수도 있으니까
근데 글 본문에 리프레시 토큰 언급이 있으니까 소셜로그인 같은 상황으로 본거고
야딩조무사(cir6174)2022-07-06 16:15
답글
내 주변은 jwt라 말하면 대부분 소셜 로그인보단 토큰 방식 자체로 이해할 듯 ㅇㅇ
그냥 이해한 언어 자체가 달랐던 거라 아쉽기만 하네 ㅇㅇ
익명(106.101)2022-07-06 16:16
답글
jwt만 있으면 그냥 클레임 기반 토큰으로만 보는건 맞음
저 글은 본문이 있어서 다른케이스였고
야딩조무사(cir6174)2022-07-06 16:17
답글
아니 근데 tq 그래서 refresh token쓴다고 왜 다 소셜로그인이라고 생각함 님이 걍 너무 과다하게 생각한다 같음
익명(106.101)2022-07-06 16:21
답글
나도 일반적인 상황이면 이렇게 안하는데
저 글에선 그냥 서드파티 확정하고 보는게 맞지 않음?
애초에 DB에 저장하니 마니 고민하는게 일단 서버가 들고있는 상황인데
거기에 서드파티 없이 일반 로그인 얘기하면
그걸 다시 클라이언트 쿠키에 재전송하라는 얘기가 되는건데
야딩조무사(cir6174)2022-07-06 16:29
답글
그냥 질문한 사람 와서 상황을 좀 더 알려주는게 맞는듯
내가 넘겨짚은건 맞는데 합리적인 선에서 넘겨짚었다 생각함
야딩조무사(cir6174)2022-07-06 16:29
답글
그래요.. 사람마다 기준이 있겠지
질문자가 상황 생략한것이 문제긴 해
익명(106.101)2022-07-06 16:31
답글
지혼자 넘겨짚고 풀발하더니 이제와선 그래도 난 합리적이었음ㅇㅇ 이러고있네;;
ㄱㄷㅁ(175.223)2022-07-06 20:27
답글
대체 리프레쉬 토큰이랑 3rd party oidc랑 뭔 상관임. jwt, 리프레쉬 토큰은 그냥 인증도구고 oauth2(oidc)는 인증 매커니즘임. 니가 주장했던게 토큰을 쿠키에 저장하냐 마냐에 대한 부분이었는데. 토큰에 유저의 서버에서 접근권한에 필요한 클레임이 있는데 이걸 저장을 안 해놓으면 어떻게 엑세스 토큰을 발급받을 껀데? 니 말마따나 쿠키에 저장 될 필요가 없으면 토큰에 유효기간은 왜있음? JWT는 탈취해도 상관 없는 없는데에 의미가 있는거임. 제발 개소리 늘어놓기 전에 공부좀 하자. https://datatracker.ietf.org/doc/html/rfc6749
dd(183.100)2022-07-07 08:06
답글
모든케이스에서 그런게 아니라
3rd 파티 인증 플로우에서 내 서비스에서 서드파티에 접근할 토큰이 온 케이스에 얘기한거라니까
이런경우는 클라이언트가 접근한 유저가 아니라 내 서버가 되는건데 그 상황에 유저 쿠키에 넣지 말라는건데
뭔 다른케이스를 가져와서 화를내고있음 - dc App
야딩조무사(cir6174)2022-07-07 11:53
답글
애초에 리프레시 토큰을 발급할때 서버에 저장하니 마니 하는게
내가 토큰을 발행한 주체면 애초에 질문할게 뭐 있음
이상황에 브라우저에 저장하면 내 서비스는 그냥 프록시 말고 더 됨? - dc App
야딩조무사(cir6174)2022-07-07 12:00
답글
위에 리프레시/억세스 나눠진 순간 oidc라는것처럼 적었는데 이건 내가 잘못적은듯
원 글에서 리프레시 토큰을 저장하니 마니 하는게 저 케이스라고 말하고 싶었음 - dc App
야딩조무사(cir6174)2022-07-07 12:16
서버 - 클라이언트 이렇게 둘만 있으면 글 내용처럼 stateless + 상황에 따라 블랙리스트 이게 맞지
야딩조무사(cir6174)2022-07-06 16:09
보통 JWT 하면 stateless한 거 말하는 게 맞지 stateful할거면 액세스 리프레시 나눌 이유가 있나
이게맞지
이게맞지
애초에 글에 리프레시 토큰을 저장하니 마니 하는거면 그냥 단순히 내 서비스에 대한 로그인을 클레임 기반으로 만드는게 아니라 소셜로그인 같은 서드파티 로그인 상황일텐데 댓글보면 그냥 내 서비스 하나만 달랑 로그인하는 상황에 리프레시 토큰을 발행하니 마니 하고있으니까 숨넘어가지
소셜로그인은 External OAuth 서비스라고 하는게 맞지 않을까 ㅇㅇ.. jwt 자체는 세션을 대체하려고 만든건데
내가 답답했던게 그거임 그냥 세션 쓰기 싫으면 jwt를 쓰건 뭘 쓰건 클레임 기반 인증만 구현하면 되는데 여기에 억세스/리프레시를 나누는 순간 서드파티 끼고 장난질하는건데 그걸 서드파티 없는 로그인에서 굳이 토큰을 나눠가면서 쓰겠다고 저러고 있으니까
걍 jwt=소셜 로그인 이렇게 이해해서 발생한 잘못된 상황 같은데.. jwt는 소셜로그인이라고 이해하면 안될듯
애초에jwt만 쓴거면 상관이 없지 그냥 클레임 기반으로 쓴걸수도 있으니까 근데 글 본문에 리프레시 토큰 언급이 있으니까 소셜로그인 같은 상황으로 본거고
내 주변은 jwt라 말하면 대부분 소셜 로그인보단 토큰 방식 자체로 이해할 듯 ㅇㅇ 그냥 이해한 언어 자체가 달랐던 거라 아쉽기만 하네 ㅇㅇ
jwt만 있으면 그냥 클레임 기반 토큰으로만 보는건 맞음 저 글은 본문이 있어서 다른케이스였고
아니 근데 tq 그래서 refresh token쓴다고 왜 다 소셜로그인이라고 생각함 님이 걍 너무 과다하게 생각한다 같음
나도 일반적인 상황이면 이렇게 안하는데 저 글에선 그냥 서드파티 확정하고 보는게 맞지 않음? 애초에 DB에 저장하니 마니 고민하는게 일단 서버가 들고있는 상황인데 거기에 서드파티 없이 일반 로그인 얘기하면 그걸 다시 클라이언트 쿠키에 재전송하라는 얘기가 되는건데
그냥 질문한 사람 와서 상황을 좀 더 알려주는게 맞는듯 내가 넘겨짚은건 맞는데 합리적인 선에서 넘겨짚었다 생각함
그래요.. 사람마다 기준이 있겠지 질문자가 상황 생략한것이 문제긴 해
지혼자 넘겨짚고 풀발하더니 이제와선 그래도 난 합리적이었음ㅇㅇ 이러고있네;;
대체 리프레쉬 토큰이랑 3rd party oidc랑 뭔 상관임. jwt, 리프레쉬 토큰은 그냥 인증도구고 oauth2(oidc)는 인증 매커니즘임. 니가 주장했던게 토큰을 쿠키에 저장하냐 마냐에 대한 부분이었는데. 토큰에 유저의 서버에서 접근권한에 필요한 클레임이 있는데 이걸 저장을 안 해놓으면 어떻게 엑세스 토큰을 발급받을 껀데? 니 말마따나 쿠키에 저장 될 필요가 없으면 토큰에 유효기간은 왜있음? JWT는 탈취해도 상관 없는 없는데에 의미가 있는거임. 제발 개소리 늘어놓기 전에 공부좀 하자.
https://datatracker.ietf.org/doc/html/rfc6749
모든케이스에서 그런게 아니라 3rd 파티 인증 플로우에서 내 서비스에서 서드파티에 접근할 토큰이 온 케이스에 얘기한거라니까 이런경우는 클라이언트가 접근한 유저가 아니라 내 서버가 되는건데 그 상황에 유저 쿠키에 넣지 말라는건데 뭔 다른케이스를 가져와서 화를내고있음 - dc App
애초에 리프레시 토큰을 발급할때 서버에 저장하니 마니 하는게 내가 토큰을 발행한 주체면 애초에 질문할게 뭐 있음 이상황에 브라우저에 저장하면 내 서비스는 그냥 프록시 말고 더 됨? - dc App
위에 리프레시/억세스 나눠진 순간 oidc라는것처럼 적었는데 이건 내가 잘못적은듯 원 글에서 리프레시 토큰을 저장하니 마니 하는게 저 케이스라고 말하고 싶었음 - dc App
서버 - 클라이언트 이렇게 둘만 있으면 글 내용처럼 stateless + 상황에 따라 블랙리스트 이게 맞지
보통 JWT 하면 stateless한 거 말하는 게 맞지 stateful할거면 액세스 리프레시 나눌 이유가 있나