-
OAuth
➡️ 웹이나 앱에서 흔히 찾아볼 수 있는 소셜 로그인 인증 방식, 인증을 중개해주는 메커니즘. 보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜.
언제, 왜 쓰는지?
➡️ 이미 가입된 계정을 이용해 빠르게 서비스에 가입하는 것을 택하며, 서비스를 구현하는 개발자도 신규 회원가입이나 회원 관리를 신경쓰지 않아도 되기 때문에 소셜 로그인을 선호함.
OAuth 작동 메커니즘
OAuth의 주체
- Resource Owner : OAuth 인증을 통해 소셜 로그인을 하고 싶어하는 사용자이며, 이름 전화번호 등의 정보를 뜻함
- Resource Server & Authorization Server : 사용자가 소셜 로그인을 하기 위해서 사용하는 이미 사용중인 서비스의 서버중 사용자의 정보를 저장하고 있는 서버
- Application : 사용자가 소셜 로그인을 활용해 이용하고자 하는 새로운 서비스는 환경에 따라 다르게 불림. 경우에 따라 Clinet와 Server로 세분화해서 지칭
OAuth 인증 방식의 종류와 흐름
* Grant Type : Authorization Server에서 Access Token을 받아오는 방식
- Implicit Grant Type : 잘 사용하지 않음. 보안성이 떨어짐
- Authorization Code Grant Type : Authorization Code 사용해 인증단계가 추가로 있어 비교적 안전. 새로운 서비스를 이용하다가 토큰이 만료되었을 경우 다시 발급 받을 때 편의성이 좋지 않음. 액세스 토큰을 발급해 줄 때 리프레시 토큰을 같이 발급함
- Refresh Token Grant Type : Authorization Server로 리프레시 토큰을 보내면 Authorization Server는 리프레시 토큰을 검증한 다음 액세스 토큰을 다시 발급. Application은 다시 발급받은 액세스 토큰을 사용해서 Resource Server에서 사용자의 정보를 받아옴
OAuth의 장점
- 쉽고 안전하게 새로운 서비스를 이용할 수 있음
- 권한 영역을 설정할 수 있음
'FE' 카테고리의 다른 글
Section3 회고 (0) 2023.07.06 Coz’ Mini Hackathon (0) 2023.07.05 Token (0) 2023.07.03 Cookie / Session (0) 2023.07.02 [네트워크] 심화 (0) 2023.06.29