OAuth(Open Authorization)은 사용자가 웹 또는 모바일 애플리케이션에서 다른 웹 사이트 또는 애플리케이션에 대한 접근 권한을 부여할 때 사용되는 개방형 표준 프로토콜로.소셜로그인에서 사용됩니다. OAuth는 사용자의 리소스에 대한 제한된 액세스를 제3자 애플리케이션에 부여하며, 사용자 이름과 암호를 직접 제공하지 않고도 안전한 방식으로 리소스에 접근할 수 있도록 합니다.
OAuth의 핵심 구성 요소는 다음과 같습니다:
- Resource Owner(리소스 소유자): 자원(데이터 또는 서비스)에 대한 접근 권한을 가진 사용자.
- Client(클라이언트): 리소스에 접근하려는 애플리케이션 또는 서비스.
- Authorization Server(인가 서버): 클라이언트의 요청에 대해 사용자의 동의를 얻고, 액세스 토큰을 발급하는 서버.
- Resource Server(리소스 서버): 보호된 리소스를 호스팅하고, 클라이언트가 액세스할 수 있도록 하는 서버.
- Access Token(액세스 토큰): 클라이언트가 리소스에 접근할 수 있도록 하는 토큰. 일반적으로 짧은 유효 기간을 가지며, 리소스 서버에 전달됩니다.
OAuth는 인가과정에서 인가를 분리하기 위한 기술이고, 인증은 유저가 직접 권한은 서비스에게 부여하는 방식으로 동작합니다.
OAuth의 주요 흐름은 다양하지만 가장 일반적인 흐름에는 Authorization Code Grant, Implicit Grant, Resource Owner Password Credentials Grant, Client Credentials Grant 등이 있습니다. 이러한 흐름은 클라이언트 유형과 보안 요구 사항에 따라 선택됩니다.
OAuth는 사용자 비밀번호를 공유하지 않고 안전하게 인증 및 권한 부여를 수행하여 보안을 강화하고, 사용자 경험을 향상시킵니다. 주로 웹 및 모바일 애플리케이션에서 외부 서비스와의 통합에 활용됩니다.
OAuth(Open Authorization)은 사용자가 다른 애플리케이션에 대한 접근 권한을 부여하는 개방형 표준 프로토콜입니다. 사용자는 자신의 데이터를 직접 제공하지 않고도 안전한 방식으로 서드파티 애플리케이션이나 서비스에 접근할 수 있도록 해주며, 주요 구성 요소로는 리소스 소유자(사용자), 클라이언트(애플리케이션), 인가 서버, 리소스 서버, 액세스 토큰이 있습니다. OAuth는 여러 흐름을 제공하며, 주로 웹 및 모바일 애플리케이션에서 외부 서비스와의 통합에 사용됩니다. 이를 통해 보안 강화와 사용자 경험 개선이 가능합니다.
'면접준비' 카테고리의 다른 글
TDD에 대해서 설명해주세요. (0) | 2024.01.24 |
---|---|
클래스형 vs 함수형 (0) | 2024.01.23 |
JWT, Refresh, Access Token에 대해서 설명해주세요 (0) | 2024.01.22 |
OSI 7계층에 대해 아는대로 설명해주세요. (0) | 2024.01.19 |
객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? (0) | 2024.01.18 |