2016-12-22 63 views
3

我正在尋找方法來避免創建一個ec2 instance爲了有一個有效的回調URL來執行oauth握手。是否可以使用AWS Lambda來請求oauth 2.0令牌?

我打算使用Lambda連接到遠程API,但我需要能夠首先獲得令牌,這隻有6小時有效。

有沒有什麼辦法可以通過Lambda函數進行握手?

回答

4

我認爲Lambda以及API Gateway提供了一個很好的解決方案。 API網關允許您創建持久的,可公開訪問的HTTP端點。您可以定義將HTTP方法映射到lambda函數調用的特定「資源」。我不是特別熟悉OAuth 2,但我想像的是這樣的:在API網關中,使用調用Lambda函數的GET方法定義資源'/ callback'。

註冊API網關端點爲您的應用程序的回調URI,這將是這個樣子:

https://c1bql2cdxy.execute-api.us-east-1.amazonaws.com/callback

通過這樣做,遠程服務將調用你的lambda表達式,則可以讀出授權不管是否涉及1)將令牌存儲在數據庫中供其他服務使用(並重新使用),2)直接調用同一Lambda函數內的服務等。

+0

謝謝很多編輯和答案,聽起來很有希望。我會測試一切,並回來標記它是正確的。 – JordanBelf

+0

Hi @rumdrums,oauth 2的工作方式是,首先發送GET請求以獲取代碼,然後在POST請求中將該代碼與其他數據一起用作密鑰,應用程序ID等。我試圖理解API網關流量。我應該創建2個不同的資源嗎?然後用我的lambda函數調用它們。對不起,如果這沒有意義,我想了解它是如何工作的。再次感謝 – JordanBelf

+1

@JordanBelf我認爲你絕對是在正確的軌道上。由於該問題僅限於過程的回調回調部分,因此我沒有考慮到最初的部分 - 用戶從應用程序請求初始授權鏈接 - 但我認爲您一定會希望獨立可通過其他網址訪問的Lambda服務,用戶可以訪問該服務以接收此鏈接。在那裏,用戶使用授權服務進行身份驗證,然後他將被重定向到您的回調URL。那有意義嗎? – rumdrums