-
[인증/보안] OAuthcodeStates front-end/node(server) 2023. 3. 9. 16:18반응형
📌 OAuth
📍OAuth
인증을 중개해주는 메커니즘
보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜
OAuth의 예시 - 소셜 로그인
OAuth의 주체
Resource Owner : 소셜로그인을 하고싶어하는 사용자
Resource Server : 사용자의 정보를 저장하고 있는 서버
Authorization Server : 인증을 담당하는 서버
Application : 소셜 로그인을 활용해 이용하고자하는 새로운 서비스
🔗 OAuth의 인증 방식의 종류와 흐름
- Grant Type : Authorization Server에서 Access Token을 받아오는 방식
🔑 Implicit Grant Type
- 사이트에 사용자가 접속
- 사용중인 서비스에서 인증을 담당하는 서버로 인증 요청
- 인증을 담당하는 서버는 유효한 인증 요청인지 확인 후 액세스 토큰 발급
- 인증을 담당하는 서버에서 사용중인 서비스로 액세스 토큰 전달
- 사용중인 서비스에서 발급받은 액세스 토큰을 담아 정보를 저장하는 서버로 사용자의 정보를 요청
- 정보를 저장하는 서버는 사용중인 서비스로 전달 받은 액세스 토큰이 유효한 토큰인지 확인
- 유효한 토큰이라면, 사용중인 서비스에 정보를 전달
🔑 Authorization Code Grant Type
Authorizartion code를 사용한 인증 단계 때문에 비교적 안전하다.
- 사이트에 사용자가 접속
- 사용중인 서비스에서 인증을 담당하는 서버로 인증 요청
- 인증을 담당하는 서버는 유효한 인증 요청인지 확인한 후 Authorizartion code 발급
- 인증을 담당하는 서버는 사용중인 서비스로 Authorizartion code 전달
- 사용중인 서비스에서 Authorizartion code 로 발급받은 Authorizartion code를 전달
- 인증을 담당하는 서버는 유효한 Authorizartion code 인지 확인한 후 토큰을 전달
- 인증을 담당하는 서버에서 사용중인 서비스로 액세스 토큰 전달
- 사용중인 서비스는 발급받은 액세스 토큰을 담아 정보를 저장하는 서버로 사용자의 정보를 요청
- 정보를 저장하는 서버는 사용중인 서비스에게서 전달받은 액세스 토큰이 유효한지 확인
- 유효한 토큰이란면, 사용중인 서비스에 정보를 전달
🔑 Refresh Token Grant Type
- 인증을 담당하는 서버로 리프레시 토큰을 전달
- 인증을 담당하는 서버는 리프레시 토큰을 검증한 다음 액세스 토큰 발급
- 사용중인 서비스에서 다시 발급 받은 액세스 토큰을 사용해서 정보를 저장하는 서버의 정보를 가져온디.
🔗 OAuth의 장점
1. 쉽고 안전하게 새로운 서비스를 이용할 수 있다.
- 사용자는 OAuth를 통해 특정 사이트에 아이디, 비밀번호, 이름, 전화 번호 등의 정보를 일일이 입력하지 않아도 클릭 몇 번 만으로 손쉽게 가입할 수 있어 편리합니다.
- 정보를 해당 서비스에 직접 노출하는 것이 아니기 때문에 직접 가입하는 것보다 더 안전합니다.
- Application의 입장에서도 회원의 정보를 직접 가지고 있음으로 인해서 발생할 수 있는 회원 정보 유출의 위험성에서 부담을 덜 수 있습니다.
2. 권한 영역을 설정할 수 있다.
- OAuth 인증을 허가한다고 해서 새로운 서비스가 사용중이던 서비스의 모든 정보에 접근이 가능한 것은 아닙니다. 사용자는 원하는 정보에만 접근을 허락할 수 있어 보다 더 안전합니다.
- OAuth 설정 페이지에서는 Application에서 필요한 정보를 선택할 수 있습니다. 사용자는 이 중 원하는 정보만 선택적으로 제공할 수 있습니다.
반응형'codeStates front-end > node(server)' 카테고리의 다른 글
Proxy (0) 2023.04.04 아마존 웹 서비스(AWS) (0) 2023.03.31 [인증/보안] Token (0) 2023.03.08 [인증/보안] Session (0) 2023.03.08 [인증/보안] Cookie (0) 2023.03.07