Google(자격 증명 풀) - Amazon Cognito

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Google(자격 증명 풀)

Amazon Cognito는 Google과 통합되어 모바일 애플리케이션 사용자를 위해 연동된 인증을 제공합니다. 이 단원에서는 Google을 자격 증명 공급자로 사용하여 애플리케이션을 등록하고 설정하는 방법을 설명합니다.

Android

참고

앱이 Google을 사용하고 여러 모바일 플랫폼에서 사용할 수 있는 경우 앱을 OpenID Connect 공급자로 구성해야 합니다. 더 나은 통합을 위해 생성된 모든 클라이언트 ID를 추가 대상 값으로 추가합니다. Google 크로스 클라이언트 자격 증명 모델에 대한 자세한 내용은 Cross-client Identity를 참조하십시오.

Google 설정

Android용 Google 로그인을 사용하도록 설정하려면 애플리케이션을 위한 Google 개발자 콘솔 프로젝트를 만들어야 합니다.

  1. Google 개발자 콘솔로 이동하여 새 프로젝트를 만듭니다.

  2. API 및 인증 > API > 소셜 API에서 Google API를 사용 설정합니다.

  3. API 및 인증 > 자격 증명 > OAuth 동의 화면에서 앱이 개인 데이터에 대한 액세스를 요청할 때 사용자에게 표시되는 대화 상자를 만듭니다.

  4. 자격 증명 > 자격 증명 추가에서 Android용 OAuth 2.0 클라이언트 ID를 만듭니다. 개발하려는 각 플랫폼(웹, iOS, Android 등)의 클라이언트 ID가 필요합니다.

  5. 자격 증명 > 자격 증명 추가에서 서비스 계정을 만듭니다. 새 공개/비공개 키가 생성되었다는 알림이 콘솔에 표시됩니다.

Google 개발자 콘솔 사용에 대한 자세한 내용은 개발자 콘솔에서 프로젝트 관리를 참조하십시오.

Google을 Android 앱에 통합하는 데 대한 자세한 정보는 Android용 Google 설명서를 참조하십시오.

Amazon Cognito 콘솔에서 외부 공급자 구성

Amazon Cognito 콘솔에서 자격 증명 풀 관리를 선택합니다.

  1. Google을 외부 공급자로 허용할 자격 증명 풀의 이름을 선택합니다. 자격 증명 풀에 대한 대시보드 페이지가 표시됩니다.

  2. 대시보드 페이지의 우측 상단 모서리에서 자격 증명 풀 편집을 선택합니다. [Edit identity pool] 페이지가 표시됩니다.

  3. 아래로 스크롤하고 인증 공급자를 선택하여 확장합니다.

  4. Google 탭을 선택합니다.

  5. 잠금 해제를 선택합니다.

  6. Google에서 가져온 Google 클라이언트 ID를 입력하고 변경 사항 저장을 선택합니다.

Google 사용

애플리케이션에서 Google로 로그인하도록 허용하려면 Android용 Google 설명서를 따르십시오. 인증에 성공하면 OpenID Connect 인증 토큰을 가져오고 Amazon Cognito에서 이를 사용하여 사용자를 인증하고 고유 식별자를 생성합니다.

다음 샘플 코드는 Google Play 서비스에서 인증 토큰을 가져오는 방법을 보여줍니다.

GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); AccountManager am = AccountManager.get(this); Account[] accounts = am.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); String token = GoogleAuthUtil.getToken(getApplicationContext(), accounts[0].name, "audience:server:client_id:YOUR_GOOGLE_CLIENT_ID"); Map<String, String> logins = new HashMap<String, String>(); logins.put("accounts.google.com", token); credentialsProvider.setLogins(logins);

iOS - Objective-C

참고

앱이 Google을 사용하고 여러 모바일 플랫폼에서 사용할 수 있는 경우 앱을 OpenID Connect 공급자로 구성해야 합니다. 더 나은 통합을 위해 생성된 모든 클라이언트 ID를 추가 대상 값으로 추가합니다. Google 크로스 클라이언트 자격 증명 모델에 대한 자세한 내용은 Cross-client Identity를 참조하십시오.

iOS용 Google 로그인을 사용하도록 설정하려면 애플리케이션을 위한 Google 개발자 콘솔 프로젝트를 만들어야 합니다.

Google 설정

  1. Google 개발자 콘솔로 이동하여 새 프로젝트를 만듭니다.

  2. API 및 인증 > API > 소셜 API에서 Google API를 사용 설정합니다.

  3. API 및 인증 > 자격 증명 > OAuth 동의 화면에서 앱이 개인 데이터에 대한 액세스를 요청할 때 사용자에게 표시되는 대화 상자를 만듭니다.

  4. 자격 증명 > 자격 증명 추가에서 iOS용 OAuth 2.0 클라이언트 ID를 만듭니다. 개발하려는 각 플랫폼(웹, iOS, Android 등)의 클라이언트 ID가 필요합니다.

  5. 자격 증명 > 자격 증명 추가에서 서비스 계정을 만듭니다. 새 공개/비공개 키가 생성되었다는 알림이 콘솔에 표시됩니다.

Google 개발자 콘솔 사용에 대한 자세한 내용은 개발자 콘솔에서 프로젝트 관리를 참조하십시오.

Google을 iOS 앱에 통합하는 데 대한 자세한 정보는 iOS용 Google 설명서를 참조하십시오.

Amazon Cognito 콘솔에서 자격 증명 풀 관리를 선택합니다.

Amazon Cognito 콘솔에서 외부 공급자 구성

  1. Google을 외부 공급자로 허용할 자격 증명 풀의 이름을 선택합니다. 자격 증명 풀에 대한 대시보드 페이지가 표시됩니다.

  2. 대시보드 페이지의 우측 상단 모서리에서 자격 증명 풀 편집을 선택합니다. [Edit identity pool] 페이지가 표시됩니다.

  3. 아래로 스크롤하고 인증 공급자를 선택하여 확장합니다.

  4. Google 탭을 선택합니다.

  5. 잠금 해제를 선택합니다.

  6. Google에서 가져온 Google 클라이언트 ID를 입력하고 변경 사항 저장을 선택합니다.

Google 사용

애플리케이션에서 Google로 로그인하도록 허용하려면 iOS용 Google 설명서를 따르십시오. 인증에 성공하면 OpenID Connect 인증 토큰을 가져오고 Amazon Cognito에서 이를 사용하여 사용자를 인증하고 고유 식별자를 생성합니다.

인증에 성공하면 id_token이 포함된 GTMOAuth2Authentication 객체를 가져오고 Amazon Cognito에서 이를 사용하여 사용자를 인증하고 고유 식별자를 생성합니다.

- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth error: (NSError *) error { NSString *idToken = [auth.parameters objectForKey:@"id_token"]; credentialsProvider.logins = @{ @(AWSCognitoLoginProviderKeyGoogle): idToken }; }

iOS - Swift

참고

앱이 Google을 사용하고 여러 모바일 플랫폼에서 사용할 수 있는 경우 앱을 OpenID Connect 공급자로 구성해야 합니다. 더 나은 통합을 위해 생성된 모든 클라이언트 ID를 추가 대상 값으로 추가합니다. Google 크로스 클라이언트 자격 증명 모델에 대한 자세한 내용은 Cross-client Identity를 참조하십시오.

iOS용 Google 로그인을 사용하도록 설정하려면 애플리케이션을 위한 Google 개발자 콘솔 프로젝트를 만들어야 합니다.

Google 설정

  1. Google 개발자 콘솔로 이동하여 새 프로젝트를 만듭니다.

  2. API 및 인증 > API > 소셜 API에서 Google API를 사용 설정합니다.

  3. API 및 인증 > 자격 증명 > OAuth 동의 화면에서 앱이 개인 데이터에 대한 액세스를 요청할 때 사용자에게 표시되는 대화 상자를 만듭니다.

  4. 자격 증명 > 자격 증명 추가에서 iOS용 OAuth 2.0 클라이언트 ID를 만듭니다. 개발하려는 각 플랫폼(웹, iOS, Android 등)의 클라이언트 ID가 필요합니다.

  5. 자격 증명 > 자격 증명 추가에서 서비스 계정을 만듭니다. 새 공개/비공개 키가 생성되었다는 알림이 콘솔에 표시됩니다.

Google 개발자 콘솔 사용에 대한 자세한 내용은 개발자 콘솔에서 프로젝트 관리를 참조하십시오.

Google을 iOS 앱에 통합하는 데 대한 자세한 정보는 iOS용 Google 설명서를 참조하십시오.

Amazon Cognito 콘솔에서 자격 증명 풀 관리를 선택합니다.

Amazon Cognito 콘솔에서 외부 공급자 구성

  1. Google을 외부 공급자로 허용할 자격 증명 풀의 이름을 선택합니다. 자격 증명 풀에 대한 대시보드 페이지가 표시됩니다.

  2. 대시보드 페이지의 우측 상단 모서리에서 자격 증명 풀 편집을 선택합니다. [Edit identity pool] 페이지가 표시됩니다.

  3. 아래로 스크롤하고 인증 공급자를 선택하여 확장합니다.

  4. Google 탭을 선택합니다.

  5. 잠금 해제를 선택합니다.

  6. Google에서 가져온 Google 클라이언트 ID를 입력하고 변경 사항 저장을 선택합니다.

Google 사용

애플리케이션에서 Google로 로그인하도록 허용하려면 iOS용 Google 설명서를 따르십시오. 인증에 성공하면 OpenID Connect 인증 토큰을 가져오고 Amazon Cognito에서 이를 사용하여 사용자를 인증하고 고유 식별자를 생성합니다.

인증에 성공하면 id_token이 포함된 GTMOAuth2Authentication 객체를 가져오고 Amazon Cognito에서 이를 사용하여 사용자를 인증하고 고유 식별자를 생성합니다.

func finishedWithAuth(auth: GTMOAuth2Authentication!, error: NSError!) { if error != nil { print(error.localizedDescription) } else { let idToken = auth.parameters.objectForKey("id_token") credentialsProvider.logins = [AWSCognitoLoginProviderKey.Google.rawValue: idToken!] } }

JavaScript

참고

앱이 Google을 사용하고 여러 모바일 플랫폼에서 사용할 수 있는 경우 앱을 OpenID Connect 공급자로 구성해야 합니다. 더 나은 통합을 위해 생성된 모든 클라이언트 ID를 추가 대상 값으로 추가합니다. Google 크로스 클라이언트 자격 증명 모델에 대한 자세한 내용은 Cross-client Identity를 참조하십시오.

Google 설정

웹 애플리케이션에 Google 로그인을 사용하도록 설정하려면 애플리케이션을 위한 Google 개발자 콘솔 프로젝트를 만들어야 합니다.

  1. Google 개발자 콘솔로 이동하여 새 프로젝트를 만듭니다.

  2. API 및 인증 > API > 소셜 API에서 Google API를 사용 설정합니다.

  3. API 및 인증 > 자격 증명 > OAuth 동의 화면에서 앱이 개인 데이터에 대한 액세스를 요청할 때 사용자에게 표시되는 대화 상자를 만듭니다.

  4. 자격 증명 > 자격 증명 추가에서 웹 애플리케이션을 위한 OAuth 2.0 클라이언트 ID를 만듭니다. 개발하려는 각 플랫폼(웹, iOS, Android 등)의 클라이언트 ID가 필요합니다.

  5. 자격 증명 > 자격 증명 추가에서 서비스 계정을 만듭니다. 새 공개/비공개 키가 생성되었다는 알림이 콘솔에 표시됩니다.

Google 개발자 콘솔 사용에 대한 자세한 내용은 개발자 콘솔에서 프로젝트 관리를 참조하십시오.

Amazon Cognito 콘솔에서 외부 공급자 구성

Amazon Cognito 콘솔에서 자격 증명 풀 관리를 선택합니다.

  1. Google을 외부 공급자로 허용할 자격 증명 풀의 이름을 선택합니다. 자격 증명 풀에 대한 대시보드 페이지가 표시됩니다.

  2. 대시보드 페이지의 우측 상단 모서리에서 자격 증명 풀 편집을 선택합니다. [Edit identity pool] 페이지가 표시됩니다.

  3. 아래로 스크롤하고 인증 공급자를 선택하여 확장합니다.

  4. Google 탭을 선택합니다.

  5. 잠금 해제를 선택합니다.

  6. Google에서 가져온 Google 클라이언트 ID를 입력하고 변경 사항 저장을 선택합니다.

Google 사용

애플리케이션에서 Google로 로그인하도록 허용하려면 웹용 Google 설명서를 따르십시오.

인증에 성공하면 id_token이 포함된 응답 객체를 가져오고 Amazon Cognito에서 이를 사용하여 사용자를 인증하고 고유 식별자를 생성합니다.

function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Add the Google access token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'accounts.google.com': authResult['id_token'] } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); } }

Unity

Google 설정

웹 애플리케이션에 Google 로그인을 사용하도록 설정하려면 애플리케이션을 위한 Google 개발자 콘솔 프로젝트를 만들어야 합니다.

  1. Google 개발자 콘솔로 이동하여 새 프로젝트를 만듭니다.

  2. API 및 인증 > API > 소셜 API에서 Google API를 사용 설정합니다.

  3. API 및 인증 > 자격 증명 > OAuth 동의 화면에서 앱이 개인 데이터에 대한 액세스를 요청할 때 사용자에게 표시되는 대화 상자를 만듭니다.

  4. Unity의 경우 총 3개의 ID를 만들어야 합니다. 2개는 Android용이고 하나는 iOS용입니다. 자격 증명 > 자격 증명 추가에서 다음을 수행합니다.

    • Android: Android용 OAuth 2.0 클라이언트 ID와 웹 애플리케이션용 OAuth 2.0 클라이언트 ID를 만듭니다.

    • iOS: iOS용 OAuth 2.0 클라이언트 ID를 만듭니다.

  5. 자격 증명 > 자격 증명 추가에서 서비스 계정을 만듭니다. 새 공개/비공개 키가 생성되었다는 알림이 콘솔에 표시됩니다.

IAM 콘솔에서 OpenID 공급자 만들기

  1. 그런 다음 IAM 콘솔에서 OpenID 공급자를 만들어야 합니다. OpenID 공급자를 설정하는 방법에 대한 지침은 OpenID Connect 자격 증명 공급자 사용을 참조하십시오.

  2. 공급자 URL을 입력하라는 메시지가 나타나면 "https://accounts.google.com"을 입력합니다.

  3. Audience 필드에 값을 입력하라는 메시지가 나타나면 전 단계에서 만든 클라이언트 ID 3개 중 하나를 입력합니다.

  4. 공급자를 만든 후 공급자 이름을 선택하고 나머지 클라이언트 ID 2개를 제공하여 대상 2개를 더 추가합니다.

Amazon Cognito 콘솔에서 외부 공급자 구성

Amazon Cognito 콘솔에서 자격 증명 풀 관리를 선택합니다.

  1. Google을 외부 공급자로 허용할 자격 증명 풀의 이름을 선택합니다. 자격 증명 풀에 대한 대시보드 페이지가 표시됩니다.

  2. 대시보드 페이지의 우측 상단 모서리에서 자격 증명 풀 편집을 선택합니다. [Edit identity pool] 페이지가 표시됩니다.

  3. 아래로 스크롤하고 인증 공급자를 선택하여 확장합니다.

  4. Google 탭을 선택합니다.

  5. 잠금 해제를 선택합니다.

  6. Google에서 가져온 Google 클라이언트 ID를 입력하고 변경 사항 저장을 선택합니다.

Unity Google 플러그인 설치

  1. Unity용 Google Play Games 플러그인을 Unity 프로젝트에 추가합니다.

  2. Unity의 Windows 메뉴에서 Android 및 iOS 플랫폼을 위한 ID 3개를 사용하여 플러그인을 구성합니다.

Google 사용

다음 샘플 코드는 Google Play 서비스에서 인증 토큰을 가져오는 방법을 보여줍니다.

void Start() { PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.DebugLogEnabled = true; PlayGamesPlatform.Activate(); Social.localUser.Authenticate(GoogleLoginCallback); } void GoogleLoginCallback(bool success) { if (success) { string token = PlayGamesPlatform.Instance.GetIdToken(); credentials.AddLogin("accounts.google.com", token); } else { Debug.LogError("Google login failed. If you are not running in an actual Android/iOS device, this is expected."); } }

Xamarin

참고

Xamarin 플랫폼에서는 Google 통합이 기본적으로 지원되지 않습니다. 현재로서는 웹 보기에서 브라우저 로그인 흐름을 통해 통합해야 합니다. Google 통합이 그 밖의 SDK와 연동하는 방법을 알아보려면 다른 플랫폼을 선택하십시오.

애플리케이션에서 Google로 로그인하도록 허용하려면 사용자를 인증하고 사용자에게서 OpenID Connect 토큰을 받아야 합니다. Amazon Cognito는 이 토큰을 사용하여 Amazon Cognito 자격 증명에 연결된 고유한 사용자 식별자를 생성합니다. 그러나 Xamarin용 Google SDK에서는 OpenID Connect 토큰 가져오기를 지원하지 않으므로 다른 클라이언트나 웹 보기의 웹 흐름을 사용해야 합니다.

토큰을 받으면 CognitoAWSCredentials에서 토큰을 설정할 수 있습니다.

credentials.AddLogin("accounts.google.com", token);
참고

앱이 Google을 사용하고 여러 모바일 플랫폼에서 사용할 수 있는 경우 앱을 OpenID Connect 공급자로 구성해야 합니다. 더 나은 통합을 위해 생성된 모든 클라이언트 ID를 추가 대상 값으로 추가합니다. Google 크로스 클라이언트 자격 증명 모델에 대한 자세한 내용은 Cross-client Identity를 참조하십시오.