我用两个路由创建了一个小型的nodejs express应用程序:
获取/ mypublicurl
获取/ myprivateurl
,它在GKE上运行。我正在通过Cloud Endpoints触发它。对于身份验证,我使用的是Auth0,还遵循Google的this教程。所以我的openapi.yaml看起来像这样:
...
paths:
"/mypublicurl":
get:
description: "See Hello world"
responses:
200:
description: "Hello World"
"/myprivateurl":
get:
description: "See Hello world secure"
responses:
200:
description: "Hello World"
401:
description: "No Auth"
security:
- auth0_jwt: []
securityDefinitions:
auth0_jwt:
authorizationUrl: ...
flow: "implicit"
type: "oauth2"
x-google-issuer: ...
x-google-jwks_uri: ...
x-google-audiences: ...
当我尝试这两种路线时,我都可以在没有“授权标头”的情况下进行攻击。
此外,当我将Bearer令牌用作Auth Header时,它当然仍然有效。 我是否必须针对每个路由在后端自行验证JWT令牌,还是云端点可以这样做,而我只是做错了什么?