Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 在GCP环境外验证Google云函数调用_Authentication_Google Cloud Platform_Https_Oauth 2.0_Google Cloud Functions - Fatal编程技术网

Authentication 在GCP环境外验证Google云函数调用

Authentication 在GCP环境外验证Google云函数调用,authentication,google-cloud-platform,https,oauth-2.0,google-cloud-functions,Authentication,Google Cloud Platform,Https,Oauth 2.0,Google Cloud Functions,我试图在InContact Studio上调用google云函数来实现IVR调用中的逻辑,但我无法做到这一点,因为我已经关闭了对我的云函数的公共访问,现在我无法获得如何验证调用的方法。 我尝试使用命令gcloud auth print identity token来获取ID\u token,但是这个ID\u token每次都会刷新,我不能反复使用它,所以每次尝试使用简单的API调用这个函数时,有没有办法生成ID\u token 或 还有别的办法解决我的问题吗 我尝试过的方法:- 我已经阅读了以下

我试图在InContact Studio上调用google云函数来实现IVR调用中的逻辑,但我无法做到这一点,因为我已经关闭了对我的云函数的公共访问,现在我无法获得如何验证调用的方法。 我尝试使用命令
gcloud auth print identity token
来获取ID\u token,但是这个ID\u token每次都会刷新,我不能反复使用它,所以每次尝试使用简单的API调用这个函数时,有没有办法生成ID\u token

还有别的办法解决我的问题吗

我尝试过的方法:-

我已经阅读了以下文件:-

我使用的是终端用户的访问方式,但这是一种通过使用浏览器登录生成访问令牌的方式,我希望通过代码完成所有操作,因为它将用作IVR(各种任务协助呼叫设施)的后端代码,在这种方法中,我们还获得访问令牌,而不是ID_令牌,然而,要调用函数,我们需要一个ID_令牌,而不是访问令牌

其次,我在google cloud shell上尝试了
gcloud auth print identity token
命令,我使用我的google帐户登录了该命令,因此它生成了JWT令牌,我将其用作承载令牌,该功能正常工作,但我如何在GCP之外生成令牌或通过代码获得频繁间隔


我想要一种程序方式(NodeJS)来实现这一点,而不是UI方式,因为我需要将其与我的程序后端连接起来,而我在互联网上所经历的所有方式都是通过UI,并且没有一种程序方式用于外部GCP环境,所以我需要在这个场景上的帮助。

正如John所说,您可以使用GoogleDoc代码示例执行URL调用:库生成一个安全HTTP客户端,以生成对端点的请求

如果您想生成令牌并自己使用它,您可以使用这段代码

    const {GoogleAuth} = require('google-auth-library');
    const auth = new GoogleAuth()
    auth.getIdTokenClient("").then(client => {
        client.idTokenProvider.fetchIdToken("audience").then(token => {
            console.log(token)
        })
    })

是的,谷歌有几种语言的文档和示例。谷歌搜索。Stackoverflow有许多问题和答案。互联网上也可能有一百篇关于这个话题的指导性文章。展示你做过的研究。此外,你还可以做你尝试过的事情和你遇到的困难。有几种选择,分享你的安全限制(如果有的话)也很好嘿,@JohnHanley,我用我尝试过的两种方法更新了问题,你能帮我吗嘿,@guillaumeblaquiere,我用我尝试过的两种方法更新了问题,你能帮我解释一下这个Google has示例代码吗:这个代码生成的令牌不用于调用函数,我已经将调用者角色赋予了我用来生成令牌的服务帐户,你知道为什么吗?这个令牌用于我的私有云函数。您是否使用云函数URL更改了受众?您是否在
GOOGLE\u APPLICATION\u CREDENTIALS
环境变量中设置了服务帐户密钥文件路径?