我正在尝试使用Cognito用户池在API上设置安全性。我回来了401未经授权。
API和用户池已存在,并且我一直在使用用户池登录到应用程序。我现在正在尝试保护API调用。
我在API上创建了授权者,
然后我将授权者添加到API中的一种GET方法中
然后,我终于尝试在Postman中测试API。我正在使用AWS Signature授权。
调用该方法将返回401。该方法以前运行时没有安全性,并且关闭授权者会使它再次工作(无安全性)。
有什么主意我想走的步骤吗?
答案 0 :(得分:1)
AWS Signature授权与自定义授权者不同。
AWS Signature授权(邮递员)请求AWS AccessKey和SecretKey对请求进行身份验证。这对应于API网关中的IAM Authentication。通过IAM接收AccessKey和SecretKey。
自定义授权者使用由您指定的Cognito用户池发出的名为#id_token
的{{3}}。要测试令牌的有效性,请转到自定义授权者并单击“测试”,然后将令牌复制并粘贴到文本区域。
执行自定义授权者身份验证的方法是:
#id_token
OAuth 2.0
作为邮递员的授权,并将您的#id_token
作为访问令牌,或添加标头:Authorization
,其值为Bearer
和{{1} } 如果要我添加AWS Signature Auth Flow,请放弃评论。
答案 1 :(得分:0)
要在使用Cognito用户池时使用Postman授权,请选择No Auth
。然后添加标头Authorization
(授权者的令牌源字段中的值)并将id_token
复制到该标头值中。除此以外,我无需添加其他任何东西(即无需承载)。