OAuth2.0
Open Authorization의 약자로,
개방형 인가의 표준이다.
=> 소셜 로그인 기능
소셜 로그인?
유저가 해당 웹사이트에 가입한 ID와 PW 대신 다른 사이트에 있는
유저 정보를 사용해 인증하는 기능
구성 요소
리소스 소유자(Resource Owner)
사용자의 보호된 정보(Resource)에 접근하도록 자격을 부여하는 사람
OAuth 사용자 = 리소스 소유자
클라이언트(Client)
Resource Server의 API를 사용하여 정보를 가져오려고 접근을 요청하는 애플리케이션
리소스 서버(Resource Server)
사용자의 보호된 정보(Resource)를 가지고 있는 서버
=> OAuth 서비스를 제공
인가 서버(Authorization Server)
인증/인가를 수행하는 서버로,
Client의 접근 자격을 확인해 Resource Server의 서비스를 사용할 수 있게 인증,
Access Token을 발급해 권한을 부여하는 서버
주요 용어
인가 코드(Authorization Code)
Client가 사용자를 대신해 인가 서버에 접근 권한을 요청할 때 발급받는 유효 기간이 짧은 코드,
Access Token을 발급받기 위해 사용
액세스 토큰(Access Token)
Resource Server에서 Resource Owner의 정보를 가져올 때 사용하는 만료 기간이 있는 토큰
리프레시 토큰(Refresh Token)
Access Token이 만료되었을 때 갱신하는 용도로 사용하는 토큰
일반적으로 Access Token보다 만료 기간이 더 길다.
인증(Authentication)
Resource에 접근 자격이 있는지 검증하는 과정
인가(Authorization)
자원에 접근할 권한을 부여하는 과정
OAuth의 흐름 과정

위 사진을 예시로 OAuth의 흐름을 알아보겠다.
1.Resource Owner(사용자)가 Client 접속
2. 사용자 인가 요청
Client가 사용자를 대신해 Authorization Server(인가 서버)에 인가 요청
3. 사용자 동의
인가 서버가 사용자에게 동의 여부 물어봄
4. Authorization Code(인가 코드) 발급
사용자가 동의하면 인가 서버가 Client에게 인가 코드 발급
5. Client → Server
인가 코드 전달
6. Server → Authorization Server(인가 서버)
인가 코드를 사용해 Access Token(액세스 토큰) 요청
7&8. 인가 서버에서 인가 코드 확인 후 액세스 토큰 발급
9. Server → Resource Server(리소스 서버)
액세스 토큰을 사용해 Resource(사용자 정보) 요청
10&11. 리소스 서버에서 액세스 토큰 확인 후 사용자 정보 제공
12. Server → Client
사용자 정보 전달
'코딩 공부 (frontend)' 카테고리의 다른 글
AWS에 S3에 웹 호스팅 하는 방법 (6) | 2024.09.11 |
---|