과제1 - Auth Basic
1.세션의 개념을 이해할 수 있다.
-세션 id와 세션 객체의 차이에 대해 이해할 수 있다.
-세션 시크릿이 왜 필요한지 이해할 수 있다.
2.쿠키와 세션은 서로 어떤 관계이며, 각각이 인증에 있어서 어떤 목적으로 존재하는지 이해할 수 있다.
3.세션의 한계를 이해할 수 있다.
과제2 - Auth Token
4.JWT을 이용한 토큰 인증 방식을 구현할 수 있다.
-Refresh Token과 Access Token의 차이를 이해한다.
-왜 Access Token이 Refresh Token보다 짧은 주기를 갖는 지 이해한다.
5.JWT의 작동원리에 대해 이해할 수 있다.
-header, payload, signature가 각각 어떤 역할을 하는 지 이해할 수 있다.
-JWT에 salt가 필요한 이유를 이해할 수 있다.
-JWT가 어떻게 토큰의 변조를 판별하는 지 이해할 수 있다.
6.토큰 방식의 한계를 이해할 수 있다.
과제3 - Auth OAuth
7.직접 OAuth로 로그인 가능한 애플리케이션을 제작할 수 있다.
8.Oauth의 작동 방식을 이해할 수 있다.
-"브라우저" - "내 서버" - "인증 대행 서비스"간 요청/응답을 주고받는 다이어그램을 그릴 수 있다.
9.Authentication과 Authorization의 차이를 이해할 수 있다.
10.OAuth의 키워드를 설명할 수 있다.
-Authorization Code와 Access Token의 차이에 대해 이해할 수 있다.
-Authorization 서버와 Resource 서버의 차이에 대해 이해할 수 있다.
1.세션 id는 일반 id와 같이 구별을 위한 고유한 태그 또는 인증용 이름표와 같으며 세션 객체란 세션id에 종속되는 데이터 덩어리라고 볼 수 있다.
2.쿠키는 서버에서 부담을 줄이고 빠른 반응성을 위해 클라이언트(사용자)측에 데이터를 저장시키는 방식이며 세션은 서버에서 정보를 관리하지만 데이터적 부담이 큰 방식이다. 인증을 위해 중요정보는 세션으로 관리하고 민감하지 않은 정보들은 쿠키로 보관하는 등의 방법을 사용한다.
3.세션은 하나의 서버에서만 상태를 가지고 있기 때문에 분산에 불리함을 가지고 있으며 세션도 쿠키를 이용하기 때문에 세션-쿠키가 탈취될 경우 문제가 될 수 있다.
4.JWT(JSON Web Token)은 세션의 부담을 클라이언트에 떠넘기기 위해 고안되었다. 인증을 해야 정보를 주는 방식을 채택했는데 인증을 주기적으로 받자면 처리 속도도 문제고 사용자의 불편함도 있기 때문에 Refresh Token으로 긴 시간 인증을 유지(사용자가 선택한다면)할 수 있게 하고 중간중간 간편인증식으로 Access Token을 받을 수 있다.
5.JWT는 header.payload.signature로 구성되어 있으며 암호화 방식이 인코딩된 header, 유저의 정보가 인코딩된 payload, salt와 header, payload를 이용해 암호화한 signature로 구성되어있다. 서버는 일정 규칙을 가지고 변조된 토큰인지를 판별하는 데이터만 보유하면 되기 때문에 세션과는 다른 무상태성에 가까운 상태를 가진다.
6.토큰을 강제종료할 수 없기 때문에 한번 탈취되면 만료까지는 해커가 마음대로 이용할 수 있다는 점?
7.대충은 알 것 같지만 로그아웃이 안된다..
8.대충은 알겠지만 그림까지 그려가면서 하기에는 아직 헷갈리는 것 같다.
9.Authentication은 인증하는 절차를 의미하며 Authorization은 토큰을 주는 등의 권한을 부여하는 방식이다. 간단하게 말해서 Authorization으로 권한을 주고 재 접근시 Authentication을 통해 확인한다.
10.Authorization Code는 Authorization Grant의 한 타입으로 액세스 토큰을 발급받기 위한 Code를 의미하며 Access Token은 발급을 받았다는 인증서 같은 역할을 한다. 위에서 언급했던 것 처럼 Code를 통해 토큰을 발급하고 토큰을 통해 인증을 받을 수 있다.
Resource Server는 클라이언트의 요청을 수락하고 응답할 수 있는 데이터가 저장되어 있는 서버이며 Authorization Server는 토큰을 발급하 인증 서버로 사용자가 요청 후 인증할 경우 Resource Server에 토큰을 발급한다.
뭔가 9,10번은 중복느낌이 많이 나는 것 같다..
이번 과제는 세션에서도 완료가 안됬을정도로 이상한게 많았다.
로그인은 일단 포기..
'회고' 카테고리의 다른 글
프론트엔드 부트캠프(코드스테이츠) 3개월차 회고 (0) | 2022.07.20 |
---|---|
Mini Hackathon 소그룹 회고 (0) | 2022.07.19 |
학습(알고리즘) (0) | 2022.07.17 |
학습(알고리즘) (0) | 2022.07.16 |
[Backend] 인증 / 보안-2 (0) | 2022.07.15 |