인가(Authorization)

hihihiha2·2022년 6월 13일
0

인가란

Authorization은 유저가 요청하는 request를 실행할 수 있는 권한이 있는 유저인가를 확인하는 절차


-저장하지 않는 http의 특징때문에 이러한 것들을 유지시켜줄 수 있는 장치가 필요함
► 인가

ex) 해당 유저는 고객 정보를 볼 수 있는 있지만 수정 할 수는 없다 등.

Authroization도 JWT를 통해서 구현 될 수 있다.
access token을 통해 해당 유저 정보를 얻을 수 있음으로 해당 유저가 가지고 있는 권한(permission)도 확인 할 수 있다.

token은 string

토큰3가지 항목으로 이루어져있다
인코딩은 암호화가 아니다. 애초에 개인정보를 담지 않기때문에 암호화를 하지 않는것.

유저id는 자체는 개인정보가 아니다. 혼자 자체로는 개인임을 식별할 수 없다.
but 개인정보가 아닌것을 가지고도 개인임을 식별할 수 있다.

헤더/내용은 인코딩만하고 암호화 x
내용: 토큰의 주인임을 알 수 있는 유저아이디, 만료시간등

Authorization 절차
Authentication 절차를 통해 access token을 생성한다. access token에는 유저 정보를 확인할 수 있는 정보가 들어가 있어야 한다 (예를 들어 user id).
유저가 request를 보낼때 access token을 첨부해서 보낸다.
서버에서는 유저가 보낸 access token을 복호화 한다.
복호화된 데이터를 통해 user id를 얻는다.
user id를 사용해서 database에서 해당 유저의 권한(permission)을 확인하다.
유저가 충분한 권한을 가지고 있으면 해당 요청을 처리한다.
유저가 권한을 가지고 있지 않으면 Unauthorized Response(401) 혹은 다른 에러 코드를 보낸다.

JWT는 키만 있으면 열어볼수있다 (암호와는 다르다)

profile
맨땅에 헤딩

0개의 댓글