Rem*_*tec 6 oauth amazon-web-services amazon-cognito
试图了解如何使用Cognito和API网关来保护API。
到目前为止,我对AWS文档和Cognito用户界面的了解是:
客户群
资源服务器
范围
同样,对API的权限非常简单。公用www用户可以阅读价格,管理员可以编写价格。
API网关
用户数
基于此...
每个客户都将请求其感兴趣的范围。因此,对于公共www站点,它将请求prices.read,对于管理站点,也将请求prices.read和prices.write。
API网关将使用两个Cognito授权者,每个HTTP动词一个。因此,该GET方法必须检查用户可以读取价格和POST他们可以写入价格的方法。
我看不到的一点是如何将所有这些放在一起。我可以使客户端请求范围,但是现在它们如何连接到用户权限?
生成令牌后,显示“好的,您请求了这些作用域,现在我要检查此用户是否具有此权限并为您提供正确的令牌?”的功能在哪里?
我了解范围最终与将profile在令牌中返回的声明有关。例如,请求范围意味着令牌将包含某些声明,例如email,surname等等。
我觉得在此基础上,我的权限将最终结束时,特定范围的要求被退回被索赔。两个客户要求的内容不同,这一事实意味着该prices write要求永远不会退还给公共www客户。如果提出prices.write索赔,它将永远不会发出令牌。
我看不到这与Cognito相符。可以将用户分组,但仅此而已。同样,也没有(我可以看到)将范围与权利要求相关联。
我来自.Net和Identity Server背景。当然,在Identity Server的最新版本中,我看过有一个处理程序方法,您可以在其中确定要放入令牌中的声明。我想这会映射到Cognito中的自定义处理程序lambda函数之一。从那里,这将需要查询Cognito并确定要发出哪些声明?
难题的最后一部分是API网关如何检查声明。可以在API Gateway中完成此操作,还是需要在我将编写的Lambda函数中检查令牌以处理API Gateway请求?
当然,使用Identity Server和.Net可以在API中使用一个客户端库来检查声明和相应的编辑权限。猜猜Node JS Lambda函数中有类似的东西吗?
因为我基本上是在黑暗中,所以这里有一些假设。我认为这里有基础,但不确定如何将所有内容连接在一起。
希望有人能解决这个问题。
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |