2017. 4. 9. 17:00

다른 회사의 서비스도 마찬가지지만 구글의 API를 이용하려면 '사용자 인증 정보'가 필요합니다.

구글은 API키, OAuth 2.0, 서비스 어카운트 키(Service account key) 이렇게 3가지방식을 지원합니다.

 

 

 

구글 API의 '사용자 인증 정보'는 어떻게 생성하는지 알아봅시다.

생성한 '사용자 인증 정보'를 활용하는 방법은 이 포스트에서 다루지 않습니다.

 

 

연관글 영역

 

0. 사용자 인증 정보 찾기

구글 클라우드 플랫폼에서 프로젝트를 생성하였다면 콘솔화면에서 아래와 같은 메뉴를 확인할 수 있습니다.

 

 

 

API 관리자 > 사용자 인증 정보

를 선택하면 아래와 같이 '사용자 인증 정보'를 추가할 수 있는 페이지가 나옵니다.

 

 

 

 

1. API 키 만들기

API 키는 미리 생성된 키에 권한을 설정하여 사용하는 방식입니다.

별도의 보안절차가 없어서 공개되어 있는 정보에 접근하는 용도로 많이 사용됩니다.

 

사용자 인증 정보 만들기 > API 키

를 선택합니다.

 

 

 

선택과 동시에 키가 생성되어 표시됩니다.

'키 제한'을 눌러 설정 창으로 넘어갑니다.

 

 

 

아래 화면은 API 관리자에서 생성된 키를 눌러 들어 오실 수 있습니다.

여기서 원하는 조건을 걸어 API키 사용을 제한할 수 있습니다.

 

 

 

테스트 할 때는 '없음'으로 두셔도 됩니다.

 

HTTP 리퍼러 : 웹사이트나 웹서비스인 경우

IP 주소 : 특정 IP나 서버인 경우

Android 앱 : 안드로이드 앱인 경우

iOS 앱 : iOS앱인 경우

 

키가 생성되면 몇 분 정도 있으면 키가 활성화되어 사용할 수 있습니다.

 

2. OAuth 2.0 클라이언트 ID 만들기

OAuth 2.0은 표준화된 REST방식의 인증 방법 법입니다.

 

사용자 인증 정보 만들기 > OAuth 2.0 클라이언트 ID

를 선택합니다.

 

 

 

다음과 같이 애플리케이션 유형을 선택하는 페이지가 표시되는데 테스트 하실 때는 기타로 두시고 하시면 됩니다.

 

 

 

웹 애플리케이션 : 웹사이트에서 사용합니다.

리다이렉트 주소는 로그인이 완료되었을 때 돌아가는 웹사이트 주소를 입력하셔야 합니다.

(승인된 자바스크립트 원본은 뭔지 모르겠네요.)

 

나머지는 각각 요구사항을 입력 하시면됩니다.

 

생성을 누르면 아래와 같이 '클라이언트 ID'와 '클라이언트 보안 비밀'이라는 것이 생성됩니다.

 

 

 

이 2개의 정보를 구글 API가 요구하는 형식으로 보내면 됩니다.

 

생성이 완료된 키는 다운로드가 가능합니다.

생성된 '클라이언트 ID'의 맨 왼쪽에 보시면 'JSON 다운로드'라는 것이 있습니다.

이 버튼을 눌러 '클라이언트 ID 시크릿'파일을 다운로드할 수 있습니다.

 

 

 

이렇게 받은 키는 json파일로 저장됩니다.

이 파일은 구글 API 요구사항에 맞게 제공하여 사용할 수 있습니다.

 

3. 서비스 계정 키

이건 저도 뭔지 잘 모르겠습니다.

저는 구글api 쓰면서 처음본 방식입니다.

 

구글의 설명에는 사용자 정보에 엑세스 하지 않고 API만 호출하는 응용프로그램에서 주로 사용한다고 합니다.

사용자에게 권한을 요청하지 않습니다.

 

사용자 인증 정보 만들기 > 서비스 계정 키

를 선택합니다.

 

 

 

'서비스 계정'은 직접 생성해도 되지만 테스트할 때는 'Compute Engine Default service account'를 선택해도 됩니다.

여기서 'JSON'과 'P12'를 선택할 수 있습니다.

전 보통 'JSON'을 사용합니다.

 

 

 

생성을 누르면 바로 파일이 다운로드 됩니다.

이렇게 다운로드된 키는 다시 다운로드 할 수 없습니다.

분실하면 새로 생성해야 합니다.

 

 

 

이제 이 파일을 구글 API에서 요구하는 형식에 맞게 제공하면 됩니다.

 

마무리

이렇게 간단하게 구글 API의 사용자 인증 정보를 생성해 보았습니다.

사실 생성하는 게 문제가 아니고 쓰는 게 문제죠 ㅡ.-;;;