2017-06-06 105 views
2

这是什么意思AWS_IAM作为Amazon API网关中的授权模型?Amazon API网关授权AWS_IAM

enter image description here

如果我考拉姆达的AWS内安慰它的工作原理,并打印出的Hello World,但如果我使用的端点URL,并打开它的另一个浏览器的标签里面说{"message":"Missing Authentication Token"}我怎么能得到这个认证令牌?

回答

2

重复我的回答我们的论坛:

AWS_IAM认证意味着必须使用AWS签名版本和AWS凭据登录请求。有关签名版本4的更多详细信息here

您可能想要查看类似Postman这样的工具来生成用于测试的签名。

+0

谢谢。这样我总是需要访问密钥和秘密,并且没有办法将openid连接包含在authenticate中。我对吗?自定义授权人应该完成这项工作吗? –

+0

正确。您可以使用自定义授权程序来支持其他身份验证方法。 –

4

创建一个新的IAM用户

转到AWS IAM并创建一个新用户programmatic access访问您的API网关。然后将具有足够权限的策略附加到用户/组以便能够访问您的API网关端点。一旦你完成了所有的步骤,你将获得新用户的密钥/秘密。

使用邮差

现在,把事情简单化,安装Postman,然后使用您的要求页Authorization选项卡,选择AWS Signature请与AWS签名API请求:

Postman-AWS-Signature

填写在AccessKey/SecretKey为您的新用户,AWS Region您在其中操作(例如,us-west-1)并单击Update Request按钮。 在这一点上,邮递员将为您的请求填写必要的标题,并且您可以向您的API网关发出授权请求。

+0

谢谢,我希望这个解决方案能够与OpenID Connect集成。我需要搜索另一个解决方案:) –

+0

为此,您应该查看自定义授权人Lambda函数。然后,您的功能可以针对您想要的任何第三方进行身份验证,然后可以在您的API网关中将结果缓存达所需的时间。 – jaccus

+0

所以我不能用增强(简化)工作流程来做到这一点? http://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html –