首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Cloud identity token oidcToken.GetAccessTokenAsync()失败,没有错误消息

Google Cloud identity token oidcToken.GetAccessTokenAsync()失败,没有错误消息
EN

Stack Overflow用户
提问于 2020-06-03 09:10:10
回答 1查看 223关注 0票数 0

当调用google oauth库方法时,它会失败而不会出错--再多的try/catch-ing都不会捕获任何错误消息。

我正在尝试获取身份令牌,就像我使用gcloud cli从命令行执行gcloud auth print-identity-token一样。

想要身份令牌的原因是,另一个云函数服务需要它作为Authorization : Bearer [token],并且当我在代码中填充手动生成的身份令牌时,它确实可以正常工作。这不是一个适合开发或生产的解决方案。

我写的代码片段,从各种来源拼凑而成,用来获取身份令牌,是这样的:

代码语言:javascript
复制
        using (var stream = new FileStream(credentialsFilePath, FileMode.Open, FileAccess.Read))
        {
            var credentials = GoogleCredential.FromStream(stream);
            if (credentials.IsCreateScopedRequired)
            {
                credentials = credentials.CreateScoped(scopes);
            }

            OidcToken oidcToken = await credentials.GetOidcTokenAsync(
                   Options
                      .FromTargetAudience(scopes[0])
                      .WithTokenFormat(OidcTokenFormat.Standard));

            // this line bombs immediately, jumping out of this method and the calling method.
            string token = await oidcToken.GetAccessTokenAsync();

            return token;
         }

在上面的代码中,作用域留在了前一次尝试的代码中,其中包含云函数服务的端点。https://subdomain.cloudfunctions.net/cloud-function/v1/是我作为web的一部分调用的云函数端点的一般形式。

这是一种有效且合理的方式来获得gcloud auth print-identity-token的等价物吗?如果是这样,为什么会出现史诗般的失败?

我需要使用google服务帐户进行服务到服务身份验证。开发环境为visual studio 2019,.net核心3.1,docker/linux

PS -服务账号具有云函数的cloud Functions调用者角色。

PPS -这个问题似乎与docker有关,当我在docker中开始我的项目时,我得到了一组错误消息。我忽略了它们,因为它们直到现在都没有影响到功能。

at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper,CURLcode messageResult)

在windows上运行代码是可行的。

EN

回答 1

Stack Overflow用户

发布于 2020-06-04 03:42:15

倒数第二个问题是,我需要使一个上游方法异步并添加一个await。现在,上面的代码每次都可以工作。这一变化将我引向了最终的问题,它的解决方案是在ConfigureServices()中与AddHttpClient()设置相关的一些代码重构。

curl异常是由于尝试添加logger.loggerFactory.AddGoogle(…)造成的配置错误。这是糟糕的一天。

这个问题也是一个不应该做的例子--即我用了太多的极简主义来描述这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62163679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档