인증 인가란 ?

인증 방식 정리

토큰 타입

  1. Access Token
    1. 클라이언트에서 사용자의 보호된 리소스에 접근하기 위해 사용하는 일종의 자격 증명으로서 역할을 하며 리소스 소유자가 클라이언트에게 부여한 권한 부여의 표현이다
    2. 일반적으로 JWT(JSON Web Tokens) 형식을 취하지만 사양에 따라 그럴 필요는 없다.
    3. 토큰에는해당액세스기간,범위및서버에필요한기타정보가있다.
    4. 타입에는 식별자 타입 (Identifier Type) 과 자체 포함타입 (Self-contained Type) 이 있다
  2. Refresh Token
    1. 액세스 토큰이 만료된 후 새 액세스 토큰을 얻기 위해 클라이언트 응용 프로그램에서 사용하는 자격 증명
    2. 액세스 토큰이 만료되는 경우 클라이언트는 권한 부여 서버로 인증하고 Refresh Token 을 전달한다.
    3. 인증 서버는 Refresh Token 의 유효성을 검사하고 새 액세스 토큰을 발급한다.
    4. Refresh Token 은 액세스 토큰과 달리 권한 서버 토큰 엔드포인트에만 보내지고 리소스 서버에는 보내지 않는다.
  3. ID Token
    1. OIDC(OpenID Connect)에 해당되는 내용입니다. 현재 저희는 사용하는 부분은 존재하지 않습니다.
  4. Authorization Code
    1. 권한 부여 코드 흐름에서 사용되며 이 코드는 클라이언트가 액세스 토큰과 교환할 임시 코드입니다.
    2. 사용자가 클라이언트가 요청하는 정보를 확인하고 인가 서버로부터 Redirect 되서 들어옵니다.
    3. 소셜 로그인창이 열리고, 로그인 성공시 Authorization Code를 받아옵니다. 발급받은 권한 부여코드를 이용하여, 액세스 토큰으로 유저정보를 받아오게되고 해당 유저정보를 이용해서 소셜로그인 및 회원가입 절차를 진행되게 되어있습니다. → 기록모아에서는 현재 Spring Security OAuth2Client를 이용해서 이 FLOW를 적용중입니다.

JWT란

  1. 식별자 타입 (Identifier Type)

Untitled

access_token username scope expires_in
N42kjil2k34lntk Raven email, read, write 1523428322L
  1. 자기 포함 타입 (Self-contained Type)