.net OAuth2可以在Google云客户端库中使用吗?

yhived7q  于 2023-01-03  发布在  .NET
关注(0)|答案(1)|浏览(115)
  • 我想使用谷歌云客户端库的.net变体(例如,Resource Manager用于创建新项目)。
  • 我既不想使用服务帐户凭据,也不想使用ADC。

我可以通过某种方式将现有的OAuth证书(访问令牌,为适当的范围获取)传递到客户端库来验证给定的用户吗?(或者)我需要任何验证客户端库吗?
简要地看了一下ProjectsClientBuilder类,但似乎生成量很大(也像documentation一样),这意味着很难找到任何线索。

xzv2uavs

xzv2uavs1#

以下示例显示如何使用Oauth2为已安装的应用授权Google cloud resource manager API。

// Key file from google developer console (INSTALLED APP)
var PathToInstalledKeyFile = @"C:\Development\FreeLance\GoogleSamples\Credentials\credentials.json";

// scope of authorization needed for the method in question.
var scopes = "https://www.googleapis.com/auth/cloud-platform";

// Installed app authorizaton.
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.FromFile(PathToInstalledKeyFile).Secrets,
    new []{  scopes },
    "userName",
    CancellationToken.None,
    new FileDataStore("usercreds", true)).Result;

var client = new ProjectsClientBuilder()
{
    Credential = credential,
}.Build();

var projects = client.ListProjects(new FolderName("123"));

注意对于一个web应用程序来说代码是不同的。Web授权和客户端库是不一样的。我以前没有尝试过通过web oauth连接任何云api。

相关问题