Skip to content

일반적인 시나리오


이 주제에서는 Amazon Cognito를 사용하는 6가지 일반적인 시나리오에 대해 설명한다.

Amazon Cognito의 두 가지 주요 구성 요소는 사용자 풀과 아이덴터티 풀이다. 사용자 풀은 웹과 모바일 앱 사용자의 가입 및 로그인 옵션을 제공하는 사용자 디렉터리이다. 아이덴터티 풀은 AWS 크레덴셜을 제공하여 다른 AWS 서비스에 대한 사용자 액세스 권한을 부여한다.

사용자 풀은 Amazon Cognito의 사용자 디렉터리이다. 앱 사용자는 사용자 풀을 통해 직접 로그인하거나 타사 아이덴터티 공급자(IdP)를 통해 연동 로그인할 수 있다. 사용자 풀에서는 Facebook, Google 및 Apple, 그리고 Amazon을 통한 소셜 로그인에서 반환된 토큰과 OpenID Connect(OIDC) 및 SAML IdP에서 반환된 토큰의 처리 작업을 관리한다. 사용자가 직접 또는 타사를 통해 로그인하는지 여부와 무관하게 사용자 풀의 모든 멤버는 디렉터리 프로필을 보유하며, SDK를 통해 액세스할 수 있다.

아이덴터티 풀로 사용자는 임시 AWS 크레덴셜을 얻어 Amazon S3, DynamoDB 등의 다른 AWS 서비스에 액세스할 수 있다. 아이덴터티 풀은 익명 게스트 사용자는 물론, 서드 파티 IdP를 통한 페더레이션도 지원한다.


1. 사용자 풀로 인증

사용자가 사용자 풀을 사용하여 인증하도록 설정할 수 있다. 앱 사용자는 사용자 풀을 통해 직접 로그인하거나 타사 아이덴터티 공급자(IdP)를 통해 연동 로그인할 수 있다. 사용자 풀에서는 Facebook, Google 및 Apple, 그리고 Amazon을 통한 소셜 로그인에서 반환된 토큰과 OpenID Connect(OIDC) 및 SAML IdP에서 반환된 토큰의 처리 작업을 관리한다.

인증 성공 이후 웹 또는 모바일 앱은 Amazon Cognito에서 사용자 풀 토큰을 받는다. 이러한 토큰을 사용하면 앱이 다른 AWS 서비스에 액세스하거나 서버 측 리소스 또는 Amazon API Gateway에 대한 액세스를 제어하는 데 그러한 서비스를 사용하도록 허용하는 AWS 크레덴셜을 검색할 수 있다.

자세한 정보는 사용자 풀 인증 흐름사용자 풀에 토큰 사용 단원을 참조한다.

001


2. 사용자 풀로 서버 측 리소스 액세스

사용자 풀 로그인 성공 이후 웹 또는 모바일 앱은 Amazon Cognito에서 사용자 풀 토큰을 받는다. 이러한 토큰을 사용하여 서버 측 리소스에 대한 액세스를 제어할 수 있다. 또한 사용자 풀 그룹을 생성하여 권한을 관리하고 다른 유형의 사용자를 표시할 수도 있다. 그룹을 사용하여 리소스에 액세스할 권한을 제어하는 방법에 대한 자세한 내용은 사용자 풀에 그룹 추가 섹션을 참조한다.

002

사용자 풀에 대한 도메인이 구성되면 Amazon Cognito는 호스트된 웹 UI를 프로비저닝한다. 이를 사용하여 앱에 가입 및 로그인 페이지를 추가할 수 있다. 이 OAuth 2.0 기반을 사용하면 사용자가 보호된 리소스에 액세스할 수 있는 자체 리소스 서버를 만들 수 있다. 자세한 정보는 사용자 풀의 리소스 서버 정의을 참조한다.

사용자 풀 인증에 대한 자세한 내용은 사용자 풀 인증 흐름사용자 풀에 토큰 사용 섹션을 참조한다.


3. 사용자 풀로 API Gateway 및 Lambda를 사용하여 리소스 액세스

사용자가 API Gateway를 통해 API에 액세스하도록 할 수 있다. API Gateway는 성공적인 사용자 풀 인증에서 토큰을 검증하고, 토큰을 사용하여 사용자에게 Lambda 함수 또는 자체 API를 비롯한 리소스에 대한 액세스 권한을 부여한다.

사용자 풀에 그룹을 사용하여 IAM 역할에 그룹 멤버십을 매핑함으로써 API Gateway를 통해 권한을 제어할 수 있다. 사용자가 속한 그룹은 앱 사용자가 로그인할 때 사용자 풀에서 제공한 ID 토큰에 포함된다. 사용자 풀 그룹에 대한 자세한 내용은 사용자 풀에 그룹 추가 섹션을 참조한다.

Amazon Cognito 권한 부여자 Lambda 함수에서 확인을 위해 API Gateway에 대한 요청과 함께 사용자 풀 토큰을 제출할 수 있다. API Gateway 대한 자세한 내용은 Amazon Cognito 사용자 풀에 API Gateway 사용을 참조한다.

003


4. 사용자 풀 및 아이덴터티 풀로 AWS 서비스 액세스

사용자 풀 인증 성공 이후 앱은 Amazon Cognito에서 사용자 풀 토큰을 받는다. 아이덴터티 풀을 사용하여 다른 AWS 서비스에 임시로 액세스하기 위해 이 토큰을 교환할 수 있다. 자세한 정보는 로그인 후 아이덴터티 풀을 사용하여 AWS 서비스 액세스Amazon Cognito 아이덴터티 풀(페더레이션 아이덴터티) 시작하기 단원을 참조한다.

004


5. 서드 파티에 인증 및 아이덴터티 풀로 AWS 서비스 액세스

아이덴터티 풀을 통해 사용자가 다른 AWS 서비스에 액세스하도록 할 수 있다. 아이덴터티 풀에는 서드 파티 아이덴터티 공급자에 의해 인증된 사용자의 IdP 토큰이 필요하다(익명 게스트인 경우 필요하지 않음). 아이덴터티 풀은 이 토큰과 교환하여 다른 AWS 서비스에 액세스하는 데 사용할 수 있는 임시 AWS 크레덴셜을 부여한다. 자세한 정보는 Amazon Cognito 아이덴터티 풀(페더레이션 아이덴터티) 시작하기를 참조한다.

005


6. Amazon Cognito를 사용하여 AWS AppSync 리소스 액세스

Amazon Cognito 인증에 성공한 토큰을 사용하여 사용자에게 AWS AppSync 리소스에 대한 액세스 권한을 부여할 수 있다(사용자 풀 또는 아이덴터티 풀에서). 자세한 내용은 사용자 풀 또는 페더레이션 아이덴터티를 사용하여 AWS AppSync 및 데이터 원본 액세스를 참조한다.

006


References