我需要在Google云存储中“以最终用户身份进行身份验证”(我代表我的应用程序的最终用户访问资源)。由于我的应用程序是用C ++编写的。我编译了C ++ Google Cloud Storage客户端库。但是here声明它需要客户端的JSON文件才能创建gcs :: Client对象。我找不到其他方法来创建带有项目ID,服务电子邮件,私钥,密钥名称和存储桶名称等信息的客户端(这些信息足以在python中进行身份验证)。是否可以通过google cloud storage c ++客户端库中的上述信息对最终用户进行身份验证?
答案 0 :(得分:1)
在Google Cloud中,三种凭证类型:
API密钥不适用于您的用例。这些凭据用于不需要身份的Google服务。
您要引用的示例代码使用(需要)服务帐户凭据,这些凭据存储为Json文件。这是认证和授权软件应用程序的标准方法。
如果您的目标是让用户使用其Google帐户进行授权,并在软件中使用OAuth 2.0令牌来访问Google云端存储,那么也可以这样做。您将需要在应用程序中实现Google OAuth 2.0 Flow,这将为用户启动浏览器。 Google将使用OAuth令牌回调到您的代码。
建议:如果您以前没有对OAuth 2.0进行任何开发,那么我不会以C ++开始Google OAuth 2.0的开发。使用Python之类的语言提供大量示例,以便您了解OAuth的工作方式。
答案 1 :(得分:0)
当您说您正在“作为最终用户进行身份验证”时,是否表示该用户将在Google Cloud Platform中拥有一个帐户,并且您打算使用其凭据(可能是通过OAuth来访问Google Cloud Storage?很抱歉,我们尚未在google-cloud-cpp中实现对该工作流程的支持。
我提交了a bug进行跟踪,请随时在此处添加其他问题或建议。