6

Google 클라우드 플랫폼에서 작업 중이며 Google 클라우드 저장소 JSON API를 사용하여 Google 클라우드 저장소에서 개체를 저장 및 검색하는 것처럼 자바 비 웹 응용 프로그램을 사용하여 클라우드 기능에 액세스해야합니다.Google 클라우드 플랫폼의 인증

내 응용 프로그램을 인증해야하기 때문에 액세스 권한이 부여 된 권한 API를 발견했습니다. 내가

  • API 키
  • 의 OAuth 클라이언트 ID
  • 서비스로 자격 증명의 세 가지 선택 사항으로 끝날 구글 클라우드 플랫폼에서 자격 증명을 얻으려고 노력했다

    는 주요 계정

나는 GCP 문서를 읽었지 만 그것들을 구분할 수있는 명확한 정보를 얻지 못했기에 나는 GCP에 대해 거의 새로운 편이다. 따라서 정보 나 블로그 링크를 공유 할 수 있겠는가? 이 자격 증명 유형을 Google Cloud 클라이언트 라이브러리 API를 사용하는 방법을 보여주는 샘플 Java 프로그램과 함께 사용하십시오. https://cloud.google.com/docs/authentication

구글의 다양한 인증 메커니즘이 다른 용도로 사용, 그래서 내가 당신에 대해 물어 사람을 설명하자, 당신을 위해 올바른 선택이 더 명확하게해야합니다

답변

6

Google 클라우드 플랫폼의 인증 가이드는 여기에 확실한 자원이다.

API 키는 API 호출을하는 프로젝트를 식별 할 수있는 방법을 제공합니다. 프로젝트를 대신하여 할당량을 제한하는 요청에 대해서는 유용합니다. API 키는 일반적으로 클라이언트 앱 및 웹 페이지에 포함되어 있기 때문에 일반적으로 보안으로 간주되지 않습니다. 이 때문에 API 키는 인증이나 권한 부여를 제공하지 않습니다. 익명 사용자가 전화를 걸 수 없으면 API 키가 충분하지 않습니다.

다음 up, OAuth. OAuth는 Google 계정이있는 실제 사용자를 인증 된 API 호출로 전환하는 방법입니다. 사용자가 로컬에서 gcloud과 같은 앱을 실행하거나 사용자가 Google Cloud를 사용하여 작업을 수행하도록 허가를 요청해야하는 웹 사이트를 구축하는 경우 대신에. 이 프로세스에는 클라이언트 ID와 비밀이 포함되며 새로 고침 토큰 및 액세스 토큰으로 끝납니다. 약간 다른 풍미가있다.

마지막으로 서비스 계정. 앱이 특정 인간이 아닌 어딘가에서 도망가는 경우 애플리케이션의 서비스 계정을 만들어 모델을 모델링해야합니다. 서비스 계정은 암호가없는 특수 사용자입니다. 그 대신, 앱과 함께 배포 할 수있는 개인 키 파일을 가지고있어 스스로 인증 할 수 있습니다. 이는 앱이 특정 사용자를 대신하여 실행해야하는 경우가 아니면 (예 : gcloud 또는 gsutil과 같은 클라우드 관리 프로그램) 사용자가 원하는 것입니다.

Google Cloud Java library은 "Application Default Credentials"이라는 기능을 제공하여 응용 프로그램이 App Engine 또는 GCE에서 실행되는 경우 인증을 구성하지 않아도됩니다. 또한 로컬 컴퓨터에서 코드를 직접 실행하고 gcloud을 설치하려는 경우에는 인증을 처리 할 수 ​​있습니다.이 모든 인증에 대해 아무 말도하지 않는 방법

Storage storage = StorageOptions.getDefaultInstance().getService(); 
Bucket bucket = storage.create(BucketInfo.of("myBucketName")); 

주의 사항 :

는 여기 GCS 버킷을 생성하는 계산 엔진 프로그램의 an example입니다. 응용 프로그램 기본 자격 증명은 적절한 서비스 계정 또는 사용자를 선택 처리합니다. 그것은 당신이 그런 환경에 있다고 가정합니다. 비공개 키 .json 파일이있는 경우 대신 다음을 수행하십시오.

그리고 그게 전부입니다!

+0

답장을 보내 주셔서 감사 드리며 자격 증명 선택에 도움이됩니다. GoogleCredentials 클래스는 서비스 계정 키를 사용하여 사용자를 인증하므로 OAuth 클라이언트 ID 및 API 키를 사용하는 방법을 보여주는 API 스 니펫을 제공해주세요.이 세 가지를 모두 사용하여 인증을 구현해야하기 때문입니다. Google 클라우드 클라이언트 라이브러리 API 예제를 제공하십시오. –

+0

OAuth의 다양한 맛이 있습니다. 나는 당신이 당신의 앱이 잘 대답하기를 바라는 것에 대해 더 많이 알아야 할 것이다. https://developers.google.com/identity/protocols/OAuth2와 Java 라이브러리 및 예 : https://developers.google.com/api-client-library/java/ Google OAuth에 대한 일반적인 가이드가 여기에 있습니다. google-oauth-java-client/oauth2 –

+0

seck에서 GCS의 객체를 가져 와서 로컬에서 처리하는 간단한 응용 프로그램을 개발 중입니다. 이제 OAuth 클라이언트처럼 사용자가 원하는 인증 유형을 사용하도록 옵션을 제공해야합니다. ID 또는 서비스 계정 키 등. JSON 파일 서비스 계정 키를 인증에 사용할 수 있으며 OAuth 클라이언트 ID에서 가져온 Client secret JSON 파일을 사용하려고합니다. 'Google 클라우드 클라이언트 라이브러리 API 예제'를 제안하십시오. –

관련 문제