# 인증과 권한 ## 서버리스 환경에서의 인증 서버 없이 모든 필수 인증, 권한, 사용자 등록 및 사용자 유효성 검증 관련 사항을 구현하고 관리하는 방법을 묻는다. 대답은 Amazon [[Cognito]] 및 [[Auth0]]와 같은 서비스와 위임 토큰과 같은 기술을 사용하는 것이다. ## 서버리스 방식 - 인증 시스템 구현을 돕기 위해 [[Cognito]] 나 [[Auth0]] 와 같은 서비스를 사용할 수 있다. - 서비스 간에 사용자 정보를 교환하고 확인하기 위해 토큰을 사용할 수 있다. [[JWT]] (JSON Web Token)을 사용한다. 이런 토큰은 사용자에 대한 필수 정보(클레임)를 캡슐화할 수 있다. [[Lambda]] 함수는 토큰이 합법적인지 확인한 다음 모든 것이 정상이면 실행을 계속할 수 있다. 관련 Lambda 함수가 실행되기 전에 [[API Gateway]]에서 토큰의 유효성을 검사할 수도 있다. - Lambda 함수 또는 Auth0를 사용하여 위임 토큰을 만들 수 있다. 위임 토큰을 사용해 [[프런트엔드]]에서 서비스에 대한 직접 접근 권한을 부여할 수 있다.