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 灵活的文档非常稀疏。有没有人有一个如何设置它的例子,或者他们可以证明它是可能的吗?特别是,authorizationUrl的接口是什么?我们可以放置授权服务的URL(提供由可扩展服务代理验证的JWT令牌),以便如果令牌在authorizationURL中无效,端点将重定向到它吗?
答案 0 :(得分:2)
你是对的。 'authorizationUrl'是OpenAPI Swagger specific annotation,它指向客户端用来检索实际JWT(JSON Web令牌)的URL endpoint of your log in form。
一旦客户端在登录后从您的App Engine应用程序检索JWT,他们就可以使用它来向Cloud Endpoint API授权他们的请求。
您的Node.js App Engine应用程序将使用任何JWT signing library生成JWT(多种语言的auth0 offers their own)。
要生成令牌,您将提供标准的“JWT”和散列头,添加您的特定用户对象JSON有效内容(因为此令牌对于此特定用户应该是唯一的),以及您的密钥/公钥。 / p>
JWT库还应该在生成时自动提供所需的JWT claims,只需确保您将库中使用的发行者和'openapi.yaml'中的秘密/公钥作为'x-google-提供发行人'和'x-google-jwks_uri'。
您可以按照JWT.io guide了解有关如何生成和使用JWT的更多信息。您还可以按照特定的App Engine Flexible guide到code your application来处理JWT。