2017-09-14 60 views
0

我有一個Web服務,用戶可以登錄等等。我想設置AWS API網關以允許用戶通過API與服務交互。由於用戶管理/密碼管理已經在系統中,我不希望用戶必須轉到另一個系統。授權API網關服務已存儲用戶憑據

我首先查看了Cognito用戶池,但我無法完全自動完成用戶創建/驗證過程,AWS在支持服務單中表示用戶需要單獨驗證電子郵件。然後他們建議使用Lambda函數來設置授權。

我已經創建了一個Lambda函數,並且API網關正在授權,但它看起來只有一個變量被髮送用於授權,Identity token。如果我這樣做了,我的Lambda函數可以從我的服務中找到該密鑰是有效的,但它並不真正與用戶相關聯。

我所追求的是一種爲用戶提供來自我的系統的客戶端ID和密碼的方式(我可以生成所有這些),然後用戶通過客戶端ID向API網關端點發出請求和密鑰,網關將客戶端ID和密鑰發送到調用我的系統進行驗證的Lambda函數,Lambda返回有效的策略,然後API Gateway將請求發送到我的服務,客戶端ID或其他標識符可以從政策,以便我的系統知道請求的客戶端。

如果不把用戶帶到一個單獨的系統(Cognito),實現這一目標的最佳方法是什麼?

回答

2

原來你的時間可能早了一天左右。您以前在自定義授權人中遇到的問題是授權人TOKEN。今天,他們注意到使用新的REQUEST授權人類型擴展了對定製授權人的支持。新的REQUEST類型支持用於授權請求的擴展數據集,例如請求參數,標題,查詢字符串等。請查看Custom authorizer types瞭解更多信息。

+0

等等,他們剛剛發佈了我之後的功能? – Rudiger

+1

顯然,就像你提問後的第二天(https://aws.amazon.com/about-aws/whats-new/2017/09/amazon-api-gateway-now-supports-enhanced-request-authorizers/) –

+0

只是測試了一下,做了一個享受,正是我所追求的。 – Rudiger