验证bigQuery客户端的“默认凭证”背后的逻辑是什么

时间:2016-11-03 15:16:10

标签: java authentication google-bigquery gcp

我看到了两种验证bigQuery java客户端的方法

/**
 * Creates an authorized Bigquery client service using Application Default Credentials.
 *
 * @return an authorized Bigquery client
 * @throws IOException if there's an error getting the default credentials.
 */
public static Bigquery createAuthorizedClient() throws IOException {
    // Create the credential
    HttpTransport transport = new NetHttpTransport();
    JsonFactory jsonFactory = new JacksonFactory();
    GoogleCredential credential = GoogleCredential.getApplicationDefault(transport, jsonFactory);

    // Depending on the environment that provides the default credentials (e.g. Compute Engine, App
    // Engine), the credentials may require us to specify the scopes we need explicitly.
    // Check for this case, and inject the Bigquery scope if required.
    if (credential.createScopedRequired()) {
        credential = credential.createScoped(BigqueryScopes.all());
    }

    return new Bigquery.Builder(transport, jsonFactory, credential)
            .setApplicationName("Bigquery Samples")
            .build();
}

和这个

public class QuickstartSample {

    public static void Main() {

       // Your Google Cloud Platform project ID
       string projectId = "YOUR_PROJECT_ID";

       // Instantiates a client
       BigqueryClient client = BigqueryClient.Create(projectId);

       // The id for the new dataset
       string datasetId = "my_new_dataset";

       // Creates the dataset
       BigqueryDataset dataset = client.CreateDataset(datasetId);

       Console.WriteLine($"Dataset {dataset.FullyQualifiedId} created.");
    }
}
这是什么意思?

default credentials (e.g. Compute Engine, App Engine)

它无法访问我的特定GCP项目,对吧?

那么这些default credentials是什么意思?

1 个答案:

答案 0 :(得分:0)

使用“应用程序默认凭据”,应用程序使用自己的服务帐户而不是最终用户的服务帐户。有关详细信息,请参阅https://cloud.google.com/bigquery/authentication#app-default-cred