我已经阅读了很多AWS放大器和认知文档,但似乎没有直接的方法来描述这一点。
我拥有的:
我用Swift编写了一个iOS应用程序,后端设置在一些lambda函数中。我能够以通常的方式访问REST端点(就像任何公共URL一样)。
因此,我没有在我的iOS代码中集成扩容或AWS。
我想要什么?
1)包括用户管理:允许用户注册/注册(这已经在我的后端,但我对使用认知开放)
2)保护我的后端API,使只有经过身份验证的用户才能通过移动应用程序.访问它(我可以从邮递员那里使用它来进行自己的开发)。
我所知道的:
我知道有OAuth 2 (PKCE)机制可用于从移动端进行安全API访问,而不需要客户端机密,但AWS没有明确说明使用哪些工具才能真正实现它。
我不介意使用认知(如果一切都好的话)或我自己的后端lambdas用于用户管理。唯一的问题是,解决方案必须能够保护我的REST。
的障碍:
看起来他们的文档是如此的零碎
PS:不再有现成的文档链接。我已经经历过很多次了,除非他们中的任何一个直接处理我上面的问题,否则恐怕他们帮不上忙。
更新
我找到了一些不错的示例,介绍了科尼图如何在移动应用程序中处理令牌+用户管理。然而,在这些例子中,注册似乎仍然是在没有标记的情况下进行的。在应用程序包中公开池id等细节,并且假设任何人都可以使用SDK注册,则可以很容易地获得令牌。即使使用自定义lambda授权器,使用智能字符串解析器/摆弄器,也可以在app包中公开端点,并且非常有可能误用API。
这些示例可能没有使用PKCE (我的看法是它们使用SRP)。否则我就错过了关键的一步。
假设我使用AppAuth从认知端点获取令牌。如果我想使用认知用户if /密码对用户进行身份验证,这是否合理?
对于重定向URI,我也有一些困惑。是否必须在移动应用程序中重定向才能获得令牌(即使我没有使用像Google/Facebook这样的公开身份验证)?
发布于 2020-01-20 22:39:37
->用认知进行身份验证以获得认知标记。ID,Access,Refresh
->将令牌发送到Rest并对JWT令牌发送1执行验证。
此外:
->扩增Auth组件很好地用于登录/注册和管理令牌/会话。
然后,->使用任何HTTP库将请求发送到API。
如果->将成为(支持Lambda),那么您有更多的选择。放大器中的API组件将有助于发送请求,并且在API网关上有IAM/Custom / Cognito授权器选项,这些选项都是使用科尼托作为IDP时的有效选项。
发布于 2020-01-21 08:23:24
https://stackoverflow.com/questions/59829219
复制相似问题