기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자격 증명 얻기
사용자가 AWS 리소스에 액세스할 수 있도록 Amazon Cognito를 사용하여 애플리케이션에 제한된 권한의 임시 자격 증명을 제공할 수 있습니다. 이 섹션에서는 자격 증명을 가져오는 방법과 자격 증명 풀에서 Amazon Cognito 자격 증명을 가져오는 방법을 설명합니다.
Amazon Cognito는 인증된 자격 증명과 인증되지 않은 자격 증명을 모두 지원합니다. 미인증 사용자는 자격 증명이 인증되지 않았으므로 앱 혹은 자격 증명의 인증이 중요하지 않은 경우 게스트 사용자 역할에 적합합니다. 인증받은 사용자는 타사 자격 증명 공급자(IdP)를 통해, 또는 자격 증명을 인증받은 사용자 풀을 통해 애플리케이션에 로그인합니다. 미인증 사용자의 액세스 권한을 허용하지 않도록 리소스 권한 범위를 충분히 정했는지 확인하세요.
Amazon Cognito 자격 증명(identity)은 자격 증명(credential)이 아닙니다. ()에서 웹 자격 증명 페더레이션 지원을 사용하여 자격 증명으로 교환됩니다 AWS Security Token Service AWS STS. 앱 사용자를 위해 AWS
자격 증명을 얻는 권장 방법은 AWS.CognitoIdentityCredentials
를 사용하는 것입니다. 그런 다음 자격 증명 객체의 자격 증명은를 사용하여 자격 증명으로 교환됩니다 AWS STS.
참고
2015년 2월 이전에 자격 증명 풀을 만든 경우 파라미터 역할 없이 AWS.CognitoIdentityCredentials
생성자를 사용하려면 역할을 자격 증명 풀과 다시 연결해야 합니다. 이렇게 하려면 Amazon Cognito 콘솔
웹 자격 증명 보안 인증 공급자는 AWS SDK의 기본 보안 인증 공급자 체인의 일부입니다. SDK 또는의 로컬 config
파일에 자격 증명 풀 토큰을 AWS 설정하려면 web_identity_token_file
프로필 항목을 AWS CLI추가합니다. SDK 및 도구 참조 안내서의 역할 자격 증명 공급자 수임을 참조하세요. AWS SDKs
SDK에 웹 자격 증명 보안 인증을 채우는 방법에 대한 자세한 내용은 SDK 개발자 안내서를 참조하세요. 최상의 결과를 얻으려면에 내장된 자격 증명 풀 통합으로 프로젝트를 시작하십시오 AWS Amplify.
AWS 자격 증명 풀을 사용하여 자격 증명을 가져오고 설정하기 위한 SDK 리소스
-
Amplify 개발자 센터의 자격 증명 풀 페더레이션
(Android) -
Amplify 개발자 센터의 자격 증명 풀 페더레이션
(iOS) -
AWS SDK for JavaScript 개발자 안내서의 Amazon Cognito 자격 증명을 사용하여 사용자 인증
-
AWS SDK for .NET 개발자 안내서의 Amazon Cognito 자격 증명 공급자
-
AWS SDK for Go 개발자 안내서에서 프로그래밍 방식으로 자격 증명 지정
-
AWS SDK for Java 2.x 개발자 안내서의 코드에 임시 자격 증명 제공
-
AWS SDK for PHP 개발자 안내서의 assumeRoleWithWebIdentityCredentialProvider 공급자
-
AWS SDK for Python (Boto3) 설명서의 웹 ID 제공업체를 사용하여 역할 수임
-
AWS SDK for Rust 개발자 안내서의 자격 증명 및 기본 리전 지정
다음 섹션에서는 일부 AWS SDKs의 예제 코드를 제공합니다.
사용자가 AWS 리소스에 액세스할 수 있도록 Amazon Cognito를 사용하여 애플리케이션에 제한된 권한의 임시 자격 증명을 제공할 수 있습니다. Amazon Cognito는 인증된 자격 증명과 인증되지 않은 자격 증명을 모두 지원합니다. 앱에 AWS 자격 증명을 제공하려면 아래 단계를 따르세요.
Android 앱에서 Amazon Cognito 자격 증명 풀을 사용하려면를 설정합니다 AWS Amplify. 자세한 내용은 Amplify 개발자 센터의 인증
Amazon Cognito 자격 증명 검색
인증되지 않은 사용자를 허용하는 경우 최종 사용자의 고유한 Amazon Cognito 식별자(자격 증명 ID)를 즉시 검색할 수 있습니다. 사용자를 인증하는 경우 자격 증명 공급자에서 로그인 토큰을 설정한 후 자격 증명 ID를 검색할 수 있습니다.
String identityId = credentialsProvider.getIdentityId(); Log.d("LogTag", "my ID is " + identityId);
참고
애플리케이션의 기본 스레드에서 getIdentityId()
, refresh()
또는 getCredentials()
를 호출하지 마세요. Android 3.0(API 레벨 11)을 기준으로 기본 애플리케이션 스레드에서 네트워크 I/O를 수행하는 경우 앱이 자동으로 실패하고 NetworkOnMainThreadExceptionAsyncTask
를 사용하여 코드를 백그라운드 스레드로 이동해야 합니다. 자세한 내용은 Android 설명서getCachedIdentityId()
를 호출하여 ID를 검색할 수 있습니다. 그렇지 않으면 메서드가 null을 반환합니다.
사용자가 AWS 리소스에 액세스할 수 있도록 Amazon Cognito를 사용하여 애플리케이션에 제한된 권한의 임시 자격 증명을 제공할 수 있습니다. Amazon Cognito 자격 증명 풀은 인증된 자격 증명과 인증되지 않은 자격 증명을 모두 지원합니다. 앱에 AWS 자격 증명을 제공하려면 다음 단계를 완료하세요.
iOS 앱에서 Amazon Cognito 자격 증명 풀을 사용하려면를 설정합니다 AWS Amplify. 자세한 내용은 Amplify 개발자 센터의 Swift 인증
Amazon Cognito 자격 증명 검색
인증되지 않은 사용자를 허용하는 경우 또는 사용자를 인증하는 경우 자격 증명 공급자에서 로그인 토큰을 설정한 후에 최종 사용자의 Amazon Cognito 식별자(자격 증명 ID)를 즉시 검색할 수 있습니다.
// Retrieve your Amazon Cognito ID [[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"Error: %@", task.error); } else { // the task result will contain the identity id NSString *cognitoId = task.result; } return nil; }];
참고
getIdentityId
는 비동기식 호출입니다. 자격 증명 ID가 이미 공급자에 설정된 경우 credentialsProvider.identityId
를 호출하여 해당 자격 증명을 검색할 수 있으며 이 자격 증명은 로컬에 캐시됩니다. 그러나 자격 증명 ID가 공급자에 설정되지 않은 경우 credentialsProvider.identityId
를 호출하면 nil
이 반환됩니다. 자세한 내용은 Amplify iOS SDK 참조
사용자가 AWS 리소스에 액세스할 수 있도록 Amazon Cognito를 사용하여 애플리케이션에 제한된 권한의 임시 자격 증명을 제공할 수 있습니다. Amazon Cognito는 인증된 자격 증명과 인증되지 않은 자격 증명을 모두 지원합니다. 앱에 AWS 자격 증명을 제공하려면 아래 단계를 따르세요.
iOS 앱에서 Amazon Cognito 자격 증명 풀을 사용하려면를 설정합니다 AWS Amplify. 자세한 내용은 Amplify 개발자 센터의 Swift 인증
Amazon Cognito 자격 증명 검색
인증되지 않은 사용자를 허용하는 경우 또는 사용자를 인증하는 경우 자격 증명 공급자에서 로그인 토큰을 설정한 후에 최종 사용자의 Amazon Cognito 식별자(자격 증명 ID)를 즉시 검색할 수 있습니다.
// Retrieve your Amazon Cognito ID credentialsProvider.getIdentityId().continueWith(block: { (task) -> AnyObject? in if (task.error != nil) { print("Error: " + task.error!.localizedDescription) } else { // the task result will contain the identity id let cognitoId = task.result! print("Cognito id: \(cognitoId)") } return task; })
참고
getIdentityId
는 비동기식 호출입니다. 자격 증명 ID가 이미 공급자에 설정된 경우 credentialsProvider.identityId
를 호출하여 해당 자격 증명을 검색할 수 있으며 이 자격 증명은 로컬에 캐시됩니다. 그러나 자격 증명 ID가 공급자에 설정되지 않은 경우 credentialsProvider.identityId
를 호출하면 nil
이 반환됩니다. 자세한 내용은 Amplify iOS SDK 참조
자격 증명 풀을 아직 만들지 않았다면 AWS.CognitoIdentityCredentials
를 사용하기 전에 Amazon Cognito 콘솔
자격 증명 제공자로 자격 증명 풀을 구성한 후에는 AWS.CognitoIdentityCredentials
를 사용하여 사용자를 인증할 수 있습니다. AWS.CognitoIdentityCredentials
를 사용하도록 애플리케이션 자격 증명을 구성하려면, credentials
또는 서비스당 구성의 AWS.Config
속성을 설정하세요. 다음 예에는 AWS.Config
가 사용됩니다.
// Set the region where your identity pool exists (us-east-1, eu-west-1) AWS.config.region = 'us-east-1'; // Configure the credentials provider to use your identity pool AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { // optional tokens, used for authenticated login 'graph.facebook.com': 'FBTOKEN', 'www.amazon.com': 'AMAZONTOKEN', 'accounts.google.com': 'GOOGLETOKEN', 'appleid.apple.com': 'APPLETOKEN' } }); // Make the call to obtain credentials AWS.config.credentials.get(function(){ // Credentials will be available when this function is called. var accessKeyId = AWS.config.credentials.accessKeyId; var secretAccessKey = AWS.config.credentials.secretAccessKey; var sessionToken = AWS.config.credentials.sessionToken; });
선택 사항인 Logins
속성은 공급자의 자격 증명 토큰에 대한 자격 증명 공급자 이름의 맵입니다. 자격 증명 공급자에게서 토큰을 받는 방법은 어떤 공급자를 사용하느냐에 따라 다릅니다. 예를 들어 Facebook이 자격 증명 공급자 중 하나인 경우 Facebook SDKFB.login
함수를 사용하여 자격 증명 공급자 토큰을 얻을 수 있습니다.
FB.login(function (response) { if (response.authResponse) { // logged in AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030', Logins: { 'graph.facebook.com': response.authResponse.accessToken } }); console.log('You are now logged in.'); } else { console.log('There was a problem logging you in.'); } });
Amazon Cognito 자격 증명 검색
인증되지 않은 사용자를 허용하는 경우 또는 사용자를 인증하는 경우 자격 증명 공급자에서 로그인 토큰을 설정한 후에 최종 사용자의 Amazon Cognito 식별자(자격 증명 ID)를 즉시 검색할 수 있습니다.
var identityId = AWS.config.credentials.identityId;
사용자가 AWS 리소스에 액세스할 수 있도록 Amazon Cognito를 사용하여 애플리케이션에 제한된 권한의 임시 자격 증명을 제공할 수 있습니다. Amazon Cognito는 인증된 자격 증명과 인증되지 않은 자격 증명을 모두 지원합니다. 앱에 AWS 자격 증명을 제공하려면 아래 단계를 따르세요.
AWS SDK for Unity는 이제 AWS SDK for .NET의 일부입니다. 에서 Amazon Cognito를 시작하려면 AWS SDK for .NET 개발자 안내서의 Amazon Cognito 자격 증명 공급자를 AWS SDK for .NET참조하세요. 또는 Amplify Dev Center
Amazon Cognito 자격 증명 검색
인증되지 않은 사용자를 허용하는 경우 또는 사용자를 인증하는 경우 자격 증명 공급자에서 로그인 토큰을 설정한 후에 최종 사용자의 Amazon Cognito 식별자(자격 증명 ID)를 즉시 검색할 수 있습니다.
credentials.GetIdentityIdAsync(delegate(AmazonCognitoIdentityResult<string> result) { if (result.Exception != null) { //Exception! } string identityId = result.Response; });
사용자가 AWS 리소스에 액세스할 수 있도록 Amazon Cognito를 사용하여 애플리케이션에 제한된 권한의 임시 자격 증명을 제공할 수 있습니다. Amazon Cognito는 인증된 자격 증명과 인증되지 않은 자격 증명을 모두 지원합니다. 앱에 AWS 자격 증명을 제공하려면 아래 단계를 따르세요.
AWS SDK for Xamarin은 이제 AWS SDK for .NET의 일부입니다. 에서 Amazon Cognito를 시작하려면 AWS SDK for .NET 개발자 안내서의 Amazon Cognito 자격 증명 공급자를 AWS SDK for .NET참조하세요. 또는 Amplify Dev Center
참고
참고: 2015년 2월 이전에 자격 증명 풀을 만든 경우 파라미터 역할 없이 이 생성자를 사용하려면 역할을 작업 증명 풀과 다시 연결해야 합니다. 이렇게 하려면 Amazon Cognito 콘솔
Amazon Cognito 자격 증명 검색
인증되지 않은 사용자를 허용하는 경우 또는 사용자를 인증하는 경우 자격 증명 공급자에서 로그인 토큰을 설정한 후에 최종 사용자의 Amazon Cognito 식별자(자격 증명 ID)를 즉시 검색할 수 있습니다.
var identityId = await credentials.GetIdentityIdAsync();