在 google 应用引擎上验证没有下载密钥的服务帐户
Authenticate service account without downloaded key on google app engine
我正在开发一个应该安装在 Google App Engine 中的产品。
在此,我使用服务帐户对 Gmail API、云端硬盘 API、日历 API 等进行身份验证
它使用下载的 P12 文件作为身份验证工作正常。但作为它的产品,我不希望客户端在每次安装时都在应用程序上下载和上传。
是否可以在没有私钥文件的情况下或在没有服务帐户的情况下使用 API 来验证它。
在下面的页面中提到有系统管理的密钥对由 Google 自动管理。有帮助吗?我没有找到任何例子。
https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts.keys
下面link建议对于Google Cloud Platform我应该使用Google Managed Key
https://cloud.google.com/iam/docs/understanding-service-accounts
这个密钥可以在没有下载文件的情况下使用吗?
谢谢
我可以通过 IAM 实现 API
https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts.keys
下面是Java它的代码
AppIdentityCredential credential = new AppIdentityCredential(
Arrays.asList("https://www.googleapis.com/auth/cloud-platform"));
Iam iam = new Iam(httpTRANSPORT, jsonFACTORY, credential);
try {
Iam.Projects.ServiceAccounts.Keys.Create keyCreate = iam.projects().serviceAccounts().keys()
.create("projects/myProject/serviceAccounts/myProject@appspot.gserviceaccount.com", new CreateServiceAccountKeyRequest());
ServiceAccountKey key = keyCreate.execute();
} catch (IOException e) {
System.out.println(e.getMessage());
}
任何密钥都可用于生成如下所示的 GoogleCredential
InputStream stream = new ByteArrayInputStream(key.decodePrivateKeyData());
GoogleCredential credential = GoogleCredential.fromStream(stream);
我正在开发一个应该安装在 Google App Engine 中的产品。
在此,我使用服务帐户对 Gmail API、云端硬盘 API、日历 API 等进行身份验证
它使用下载的 P12 文件作为身份验证工作正常。但作为它的产品,我不希望客户端在每次安装时都在应用程序上下载和上传。
是否可以在没有私钥文件的情况下或在没有服务帐户的情况下使用 API 来验证它。
在下面的页面中提到有系统管理的密钥对由 Google 自动管理。有帮助吗?我没有找到任何例子。
https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts.keys
下面link建议对于Google Cloud Platform我应该使用Google Managed Key https://cloud.google.com/iam/docs/understanding-service-accounts
这个密钥可以在没有下载文件的情况下使用吗?
谢谢
我可以通过 IAM 实现 API https://cloud.google.com/iam/reference/rest/v1/projects.serviceAccounts.keys
下面是Java它的代码
AppIdentityCredential credential = new AppIdentityCredential(
Arrays.asList("https://www.googleapis.com/auth/cloud-platform"));
Iam iam = new Iam(httpTRANSPORT, jsonFACTORY, credential);
try {
Iam.Projects.ServiceAccounts.Keys.Create keyCreate = iam.projects().serviceAccounts().keys()
.create("projects/myProject/serviceAccounts/myProject@appspot.gserviceaccount.com", new CreateServiceAccountKeyRequest());
ServiceAccountKey key = keyCreate.execute();
} catch (IOException e) {
System.out.println(e.getMessage());
}
任何密钥都可用于生成如下所示的 GoogleCredential
InputStream stream = new ByteArrayInputStream(key.decodePrivateKeyData());
GoogleCredential credential = GoogleCredential.fromStream(stream);