我有一个由多个云运行服务组成的应用程序。每个服务只对一组特定的其他服务开放。
export const getToken = async (url: string, targetAUD?: string) => {
const auth = new GoogleAuth();
const request = async () => {
if (!targetAUD) {
targetAUD = new URL(url).origin;
}
console.info(`request ${url} with target audience ${targetAUD}`);
const client = await auth.getIdTokenClient(targetAUD);
const res = await client.request({url});
console.info(res.data);
return res.data;
}
try {
return await request();
} catch (err) {
console.error(err);
}
}
当以getToken('http://data-provider-service-123.run.app');
的形式调用上面的函数时,请求失败,401未授权。我还尝试将其称为getToken('https://data-provider-service-123.run.app');
,并得到一个403禁止的响应。以下条目将为每个此类请求添加到data-provider-servicehtml" target="_blank">日志中
{
httpRequest: {9}insertId: "60fcb7e0000c12346fe37579"
logName: "projects/my-project/logs/run.googleapis.com%2Frequests"
receiveTimestamp: "2021-07-25T01:01:20.806589957Z"
resource: {2}
severity: "WARNING"
textPayload: "The request was not authorized to invoke this service. Read more at
https://cloud.google.com/run/docs/securing/authenticating"
timestamp: "2021-07-25T01:01:20.800918Z"
trace: "projects/my-project/traces/25b3c13890aad01234829711d4e9f25"
}
我还尝试通过运行curl“http://metadata.google.internal/computemetadata/v1/instance/service-accounts/default/identity?audience=http://data-provider-servive-123.run.app”\-h“metadata-flavel:google”
从compute metadata server(也是文档中宣传的一种方式)获取和使用JWT。
当我在Cloud Shell中执行这段代码时,我得到了如下所示的JWT
{
"iss": "accounts.google.com",
"azp": "123456789-9r9s1c4alg36erliucho9t52n12n6abc.apps.googleusercontent.com",
"aud": "123456789-9r9s1c4alg36erliucho9t52n12n6abc.apps.googleusercontent.com",
"sub": "106907196154567890477",
"email": "my_email@gmail.com",
"email_verified": true,
"at_hash": "dQpctkQE2Sy1as1qv_w",
"iat": 1627173901,
"exp": 1627177501,
"jti": "448d660269d4c7816ae3zd45wrt89sb9f166452dce"
}
然后,我使用postman向https://data-provider-service/get-data
发出请求,标题为授权:“bearer
,一切正常
但是,如果我从我的api-service
发出同样的请求,返回的JWT是
{
"aud": "http://data-provider-service-123.run.app",
"azp": "111866132465987679716",
"email": "api-service-account@domain",
"email_verified": true,
"exp": 1627179383,
"iat": 1627175783,
"iss": "https://accounts.google.com",
"sub": "111866132465987679716"
}
如果我向邮递员发出相同的请求,并将此JWT放入授权头中,则返回401 Unauthorized。
在请求computing metadata server时,我将目标服务URL中的http更改为https,看起来解决了问题。使用google-auth-library请求像这样的令牌仍然失败,出现403错误。
如果解决方案是可持续的,我会更新答案。
问题内容: 我有这个应用程序,它可以在本地运行,并且在部署时可以使用.mdf SQL Express数据库文件(通常用于测试目的)。但是,当我将其更改为可与我们的SQL Server 2008一起使用时,该应用程序可以运行,但该服务无法运行。 例如,如果在页面后面的代码中,我有一个按钮可以向表中添加数据,例如: 我的web.config设置为在该服务器上使用模拟,并且一切运行良好。但是,对于我的服
问题内容: 我正在尝试通过COM端口发送AT命令,但只重新发送了相同的命令。 日志: 16:19:21.910 [main]调试SerialConnections.M234Serial-创建实例。 16:19:21.974 [main]调试SerialConnections.M234Serial-发送请求:AT ^ SCFG? 16:19:23.976 [EventThread COM55]调试S
我正在尝试从www.mysite上的ASPX页面向web服务发出请求。com使用jQuery。 我的Web服务托管在https://www.mysite2.com. 我已尝试以这种方式执行请求(我在网上找到了部分代码): 我遇到两个问题: 1)IE返回拒绝访问错误(代码0x80070005) 2) Chrome返回“不安全响应”错误 返回的JSON将用于填充自动完成源。 有什么解决这个问题的建议吗
我使用RESTAssured练习web服务。在post请求中,它返回500服务器错误,其中我使用邮差发送请求,没有错误。谁能帮我调试一下这个错误吗?请给点意见。任何帮助都是感激的?提前道谢。 错误消息的状态代码应为<200>,但为<500>。 堆栈跟踪:
我想使用cli复制此Spring初始化设置。 然而,每当我尝试将“rest”添加为依赖项时,该命令就会返回以下错误消息,即rest存储库在rest之上公开Spring数据存储库。 下面是我正在运行的命令: 如果rest不是正确的依赖项名称,那么是什么?此外,如何从命令行列出可用的依赖项以获得正确的名称。
我制作了一个具有三个路径参数的POST web服务。 但当我尝试通过url请求此web服务时,我得到HTTP状态405-不允许使用该方法 但是同样的方法有效,如果我将Web服务更改为@GET 请求URL: 这是我得到的回应 任何帮助将不胜感激!