2017-03-03 120 views
1

我不明白爲什麼我的用戶池不會在我的API中驗證方法。使用API​​網關的Cognito用戶池

我已經開始使用簡單的petstore示例,併爲我的用戶池添加了一個Authorizer。測試按鈕顯示我所擁有的JWT正在工作。我將該授權人應用於/pets的POST方法,將授權添加爲請求標頭。

當POST到/pets與郵差(或捲曲),傳遞Authorization: Bearer <token>頭我總是得到{"message":"Unauthorized"}

我與創建鏈接到用戶池的標識池周圍亂七八糟的響應,經過身份驗證的角色有一個允許訪問API網關的策略。我在用戶池中創建了一個組來分配這個組。

有一些我想念的東西。我希望允許任何通過Cognito提供有效ID JWT的用戶訪問POST方法。

政策:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "execute-api:Invoke" 
      ], 
      "Resource": "arn:aws:execute-api:us-east-1:*:XXX/*/POST/*" 
     } 
    ] 
} 

其中在模擬器工作正常。我並不十分確定這項政策應該發揮作用。我並不清楚提供的用戶池身份驗證器如何獲取該策略,但它並未出現在我看到的任何文檔中。我剛開始在牆上扔飛鏢。

只希望聽到任何人已經用Userpool保護了API網關端點。

+0

您可以發佈允許訪問API網關的政策嗎?請注意,該操作需要「執行api:調用」而不是「apigateway:*」(這是API管理API) –

回答

2

對於我來說,使用Postman在授權標題中沒有「承載者」。

+0

不能投票表決足夠。捲曲也是如此,所以這不是郵差的錯。「承載者」被記錄爲必需的。但是我的經驗表明,Authorization:標題應該只是Id JWT –

相關問題