1

的谷歌雲端點文檔提供了本規範的可擴展服務代理配置文件中的自定義安全定義:使用App Engine靈活(Node.js的)谷歌雲端點定製認證

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(它提供了由可擴展服務代理驗證的JWT令牌),以便端點在授權URL中令牌無效時重定向到它?

回答

1

你是對的。 '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產生(在許多語言auth0 offers their own)的智威湯遜。

生成令牌,你應該提供標準的「智威湯遜和散列頭,加入特定用戶對象JSON有效載荷(如該令牌應該是唯一的,以該特定用戶),用你的祕密/公共密鑰一起。

的JWT庫也應該自動提供所需的JWT claims而產生的,只是確保你提供庫所使用的發行者和你的祕密/公開在'openapi.yaml'爲x-谷歌發行者「和「X-谷歌的關鍵-jwks_uri」。


您可以按照JWT.io guide,以瞭解更多有關如何生成和使用JWT。您也可以按照具體的App Engine Flexible guidecode your application來處理智威湯遜。