OAuth 2.0, Client 개념 및 스키마 정리

개요

  • 클라이언트API를 사용하는 소비자이다. 클라이언트는 웹 서버일 수도 있고 브라우저에서 작동하는 JS 애플케이션일 수도, 모바일 네이티브 앱일 수도 있다.

  • 클라이언트의 종류와 성격에 따라 OAuth 2.0 사양은 각 상황에 적합한 4가지의 grant_type을 제공한다.

스키마

client.id

  • String 시스템이 생성한 고유한 랜덤 문자열 (ex: 0jrabyQWm4B9zVJPbotY)
  • 클라이언트 등록시 생성되며 한 번 생성되며 변경이 불가능하다.
  • 외부에 노출될 수 있다.

client.client_secret

  • String client_id와 더불어 인증 수단으로 쓰이는 씨크릿 코드 (ex: 5W7XULCEs4BJKnWUXwh8lgmeXRhcGcdViFp84pWe)
  • 클라이언트의 요청에 의해 재발급이 가능하다.
  • 외부에 노출되면 안 된다.

client.client_name

  • String 인간이 읽을 수 있는 클라이언트의 이름 (ex: Example OAuth Client)

client.client_id_issued_at

  • DateTime client_id를 생성한 일시

client.grant_types

  • Array of String 허용된 grant_type의 배열
  • OAuth 2.0(RFC 6749)에 명시된 authorization_code, implicit, password, client_credentials, refresh_token 만을 등록할 수 있다.

client.redirect_uris

  • Array of String 허용되는 redirect_uri의 배열
  • grant_typeauthorization_code, implicit 방식의 인증일 경우에만 필수 값으로 redirect_uris에 등록된 URI만이 인증이 허용된다.
  • 상대 경로가 아닌 https://를 포함한 전체 URL이 저장되어야 한다.

참고 글

저작자 표시 비영리 동일 조건 변경 허락
신고