로그인 후 API Gateway를 사용하여 리소스 액세스 - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

로그인 후 API Gateway를 사용하여 리소스 액세스

Amazon Cognito 사용자 풀 토큰의 일반적인 사용은 API Gateway REST API에 대한 요청을 승인하는 것입니다. 액세스 토큰의 OAuth 2.0 범위는 /app_assets에 대한 HTTP GET과 같은 메서드 및 경로를 승인할 수 있습니다. ID 토큰은 API에 대한 일반 인증 역할을 할 수 있으며 사용자 속성을 백엔드 서비스에 전달할 수 있습니다. API Gateway에는 HTTP API용 JWT 권한 부여자Lambda 권한 부여자와 같이 보다 세분화된 로직을 적용할 수 있는 추가 사용자 지정 권한 부여 옵션이 있습니다.

다음 다이어그램은 액세스 토큰의 OAuth 2.0 범위를 사용하여 REST API에 액세스하는 애플리케이션을 보여줍니다.

Amazon Cognito 사용자 풀로 인증하고 Amazon API Gateway를 사용하여 API 리소스에 대한 액세스를 승인하는 애플리케이션의 흐름도입니다.

앱은 인증된 세션에서 토큰을 수집하여 요청의 Authorization 헤더에 무기명 토큰으로 추가해야 합니다. API, 경로 및 메서드에 대해 구성한 권한 부여자를 구성하여 토큰 콘텐츠를 평가합니다. API Gateway는 요청이 권한 부여자에 대해 설정한 조건과 일치하는 경우에만 데이터를 반환합니다.

API Gateway API가 애플리케이션에서 액세스를 승인할 수 있는 몇 가지 잠재적 방법은 다음과 같습니다.

  • 액세스 토큰이 유효하고 만료되지 않았으며 올바른 OAuth 2.0 범위를 포함합니다. REST API에 대한 Amazon Cognito 사용자 풀 권한 부여자는 진입 장벽이 낮은 일반적인 구현입니다. 이 유형의 권한 부여자에 대한 요청의 본문, 쿼리 문자열 파라미터 및 헤더를 평가할 수도 있습니다.

  • ID 토큰이 유효하며 만료되지 않았습니다. Amazon Cognito 권한 부여자에게 ID 토큰을 전달하면 애플리케이션 서버의 ID 토큰 콘텐츠에 대한 추가 검증을 수행할 수 있습니다.

  • 액세스 또는 ID 토큰의 그룹, 클레임, 속성 또는 역할은 Lambda 함수에서 정의한 요구 사항을 충족합니다. Lambda 권한 부여자는 요청 헤더에서 토큰을 구문 분석하고 권한 부여 결정을 위해 평가합니다. 함수에서 사용자 지정 로직을 구성하거나 Amazon Verified Permissions에 API를 요청할 수 있습니다.

사용자 풀의 토큰을 사용하여 AWS AppSync GraphQL API에 대한 요청을 승인할 수도 있습니다.