SW/앱플랫폼

앱 플랫폼 개발 : OAuth 개념, 정의, 구조

얇은생각 2019. 4. 10. 07:30
반응형



OAuth란 무엇입니까?

OAuth는 응용프로그램에 "보안 지정 액세스" 기능을 제공하는 개방형 표준 인증 프로토콜 또는 프레임워크입니다. 예를 들어 Facebook에서 사용자의 프로필에 액세스하거나 Facebook 암호를 제공하지 않고도 타임라인에 업데이트를 게시할 수 있다고 할 수 있습니다. 이렇게 하면 ESPN이 위반될 경우 Facebook 암호가 안전하게 유지됩니다.


OAuth는 암호 데이터를 공유하지 않지만 대신 인증 토큰을 사용하여 소비자와 서비스 공급자 간의 ID를 증명합니다. OAuth는 암호를 주지 않고 한 애플리케이션이 다른 애플리케이션과 상호 작용하는 것을 승인할 수 있는 인증 프로토콜입니다.



OAuth 예제

실행 중인 OAuth의 가장 간단한 예시는 "안녕, 다른 웹 사이트의 로그인으로 당사 웹 사이트에 로그인하시겠습니까?"라는 웹 사이트입니다. 이 시나리오에서 첫 번째 웹 사이트(저 웹 사이트를 소비자라고 부르자)가 알고자 하는 유일한 것은 사용자가 양쪽 웹 사이트에서 동일한 사용자이며 사용자가 처음에 소비자가 아닌 서비스 공급자에 성공적으로 로그인했다는 것입니다.


Facebook 앱은 OAuth 사용 사례입니다. Facebook에서 앱을 사용한다고 하면 프로필과 사진을 공유하라는 메시지가 나타납니다. 이 경우 Facebook은 서비스 제공업체입니다. Facebook에는 로그인 데이터와 사진이 있습니다. 앱은 소비자이며, 사용자는 사진을 사용하기 위해 앱을 사용할 수 있습니다. OAuth가 백그라운드에서 관리하고 있는 사진에 대한 이 앱 액세스 권한을 부여했습니다.


스마트 홈 장치(토스터, 서모스탯, 보안 시스템 등)는 일종의 로그인 데이터를 사용하여 서로 동기화하고 브라우저 또는 클라이언트 장치에서 관리할 수 있습니다. 이러한 기기는 OAuth가 말하는 기밀 권한 부여를 사용합니다. 즉, 비밀키 정보를 가지고 있기 때문에 로그인 반복하지 않아도 됩니다.



OAuth에 대해

OAuth는 인증이 아닌 권한 부여에 대한 것입니다. 권한 부여는 일을 할 수 있는 허가를 요구합니다. 인증은 사물을 알고 있기 때문에 올바른 사람이라는 것을 증명하는 것입니다. OAuth는 소비자와 서비스 공급자 간에 인증 데이터를 전달하지 않고 인증 토큰 역할을 합니다.


OAuth에 대한 일반적인 비유는 차에 대한 발렛 열쇠입니다. 발렛 키를 사용하면 발렛이 시동을 걸고 차량을 이동할 수 있지만 트렁크나 글로브 박스에 접근할 수는 없습니다.


OAuth 토큰은 발렛 키와 같습니다. 사용자는 각 서비스 공급자로부터 무엇을 사용할 수 있는지, 무엇을 사용할 수 없는지 소비자에게 알려야 합니다. 각 소비자에게 다른 발렛 키를 제공할 수 있습니다. 전체 키 또는 전체 키에 액세스할 수 있는 개인 데이터를 가지고 있지 않습니다.

반응형