Summary application이 Facebook, Github 같은 HTTP 서비스에 대한 사용자 계정에 접근을 할수 있도록하는 인증 framework. 사용자 인증을 사용자 계정을 호스팅하고 있는 서비스에 맡기고 third-party application에게 사용자 계정에 대한 정보에 접근 할수 있도록 권한을 부여 web app, desktop app, mobile app에게 authorization flow를 제공해줌 참고 Grant Type : Authorization Code 유저에게 인가요청 유저가 인가허가 Auth Server는 Client에게 authorization code 부여 Client는 access token을 Auth Server에 요청 Auth Server는 Client에게 token 전달 Grant Type : Implicit 위 과정 3번과정을 다음과 같이 변경 Auth Server에서 Access Token과 함께 redirection URI 전달 redirection URI로 이동하여 token 획득 client에서 token extract 스크립트를 브라우저로 전달 브라우저에서 Client로 token 전달 Grant Type : Resource Owner Password Credentials username과 password를 app에서 username과 password를 입력받아서 인가서버에 보내서 토큰 획득 다른 방식이 안될때만 사용권장, app이 user에 의해 신뢰가 될때만 사용(e.g. 앱 자체가 Auth service에 의해 소유될때) Grant Type : Client Credentials app 자체의 credentials(client id, client secret) 를 Auth Server에 보내서 Access Token을 획득 app이 redirect URI에 대한 정보를 업데이트 하고 싶다거나, api를 통해서 app 자체의 데이터를 받아고고 싶을 때 사용이 가능하다.