728x90
OAuth란 무엇인가?
- OAuth는 인터넷 유저들이 직접 정보를 기입하지 않고 자신이 가입한 다른 사이트의 정보에 접근 권한을 부여하는 방식으로 인증을 하는 개방형 표준 방식이다.
OAuth는 왜 하냐?
- Access Token을 발급받기 위함이다
OAuth 2.0과 1.0의 차이는?
- 1.0의 보안 문제를 개선한 것이 2.0
OAuth의 구성요소는?
- Resource Owner : 개인정보(resource) 소유자, 즉 로그인하는 유저
- Client : 어플리케이션 서버. Resource server에 요청하는 client의 역할
- Authorization Server : 권한을 부여해주는 서버
- 사용자는 ID, pW를 넘겨 authorization code를 발급받는다
- client는 authorization code를 넘겨 token을 발급 받음
- Resource Server: 유저 개인정보를 가진 어플리케이션 회사 서버(구글, 카카오 등). Client가 이 곳으로 토큰을 넘기면, 리소스 서버가 개인 정보로 응답해준다
- Access Token : 자격 증명. Authorization 서버로부터 받는다.
- Refresh Token : 자격 증명. Authorization 서버로부터 받는다.
![[../../z.assets/Screen Shot 2023-01-27 at 1.56.02 AM.jpg]]
- user -> client : 로그인 시도
- client -> user : Client ID, Redirect_URI
- user -> auth server : 로그인 페이지 요청
- auth server -> user : 로그인 페이지 제공
- user -> auth server : ID, pw 입력
- auth server : authorization code 발급
- user -> client : redirect_uri, authorization code 전달
- client -> auth server : access token 요청
- auth server -> client : access token 요청
- client -> user : 인증 완료 및 로그인 성공
- user -> client : 서비스 요청
- client -> resource server : access token으로 api 호출
- resource server -> client : auth code 검증 및 서비스 제공
- client -> user : 서비스 제공
client(유저가 사용하는 서비스)는 Resource Owner(사용자) 대신하여 로그인 해준다. 이때 필요한 유저 정보는 Resource 서버로부터 얻는다.
- Resource Owner로부터 동의
- Resource Server로부터 client 신원 확인
유저(Resource Owner)의 입장
- client(어플리케이션)이 내 정보 조심스럽게 다루는거 맞어? 나안테 동의 구해
카카오(Resource Server) 입장
- 유저의 정보를 대리 인증 요청하는 client(어플리케이션)가 진짜 client 맞냐? client 구분 코드 보내서 확인
서비스를 등록하면 Client가 받게 되는 것
- client ID : 어플리케이션 식별자 ID
- client secret : 식별자 비밀번호
- Authorized redirect URIs : Authorized code 전달하는 통로. Resource Server가 가지고 있다가 client에게 권한 부여 시 사용. client와 Resource Server 간 유효성 검사 시에도 사용. 예를 들어 네이버 서버가 사용자 개인 정보를 콜백할 주소.
만약 Access Token 기간이 만료되면 어떻게 되나요?
- 만료가 된 Access Token으로 API 요청을 하면 401에러 발생한다
- 에러가 발생하면, 보관중이던 Refresh Token을 보내 새로운 Access Token을 발급받아 로그인 인증을 유지한다
- Refresh Token으로 Access Token을 재발급해야 한다
- 일반적으로 Access Token, Refresh Token 함께 발급해줌
Refresh Token은 어떤 방식으로 발급되나요?
- 발급 방식, 갱신 주기 모두 OAuth 제공하는 Resource Server마다 다르다
Resource owner의 승인 여정
질문
Authorization Server와 Resource Server의 차이는 무엇인가
728x90
'Research > Security' 카테고리의 다른 글
세션 기반 인증과 토큰 기반 인증의 차이 (0) | 2023.11.01 |
---|
댓글