Google 인증
이 페이지의 내용
개요
Google 인증 제공자 는 사용자가 Google Sign-In 를 통해 기존 Google 계정으로 로그인 할 수 있도록 허용합니다. . 사용자가 로그인하면 Google은 Atlas App Services 에 OAuth 2 0 를 제공합니다. 액세스 토큰 . App Services 는 토큰을 사용하여 사용자를 식별하고 사용자를 대신하여 Google API에서 승인된 데이터에 액세스 합니다.
다음 다이어그램은 OAuth 로직의 흐름을 보여줍니다.
Google API 콘솔에서 프로젝트 설정
Google API Console에서 프로젝트를 설정해야 App Services에서 Google Authentication을 구성할 수 있습니다. Google API Console에서 Google Authenticatio을 설정하려면 SDK 관련 단계를 따르세요.
Google 인증 제공자는 인증 및 사용자 권한을 관리하기 위해 Google API Console의 프로젝트를 요구합니다. 다음 단계에서는 프로젝트 생성, OAuth 자격 증명 생성, 프로젝트와 연결하기 위한 제공자 구성을 안내합니다.
Google API 콘솔에서 프로젝트 생성
Google의 공식 가이드에 따라 새 GCP 프로젝트를 생성하세요.
OAuth 클라이언트 자격 증명 생성
참고
iOS 클라이언트 애플리케이션에 대해서는 웹 OAuth 클라이언트 ID와 iOS OAuth 클라이언트 ID를 모두 생성해야 합니다. 전자는 App Services, 후자는 앱 자체에서 각각 사용합니다.
App Services 용 웹 애플리케이션 클라이언트 ID 를 만드는 방법에 대한 지침은 이 섹션의 Web 탭 을 참조하세요.
프로젝트를 위한 OAuth 2.0 설정에 관한 Google의 지원 가이드를 따르세요.
iOS 애플리케이션 Client ID을(를) 구성할 때 다음 값을 사용하십시오.
Application Type | iOS |
Name | 이 Client ID에 연결하려는 이름입니다. |
Bundle ID | iOS 애플리케이션의 번들 ID입니다. 이 값은 앱의 프라이머리 대상에 대한 General 탭의 XCode에서 찾을 수 있습니다. |
Android 애플리케이션 Client ID 구성 시 다음 값을 사용하세요.
Application Type | Android |
Name | 이 Client ID에 연결하려는 이름입니다. |
Signing-certificate Fingerprint | 애플리케이션 서명 인증서의 SHA-1 지문입니다. 이 값을 생성하는 방법에 대한 지침은 클라이언트 인증을 참조하세요. |
웹 애플리케이션 Client ID 을 만들고 여러 App Services 관련 값을 제공해야 합니다.
Authorized JavaScript Origins 에 다음 URL 을 입력합니다.
https://services.cloud.mongodb.com
Authorized Redirect URIs 에 애플리케이션 의 배포서버 리전 에 해당하는 App Services 인증 콜백 URL 을 입력합니다. 다음 표에는 각 리전 의 콜백 URL 이 나열되어 있습니다.
리전 | App Services 인증 콜백 URL | |
---|---|---|
Global |
| |
Virginia ( us-east-1 ) |
| |
Oregon ( us-west-2 ) |
| |
Ireland ( eu-west-1 ) |
| |
Frankfurt ( eu-central-1 ) |
| |
Mumbai ( ap-south-1 ) |
| |
Singapore ( ap-southeast-1 ) |
| |
Sydney ( ap-southeast-2 ) |
|
Google 인증 제공자 구성
이전 단계에서 생성한 OAuth 2.0 Client ID 및 Client Secret을 인증 제공자 구성에 추가하여 GCP 프로젝트를 App Services에 연결합니다.
참고
제공자 구성에 웹 애플리케이션 자격 증명을 추가했는지 확인하세요. 대신 iOS 자격 증명을 추가하면 Google 인증이 실패합니다.
App Services에서 구성하기
Authentication 페이지에서 Google를 선택하여 App Services에서 인증 제공자를 허용 및 구성할 수 있습니다.
App Services CLI로 Google 인증 제공자를 활성화하고 구성하려면 /auth/providers.json
에서 해당 구성 객체를 정의합니다.
Google 제공자 구성의 형식은 다음과 같습니다.
{ "oauth2-google": { "name": "oauth2-google", "type": "oauth2-google", "disabled": <boolean>, "config": { "clientId": <string>, "openId": <boolean> }, "secret_config": { "clientSecret": <string> }, "metadata_fields": [<document>, ...], "redirect_uris": [<string>, ...], "domain_restrictions": [<string>, ...] } }
Google 인증 제공자에는 다음과 같은 구성 옵션이 있습니다.
필드 | 설명 | |
---|---|---|
Client ID config.clientId | 필수 사항입니다. Google API 콘솔 내 프로젝트의 OAuth 2.0 Client ID입니다. GCP 프로젝트 의 OAuth 자격 증명 설정에 대한 자세한 내용은 Google API 콘솔에서 프로젝트 설정하기를 참조하세요. | |
Client Secret secret_config.clientSecret | 필수 사항입니다. Google API 콘솔에서 프로젝트의 OAuth 2.0 Client Secret을 저장하는 Secret(시크릿)의 이름입니다. GCP 프로젝트 의 OAuth 자격 증명 설정에 대한 자세한 내용은 Google API 콘솔에서 프로젝트 설정하기를 참조하세요. | |
Metadata Fields metadata_fields | 선택 사항입니다. 애플리케이션이 Google Identity API에서 요청할 인증된 사용자를 설명하는 필드 목록입니다. 모든 메타데이터 필드는 기본적으로 생략되며 필드별로 필수로 설정할 수 있습니다. 사용자는 각 필수 필드에 액세스할 수 있는 권한을 앱에 명시적으로 부여해야 합니다. 특정 사용자에 대해 메타데이터 필드가 필수이고 존재하는 경우 해당 사용자 객체에 해당 필드가 포함됩니다. 가져오기/내보내기 구성 파일에서 메타데이터 필드를 요구하려면 해당 필드에 대한 항목을
| |
Redirect URIs redirect_uris | 웹 애플리케이션에 필요합니다. 허용된 리다이렉션 URI 목록입니다. 사용자가 Google에서 인증 프로세스를 완료하면 App Services는 사용자를 지정된 리디렉션 URI로 리디렉션하거나, 리디렉션 URI가 지정되지 않은 경우 인증 요청을 시작한 URL로 리디렉션합니다. App Services는 프로토콜 및 모든 트레일링 슬래시를 포함하여 이 목록의 엔트리와 정확히 일치하는 URI로만 사용자를 리디렉션합니다. | |
Domain Restrictions domain_restrictions | 선택 사항입니다. 사용자 계정에 대해 승인된 도메인 목록입니다. 지정된 경우 제공자는 Google에서 사용자의 프라이머리 이메일 주소 도메인을 확인하고 도메인이 이 목록의 항목과 일치하는 경우에만 인증을 허용합니다. 예를 들어 참고도메인 제한사항을 어떤 것이든 지정한 적이 있다면 Metadata Fields 설정에서 이메일 주소 필드 역시 필수로 입력해야 합니다. | |
OpenID Connect config.openId | 선택 사항입니다. 기본값은
중요SDK에 따라 달라지는 OpenID 연결 지원OpenID Connect에 대한 지원은 SDK별 문서서를 참조하세요. Google 인증의 모든 SDK 구현이 OpenID Connect를 지원하는 것은 아니지만 일부 구현은 OpenID Connect를 필요로 합니다. 참고OpenID Connect는 메타데이터 필드를 지원하지 않습니다.Google은 OAuth 2.0 구현의 일환으로 OpenID를 지원하지만, OpenID 인증을 위해 제한된 영역으로의 액세스를 제공하지는 않습니다. 이는 App Services가 OpenID Connect로 인증된 사용자의 메타데이터 필드에 액세스할 수 없음을 의미합니다. |
예시
Google 인증을 이용한 등록 및 로그인 방법에 대한 코드 예시는 Realm SDK 설명서를 참조하세요.