설치된 애플리케이션의 사용자 계정으로 인증

이 가이드는 애플리케이션이 사용자 머신에 설치되어 있을 때 Google BigQuery API에 액세스하기 위해 사용자 계정으로 인증하는 방법을 설명합니다.

사용자 인증 정보를 사용하여 최종 사용자가 사용할 수 있는 BigQuery 테이블에만 애플리케이션이 액세스할 수 있습니다. 사용자 인증 정보는 애플리케이션 프로젝트가 아닌 최종 사용자의 Cloud Platform 프로젝트에 대해서만 쿼리를 실행할 수 있습니다. 따라서 애플리케이션이 아닌 쿼리에 대한 요금이 청구됩니다.

시작하기 전에

  1. 설치된 애플리케이션을 나타내는 새로운 Google Cloud Platform 프로젝트를 만듭니다.
  2. BigQuery 클라이언트 라이브러리를 설치합니다.
  3. 추가 라이브러리를 설치합니다.

    Python

    Google Auth용 oauthlib 통합을 설치합니다.
    pip install --upgrade google-auth-oauthlib

클라이언트 사용자 인증 정보 설정

  1. Google Cloud Platform 콘솔에서 API 사용자 인증 정보 페이지로 이동합니다.
  2. OAuth 동의 화면에서 필수 입력란을 작성합니다.
  3. 사용자 인증 정보 페이지에서 사용자 인증 정보 만들기 버튼을 클릭합니다.

    OAuth 클라이언트 ID를 선택합니다.

  4. 애플리케이션 유형으로 기타를 선택한 후 만들기를 클릭합니다.
  5. JSON 다운로드 버튼을 클릭하여 사용자 인증 정보를 다운로드합니다.

    JSON 다운로드

    사용자 인증 정보 파일을 client_secrets.json에 저장합니다. 이 파일을 애플리케이션과 함께 배포해야 합니다.

API 인증 및 호출

  1. 클라이언트 사용자 인증 정보를 사용하여 OAuth 2.0 흐름을 수행합니다.

    Python

    def authenticate_and_query(project, query, launch_browser=True):
        from google_auth_oauthlib import flow
    
        appflow = flow.InstalledAppFlow.from_client_secrets_file(
            'client_secrets.json',
            scopes=['https://www.googleapis.com/auth/bigquery'])
    
        if launch_browser:
            appflow.run_local_server()
        else:
            appflow.run_console()
    
        run_query(appflow.credentials, project, query)
  2. 인증된 사용자 인증 정보를 사용하여 BigQuery API에 연결합니다.

    Python

    def run_query(credentials, project, query):
        from google.cloud import bigquery
    
        client = bigquery.Client(project=project, credentials=credentials)
        query_job = client.query(query)
    
        # Print the results.
        for row in query_job.result():  # Wait for the job to complete.
            print(row)

샘플 코드를 실행하면 클라이언트 보안 비밀과 연결된 프로젝트의 액세스를 요청하는 브라우저가 시작됩니다. 샘플이 BigQuery 범위를 요청했으므로, 결과 사용자 인증 정보를 통해 사용자의 BigQuery 리소스에 액세스할 수 있습니다.

다음 단계

  1. BigQuery API에 액세스하기 위해 애플리케이션을 인증하는 다른 방법 알아보기
  2. 모든 Google Cloud Platform API에 대해 최종 사용자 인증 정보로 인증 알아보기
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.