![]() |
1
1
为了正确回答您的问题,我们需要更多信息。
可以找到从API网关控制台生成SDK的说明 here . 通过身份验证调用webservice可以通过四种方式完成:IAM、API密钥、Cognito、自定义授权程序。我要提到前三点。
IAM策略示例:
API密钥 link .
Cognito联合用户 您的移动用户实际上正在使用 federated users . 然而,其中一个联邦用户通道恰好是cognito。您可以添加更多,OpenAuth、Google、Facebook、SAML等,在这里您可以添加客户端使用的身份验证类型。然后,用户将使用其用户名和密码向客户端安全提供者进行身份验证,然后通过联邦用户将这些凭据传递给API,因此必须将联邦用户设置为使用与客户端相同的身份验证机制。见下文 blog post
建议的解决方案 创建API的第二个版本作为移动API的包装器或扩展,并如上所述使用API密钥。为什么?
我对解决方案2的建议是不正确的。美国焊接学会的文件说 following 要在使用计划中包括API方法,必须将各个API方法配置为需要API密钥。对于用户身份验证和授权,不要使用API密钥。使用IAM角色、Lambda授权人或Amazon Cognito用户池。 AWS还表示,以下内容适用于 controlled access
并非上述所有方法都是用于授权的,例如CORS实际上保护用户不受跨站点脚本的影响,而且正如所见,API密钥仅用于使用计划。资源策略只是通过限制对IP地址的访问来进一步保护API,因此您唯一的选项实际上是选项1中所述的IAM角色,以及选项3中所述的联邦用户或您自己的自定义lambda授权(如果您使用lambda),或者您自己的授权人,如果您使用的不是用API网关包装的lambda。 |
![]() |
2
0
我猜这将是服务到服务或(服务器到服务器)通信,因为所使用的术语是Oauth标准
请参阅文档以获取更多信息
token
|
![]() |
3
0
我在多个应用程序中使用过它们。 不建议将其用于 认证 API令牌的优点是易于为发卡机构、客户机和服务器使用,因为它们不需要复杂的签名或协议——但它们的基本安全性不如可重用性,并且通常不会很快过期。否则,它们相当于不记名代币。
安全是非常依赖上下文的——考虑以下问题:
你到底在保护什么(提供安全性)
对于
) ? 安全漏洞的风险和成本是多少?实施和使用它的成本/工作量是多少?
您可以拥有一个“高度安全”的API,但由于在通过受保护的网关之前和之后进行处理,您也有很高的违约风险和数据丢失风险。在许多合理的情况下,我们不需要将重点放在用银行保险库和装甲车保护“前门”上,而是要确保数据处理的安全性,确保不会有重大安全风险的数据通过前门。
AWS提供了一系列的技术特性,但最终取决于每个客户如何实现适合其使用的特性。API密钥确实有一系列适当的用例,特别是在服务器到服务器通信中,特别是在不涉及个人身份(和PI数据)的情况下,或者在API主要涉及服务而不是数据的情况下(例如,图像缩略图API不存储任何状态,也不提供对数据的访问)。当使用HTTPS/SSL以及可能的其他安全因素(如帐户密码短语、IP范围白名单和最少访问的一般策略)作为支持时。
|
![]() |
Jace Johnson · 我应该使用多个地图功能还是只使用一个 10 月前 |
![]() |
Mind full of blanks · 登录页面HTTP请求无限发送 11 月前 |
|
Pop Bob · Api返回UnsupportedMediaType 11 月前 |
![]() |
Mr FoX · 如何从mysqli输出json数组,而[重复] 11 月前 |