Google Cloud Endpoints文档在可扩展服务代理配置文件中为自定义安全定义提供了此规范:
securityDefinitions:
your_custom_auth_id:
authorizationUrl: ""
flow: "implicit"
type: "oauth2"
# The value below should be unique
x-google-issuer: "issuer of the token"
x-google-jwks_uri: "url to the public key"
# Optional. Replace YOUR-CLIENT-ID with your client ID
x-google-audiences: "YOUR-CLIENT-ID"
对于App Engine Flexible,有关如何实现此功能的文档非常少。有没有人举过例子,或者他们证明这是可能的?特别是,authorizationUrl的接口是什么?我们是否可以放置授权服务的URL(该URL提供由可扩展服务代理验证的JWT令牌),以便如果令牌在AuthorizationURL中无效,则端点将重定向到该URL?
你是对的。“ authorizationUrl”是OpenAPI Swagger特定的注释,它指向登录表单的URL端点,客户端使用该注释来检索实际的JWT(JSON Web令牌)。
客户端在登录后从您的App Engine应用程序检索JWT后,便可以使用它来授权对您的Cloud Endpoint API的请求。
您的Node.js App Engine应用程序将使用任何JWT签名库来生成JWT(auth0提供了自己的多种语言)。
要生成令牌,您将提供标准的“ JWT”和哈希头,并添加您的特定User对象的JSON有效负载(因为此令牌对于该特定用户应该是唯一的)以及您的秘密/公钥。
JWT库还应在生成JWT声明时自动提供所需的JWT声明,只需确保您将库使用的颁发者以及您的“私钥/公钥”提供为“ x-google-issuer”和“ x- ”在“ openapi.yaml”中即可google-jwks_uri”。
您可以按照JWT.io指南来了解有关如何生成和使用JWT的更多信息。您还可以按照特定的App Engine Flexible指南对应用进行编码以处理JWT。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句