권한 부여 승인을 위해 자체 생성한 Authorization Code를 전달하는 방식으로 많이 쓰이고, 기본이 되는 방식.
간편 로그인 기능에서 사용되는 방식으로 클라이언트가 사용자를 대신하여 특정 자원에 접근을 요청할 때 사용되는 방식입니다.
보통 타사의 클라이언트에게 보호된 자원을 제공하기 위한 인증에 사용됩니다. Refresh Token의 사용이 가능
Authorization Grant: Authorization Code
권한 부여 승인 요청 시 response_type을 code로 지정하여 요청합니다. 이후 클라이언트는 권한 서버에서 제공하는 로그인 페이지를 브라우저를 띄워 출력합니다. 이 페이지를 통해 사용자가 로그인을 하면 권한 서버는 권한 부여 승인 코드 요청 시 전달받은 redirect_url로 Authorization Code를 전달합니다. Authorization Code는 권한 서버에서 제공하는 API를 통해 Access Token으로 교환됩니다.
자격 증명을 안전하게 저장하기 힘든 클라이언트 ( JavaScript등의 스크립트 언어를 사용한 브라우저 )에게 최적화된 방식.
권한 부여 승인 코드 없이 바로 Access Token이 발급됩니다. Access Token이 바로 전달되므로 만료 기간을 짧게 설정하여 누출의 위험을 줄일 필요가 있습니다.
Refresh Token 사용 불가능. 권한 서버는 client_secert를 사용해 클라이언트 인증을 하지 않음. Access Token을 획득하기 위한 절차가 간소화되기에 응답성과 효율은 높지만 Access Token 이 URL로 전달되는 단점이 있음.
Authorization Grant: Implicit
권한 부여 승인 요청 시 response_type을 token으로 설정하여 요청합니다. 이후 클라이언트는 권한 서버에서 제공하는 로그인 페이지를 브라우저를 띄워 출력하게 되며 로그인이 완료되면 권한 서버는 Authorization Code가 아닌 Access Token를 redirect_url로 바로 전달합니다.
Resource Owner Password Credentials Grant ( 자원 소유자 자격증명 승인 방식 )