oauth란
- "Open Authorization"의 약자로, 인터넷 사용자들이 비밀번호를 제공하지 않고도 하나의 웹사이트에서 다른 웹사이트의 자원에 접근할 수 있게 해주는 인증 및 권한 부여 프로토콜
- OAuth는 주로 웹 애플리케이션에서 사용되며, 사용자가 자신의 자격 증명을 노출하지 않고도 타사 애플리케이션이 자신의 데이터에 접근하도록 허용하는 데 사용
OAuth의 주요 개념
- Resource Owner (자원 소유자): 사용자를 의미하며, 자신의 자원에 대한 접근 권한을 가지고 있다.
- Client (클라이언트): 사용자의 자원에 접근하려는 애플리케이션이다.
- Resource Server (자원 서버): 보호된 자원이 있는 서버로, 사용자의 데이터가 저장된 곳이다.
- Authorization Server (인증 서버): 클라이언트의 접근 권한을 부여하는 서버로, 액세스 토큰을 발행한다.
- Login:
- 클라이언트 애플리케이션이 리소스 소유자(사용자)에게 로그인하도록 요청합니다.
- 사용자는 클라이언트 애플리케이션에 로그인합니다.
- Authorization Code Request:
- 로그인 후, 리소스 소유자는 클라이언트 애플리케이션이 액세스할 수 있는 권한을 부여합니다.
- 이 과정에서 리소스 소유자는 클라이언트에게 인증 코드를 부여합니다.
- Authorization Code Response:
- 리소스 소유자는 클라이언트에게 인증 코드를 전달합니다.
- Authorization Code Exchange:
- 클라이언트는 인증 코드를 받으면, 이를 사용하여 인증 서버에 액세스 토큰을 요청합니다.
- 이 요청은 클라이언트 ID, 클라이언트 시크릿 키, 그리고 스코프 정보 등을 포함합니다.
- Validation:
- 인증 서버는 클라이언트의 요청 정보를 검증합니다.
- 클라이언트 ID, 시크릿 키, 인증 코드의 유효성을 확인합니다.
- Access Token Response:
- 검증이 완료되면, 인증 서버는 클라이언트에게 액세스 토큰을 발급합니다.
- Access Resource:
- 클라이언트는 발급받은 액세스 토큰을 사용하여 리소스 서버에 보호된 리소스에 접근을 요청합니다.
- Response with Data:
- 리소스 서버는 액세스 토큰을 검증하고, 유효한 경우 요청한 데이터를 클라이언트에게 응답합니다.
- Sign Up with Data:
- 클라이언트는 응답받은 데이터를 이용하여 사용자에게 필요한 서비스를 제공하거나
추가적인 작업을 수행합니다.
- 클라이언트는 응답받은 데이터를 이용하여 사용자에게 필요한 서비스를 제공하거나
'web 개발' 카테고리의 다른 글
데이터베이스 lock (0) | 2024.06.18 |
---|---|
트랜젝션 격리수준 (0) | 2024.06.16 |
Docker와 Jenkins를 이용한 CD/CI 과정 (feat WebHooks) (0) | 2024.06.10 |
로드 밸런서와 로드 밸런싱 방식 (0) | 2024.06.10 |
로드밸런싱, NGINX, ELB (1) | 2024.06.10 |