쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Amazon Cognito 자격 증명 풀 AWS 서비스 을 사용하여 ASP.NET Core 앱에서 액세스 - 권장 가이드

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

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

Amazon Cognito 자격 증명 풀 AWS 서비스 을 사용하여 ASP.NET Core 앱에서 액세스

제작: Bibhuti Sahu(AWS)와 Marcelo Barbosa(AWS)

요약

이 패턴은 Amazon Cognito 사용자 풀 및 자격 증명 풀을 구성한 다음 인증 성공 후 ASP.NET Core 앱이 AWS 리소스에 액세스할 수 있도록 하는 방법을 설명합니다.

Amazon Cognito는 웹 및 모바일 애플리케이션에 대한 인증, 권한 부여 및 사용자 관리를 제공합니다. Amazon Cognito의 두 가지 주요 구성 요소는 사용자 풀과 자격 증명 풀입니다.

사용자 풀은 Amazon Cognito의 사용자 디렉터리입니다. 사용자 풀이 있으면 사용자는 Amazon Cognito를 통해 웹 또는 모바일 앱에 로그인할 수 있습니다. 또한 사용자는 Google, Facebook, Amazon 또는 Apple과 같은 소셜 자격 증명 공급자를 통해서 그리고 SAML 자격 증명 공급자를 통해 로그인할 수 있습니다.

Amazon Cognito 자격 증명 풀(페더레이션 자격 증명)을 사용하여 사용자의 고유한 자격 증명을 만들고 자격 증명 공급자와 페더레이션할 수 있습니다. 자격 증명 풀을 사용하면 다른에 액세스할 수 있는 제한된 권한의 임시 AWS 자격 증명을 얻을 수 있습니다 AWS 서비스. 새 Amazon Cognito 자격 증명 풀 사용을 시작하려면 먼저 하나 이상의 AWS Identity and Access Management (IAM) 역할을 할당하여 애플리케이션 사용자가 AWS 리소스에 대해 보유할 액세스 수준을 결정해야 합니다. 자격 증명 풀에서는 인증 및 미인증의 두 가지 자격 증명 유형을 정의합니다. IAM에서 각 ID 유형에 고유한 역할을 할당할 수 있습니다. 인증 자격 증명은 퍼블릭 로그인 공급자(Amazon Cognito 사용자 풀, Facebook, Google, SAML 또는 OpenID Connect 공급자) 또는 개발자 공급자(자체 백엔드 인증 프로세스)에 속하지만, 인증되지 않은 ID는 일반적으로 게스트 사용자에게 속합니다. Amazon Cognito가 사용자 요청을 받으면 서비스는 요청의 인증 여부와 해당 인증 유형과 연결된 역할을 확인한 다음, 해당 역할에 연결된 정책을 사용하여 요청에 응답합니다. 

사전 조건 및 제한 사항

사전 조건 

  • Amazon Cognito 및 IAM 권한이 AWS 계정 있는

  • 사용하려는 AWS 리소스에 대한 액세스

  • ASP.NET Core 2.0.0 이상

아키텍처

기술 스택  

  • Amazon Cognito

  • ASP.NET Core

대상 아키텍처

Amazon Cognito 자격 증명 풀을 사용하여 ASP.NET Core 앱에서 AWS 서비스에 액세스하는 방법.

도구

도구, SDKs 및 AWS 서비스

코드 

첨부된 .zip 파일에는 다음을 설명하는 샘플 파일이 포함되어 있습니다.

  • 로그인한 사용자의 액세스 토큰을 검색하는 방법

  • 액세스 토큰을 AWS 자격 증명으로 교환하는 방법

  • AWS 자격 증명을 사용하여 Amazon Simple Storage Service(Amazon S3) 서비스에 액세스하는 방법

인증된 자격 증명에 대한 IAM 역할

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*", "cognito-identity:*", "s3:ListAllMyBuckets*" ], "Resource": [ "*" ] } ] }

에픽

작업설명필요한 기술

사용자 풀을 생성합니다.

  1. 에 로그인 AWS Management Console 하고 Amazon Cognito 콘솔을 엽니다.

  2. 사용자 풀 관리를 선택합니다.

  3. 페이지 오른쪽 상단에서 사용자 풀 생성을 선택합니다.

  4. 사용자 풀의 이름을 입력하고 기본값 검토를 선택한 다음 풀 생성을 선택합니다.

  5. 풀 ID를 기록합니다.

개발자

앱 클라이언트를 추가합니다.

앱을 생성하여 사용자 가입 및 로그인에 대해 내장 웹 페이지를 사용할 수 있습니다.

  1. 사용자 풀 페이지 왼쪽 탐색 모음에서 일반 설정에서 앱 클라이언트를 선택하고 나서 앱 클라이언트 추가를 선택합니다.

  2. 앱 이름을 지정한 다음 앱 클라이언트 생성을 선택합니다.

  3. 앱 클라이언트 ID와 클라이언트 암호를 기록해 둡니다.(클라이언트 암호를 보려면 세부 정보 보기를 선택하세요).

개발자

Amazon Cognito 사용자 풀을 생성

작업설명필요한 기술

사용자 풀을 생성합니다.

  1. 에 로그인 AWS Management Console 하고 Amazon Cognito 콘솔을 엽니다.

  2. 사용자 풀 관리를 선택합니다.

  3. 페이지 오른쪽 상단에서 사용자 풀 생성을 선택합니다.

  4. 사용자 풀의 이름을 입력하고 기본값 검토를 선택한 다음 풀 생성을 선택합니다.

  5. 풀 ID를 기록합니다.

개발자

앱 클라이언트를 추가합니다.

앱을 생성하여 사용자 가입 및 로그인에 대해 내장 웹 페이지를 사용할 수 있습니다.

  1. 사용자 풀 페이지 왼쪽 탐색 모음에서 일반 설정에서 앱 클라이언트를 선택하고 나서 앱 클라이언트 추가를 선택합니다.

  2. 앱 이름을 지정한 다음 앱 클라이언트 생성을 선택합니다.

  3. 앱 클라이언트 ID와 클라이언트 암호를 기록해 둡니다.(클라이언트 암호를 보려면 세부 정보 보기를 선택하세요).

개발자
작업설명필요한 기술

자격 증명 풀을 생성합니다.

  1. Amazon Cognito 콘솔에 로그인하고 자격 증명 풀 관리를 선택한 다음 새 자격 증명 풀 생성을 선택합니다.

  2. 자격 증명 풀의 이름을 입력합니다.

  3. 인증되지 않은 자격 증명을 활성화하려면 인증되지 않은 자격 증명 섹션에서 해당 옵션을 선택합니다.

  4. 인증 공급자 섹션에서 사용자 풀 ID와 앱 클라이언트 ID를 설정하여 Amazon Cognito 자격 증명 풀을 구성한 다음 풀 생성을 선택합니다.

개발자

자격 증명 풀에 대한 IAM 역할을 할당합니다.

인증된 사용자 및 인증되지 않은 사용자의 IAM 역할을 편집하거나 기본값을 유지하고 허용을 선택할 수 있습니다. 이 패턴의 경우 인증된 IAM 역할을 편집하고 s3:ListAllMyBuckets에 대한 액세스 권한을 제공하겠습니다. 샘플 코드는 도구 섹션 앞부분에 제공된 IAM 역할을 참조하세요.도구

개발자

자격 증명 풀 ID를 복사합니다.

이전 단계에서 허용을 선택하면 Amazon Cognito 시작하기 페이지가 표시됩니다. 이 페이지에서 AWS 보안 인증 정보 가져오기 섹션에서 자격 증명 풀 ID를 복사하거나 오른쪽 상단에서 자격 증명 풀 편집을 선택하고 표시된 화면에서 자격 증명 풀 ID를 복사할 수 있습니다.

개발자

Amazon Cognito 자격 증명 풀 생성

작업설명필요한 기술

자격 증명 풀을 생성합니다.

  1. Amazon Cognito 콘솔에 로그인하고 자격 증명 풀 관리를 선택한 다음 새 자격 증명 풀 생성을 선택합니다.

  2. 자격 증명 풀의 이름을 입력합니다.

  3. 인증되지 않은 자격 증명을 활성화하려면 인증되지 않은 자격 증명 섹션에서 해당 옵션을 선택합니다.

  4. 인증 공급자 섹션에서 사용자 풀 ID와 앱 클라이언트 ID를 설정하여 Amazon Cognito 자격 증명 풀을 구성한 다음 풀 생성을 선택합니다.

개발자

자격 증명 풀에 대한 IAM 역할을 할당합니다.

인증된 사용자 및 인증되지 않은 사용자의 IAM 역할을 편집하거나 기본값을 유지하고 허용을 선택할 수 있습니다. 이 패턴의 경우 인증된 IAM 역할을 편집하고 s3:ListAllMyBuckets에 대한 액세스 권한을 제공하겠습니다. 샘플 코드는 도구 섹션 앞부분에 제공된 IAM 역할을 참조하세요.도구

개발자

자격 증명 풀 ID를 복사합니다.

이전 단계에서 허용을 선택하면 Amazon Cognito 시작하기 페이지가 표시됩니다. 이 페이지에서 AWS 보안 인증 정보 가져오기 섹션에서 자격 증명 풀 ID를 복사하거나 오른쪽 상단에서 자격 증명 풀 편집을 선택하고 표시된 화면에서 자격 증명 풀 ID를 복사할 수 있습니다.

개발자
작업설명필요한 기술

샘플 ASP.NET Core 웹 앱을 복제합니다.

  1. https://github.com/aws/aws-aspnet-cognito-identity-provider.git에서 샘플 ASP.NET Core 웹 앱을 복제합니다.

  2. samples 폴더로 이동하여 솔루션을 엽니다. 이 프로젝트에서는 appsettings.json 파일을 구성하고 로그인에 성공한 후 모든 S3 버킷을 렌더링하는 새 페이지를 추가합니다.

개발자

종속성을 추가합니다.

ASP.NET Core 애플리케이션에 Amazon.AspNetCore.Identity.Cognito에 대한 NuGet 종속성을 추가합니다.

개발자

구성 키와 값을에 추가합니다appsettings.json.

appsettings.json 파일에 첨부된 appsettings.json 파일의 코드를 포함한 다음, 자리 표시자를 이전 단계의 값으로 바꿉니다.

개발자

새 사용자를 생성하고 로그인합니다.

Amazon Cognito 사용자 풀에 새 사용자를 생성하고 해당 사용자가 사용자 풀의 사용자 및 그룹에 있는지 확인합니다.

개발자

라는 새 Razor 페이지를 생성합니다MyS3Buckets.

샘플 앱에 새 ASP.NET Core Razor Page를 추가하고 첨부된 샘플의 MyS3Bucket.cshtmlMyS3Bucket.cshtml.cs의 콘텐츠를 교체합니다. _Layout.cshtml 페이지의 탐색 아래에 새 MyS3Bucket 페이지를 추가합니다.

개발자

샘플 앱 구성

작업설명필요한 기술

샘플 ASP.NET Core 웹 앱을 복제합니다.

  1. https://github.com/aws/aws-aspnet-cognito-identity-provider.git에서 샘플 ASP.NET Core 웹 앱을 복제합니다.

  2. samples 폴더로 이동하여 솔루션을 엽니다. 이 프로젝트에서는 appsettings.json 파일을 구성하고 로그인에 성공한 후 모든 S3 버킷을 렌더링하는 새 페이지를 추가합니다.

개발자

종속성을 추가합니다.

ASP.NET Core 애플리케이션에 Amazon.AspNetCore.Identity.Cognito에 대한 NuGet 종속성을 추가합니다.

개발자

구성 키와 값을에 추가합니다appsettings.json.

appsettings.json 파일에 첨부된 appsettings.json 파일의 코드를 포함한 다음, 자리 표시자를 이전 단계의 값으로 바꿉니다.

개발자

새 사용자를 생성하고 로그인합니다.

Amazon Cognito 사용자 풀에 새 사용자를 생성하고 해당 사용자가 사용자 풀의 사용자 및 그룹에 있는지 확인합니다.

개발자

라는 새 Razor 페이지를 생성합니다MyS3Buckets.

샘플 앱에 새 ASP.NET Core Razor Page를 추가하고 첨부된 샘플의 MyS3Bucket.cshtmlMyS3Bucket.cshtml.cs의 콘텐츠를 교체합니다. _Layout.cshtml 페이지의 탐색 아래에 새 MyS3Bucket 페이지를 추가합니다.

개발자

문제 해결

문제Solution

GitHub 리포지토리에서 샘플 애플리케이션을 연 후 Samples 프로젝트에 NuGet 패키지를 추가하려고 하면 오류가 발생합니다.

src 폴더에서 Amazon.AspNetCore.Identity.Cognito 프로젝트에 대한 참조를 Samples.sln 파일에서 제거했는지 확인하세요. 그러면 NuGet 패키지를 문제 없이 Samples 프로젝트에 추가할 수 있습니다.

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.