공개 인증 뜻? OAuth와 OAuth2.0 개념 설명

공개인증 의미 및 OAuth2.0 개념 설명

공인인증의 의미와 OAuth2.0의 개념에 대해 알아봅시다.

공개 인증의 의미와 OAuth2.0 개념 이해

공개 인증은 인터넷 사용자에게 비밀번호를 제공하지 않고도 다른 웹사이트나 애플리케이션의 정보를 기반으로 웹사이트나 애플리케이션에 대한 접근 권한을 부여할 수 있도록 하는 인터넷 애플리케이션의 사용자 인증을 의미합니다. 공공 사용 API(애플리케이션 프로그래밍 인터페이스)에서 구현한 개방형 표준 인증방식을 말합니다. Open Authorization은 Open Authorization으로 줄여서 “OAuth”라고 합니다. OAuth는 Google, 마이크로소프트, 아마존, 페이스북는 트위터나 SNS(소셜 네트워크 서비스) 서비스 등 Mashup 서비스로 생성된 애플리케이션이 다른 애플리케이션이나 PC, 스마트폰 등 다른 디바이스에서 사용자 정보에 접근할 수 있도록 인증 기능을 수행합니다. 이를 통해 사용자는 다른 회사의 애플리케이션이나 웹사이트에서 자신의 계정에 대한 정보를 공유할 수 있습니다. OAuth에는 OAuth1.0 및 OAuth2.0이 포함됩니다. OAuth를 통한 SNS 로그인 API 또는 Google 서비스 관련 API. 구현될 수 있습니다.

공개인증 의미 및 OAuth2.0 개념 설명

공개 승인은 다음을 의미합니다. SSO(싱글 사인온)구현하고자 하는 웹 애플리케이션 간에 인증 정보를 교환할 수 있는 구조를 의미합니다. 공개인증은 특정 서비스에서 관리하는 개인정보 또는 회원가입에 필요한 프로필 정보를 허용된 범위 내에서 다른 서비스와 연동시킬 수 있는 기능을 제공합니다. 가능하게 하는 기술입니다. Open Authorization은 OAuth로 줄여서 부르기도 합니다. OAuth는 회원가입을 통해 이전에 특정 회사의 서비스를 이용했던 사용자가 다른 회사의 서비스를 이용하고자 할 때 사용됩니다. 타사 서비스에서 별도의 비밀번호나 자격증명 없이 로그인에 대한 접근권한을 부여할 수 있도록 하는 규격입니다. OAuth의 대표적인 예로는 네이버 로그인, 카카오 로그인, 구글 로그인, 페이스북 로그인 등이 있습니다. 현재 OAuth1.0과 OAuth 2.0.OAuth1의 두 가지 버전이 있습니다. 0이 먼저 개발됐는데, OAuth1.0은 암호화와 연산 측면에서 구현하기 어려웠기 때문에 좀 더 쉽고 간단하게 구현할 수 있는 OAuth2.0이 등장했다. OAuth1.0은 웹으로 제한되지만 OAuth2.0은 웹으로 제한되지 않습니다. OAuth2.0은 WRAP(Web Resource Access Protocol) 기반으로 기존 OAuth1.0의 세션 고정 공격을 보완하고 구조적 문제를 해결하면서 핵심 요소만 차용하는 것이다.[OAuth1.0과 OAuth2.0 개념 비교]

구분 내용OAuth1.0암호화나 연산 측면에서 구현이 어려운 웹에서만 사용할 수 있는 인증 프로토콜(RFC 5849)OAuth2.0웹에만 국한되지 않고 보다 쉽고 간단하게 구현할 수 있는 인증 프로토콜(RFC 6749, 6750)

OAuth1.0은 다양한 인증 방법을 표준화하고 여러 애플리케이션에서 공유할 수 있는 최초의 공개 인증 방법입니다. OAuth1.0은 2010년 IETF에서 처음 발표되었습니다. 엄밀히 말하면 OAuth는 인증이 아닌 인증 프로토콜입니다. 인증은 사용자가 누구인지 정확하게 확인하는 과정이고, 인증은 사용자가 누구인지 확인하는 과정입니다. 접근 가능 여부를 확인하고 권한을 부여하는 과정입니다. OAuth에서는 누가 누구인지 정확하게 확인하고 권한(Authorization)을 부여하는 것이 아니라, 권한을 부여할 수 있는지를 확인하는 프로토콜이다. OAuth2.0 개념은 OAuth1.0의 업그레이드 버전으로 웹에만 국한되지 않습니다. 구현하기 더 쉬운 액세스 토큰을 사용하는 인증 프로토콜입니다. 그렇기 때문에 OAuth1.0보다 OAuth2.0이 더 널리 사용됩니다. OAuth는 부분적인 정보에만 액세스 권한을 부여하는 개방형 프로토콜입니다. OAuth를 통해 귀하는 ID나 비밀번호를 제공하지 않고도 자신의 정보를 전달할 수 있을 뿐만 아니라, 해당 만료일까지 승인된 서비스가 귀하를 대신하여 해당 정보에 접근할 수 있습니다. OAuth는 액세스를 위임합니다. 이는 인터넷 사용자가 웹사이트나 애플리케이션에서 사용하기 위해 비밀번호를 제공하지 않고도 다른 웹사이트에 로그인하거나 정보에 액세스할 수 있는 개방형 표준입니다. OAuth를 사용하면 Google, Microsoft, Amazon, Facebook, Twitter와 같은 회사에서 사용자가 자신의 계정 정보를 다른 회사의 애플리케이션이나 웹사이트와 공유할 수 있습니다. 편의를 제공하기 위해 사용됩니다. 소셜 로그인에서는 SNS 계정을 이용해 다른 웹사이트나 모바일 앱에 로그인할 수 있습니다. 소셜 로그인은 OAuth 구조를 사용하므로 새로운 아이디나 비밀번호를 발급받아 사용할 필요가 없습니다. OAuth 2.0에는 인증 프로세스에 필수적인 구성요소가 있습니다. OAuth 2.0에서 권한 부여를 위한 필수 구성 요소는 리소스 소유자, 클라이언트, 권한 부여 서버 및 리소스 서버입니다.[OAuth2.0 필수 구성 요소들]

구분 내용 1 사용자(리소스 소유자) 2 클라이언트 3 인증 서버 4 데이터 공급자(리소스 서버)

사용자(Resource Owner)란 일반 사용자 또는 일반 사용자가 사용하던 시스템을 말한다. 리소스 소유자는 보호되는 리소스를 소유하고 액세스 권한을 부여할 수 있는 엔터티입니다. 클라이언트는 사용자가 새로운 서비스를 이용하기 위해 접속하는 제3자 웹사이트 또는 애플리케이션입니다. 예를 들어, 구글이나 카카오를 통해 정보를 검색하려는 제3자 서비스입니다. 클라이언트는 보호된 리소스에 대한 액세스가 필요한 타사 서비스를 제공하는 시스템입니다. 클라이언트에는 적절한 액세스 토큰이 있어야 합니다. 클라이언트는 액세스 권한을 부여받아야 하는 개체입니다. 권한 부여 서버는 클라이언트로부터 액세스 토큰에 대한 요청을 수신하고 리소스 소유자의 인증 또는 동의를 기반으로 액세스 토큰을 발급하는 엔터티입니다. 예를 들어 구글이나 카카오에서 로그인을 통해 인증 후 권한을 부여하는 서버입니다. 데이터 공급자(리소스 서버)는 사용자의 리소스를 보호하고 클라이언트로부터 액세스 요청을 받는 개체입니다. 클라이언트의 액세스 토큰을 수신 및 확인하고 적절한 리소스를 클라이언트에 반환합니다. OAuth2.0에서 사용되는 데이터에는 웹 또는 앱에 대한 정보, Redirect URI, Authorization Code, Client ID, Client Secret, Access Token, Refresh가 포함됩니다. 토큰이 있습니다. OAuth2.0 인증 프로세스의 경우 클라이언트가 Authorization Server에 인증을 요청하면 Authorization Server는 클라이언트 ID, Secret, Scope 및 엔드포인트 URI를 제공합니다. 권한 부여 서버는 클라이언트를 인증하고, 요청된 범위가 허용되는지 확인하며, 리소스 소유자는 권한 부여를 위해 권한 부여 서버와 상호 작용합니다. Authorization Server는 액세스 토큰을 발급하고 이를 다시 클라이언트로 리디렉션합니다. 클라이언트는 액세스 토큰을 다시 사용하여 리소스 서버에 리소스 액세스를 요청합니다. 결국 인터넷 이용자들은 OAuth를 통해 기존 회원정보를 활용하게 된다. 다른 웹사이트나 모바일(앱) 서비스 이용을 위해 비밀번호를 제공하지 않고도 접근권한을 부여함으로써 편리하게 사용할 수 있는 접근권한 위임용 개방형 표준 프로토콜입니다. 사용자는 기존 서비스 계정 정보를 사용하여 다른 서비스에 안전하게 액세스할 수 있습니다. OAuth를 통해 사용자가 직접 인증을 할 수도 있지만, 서비스에서 편리하게 권한을 받을 수 있습니다.