【发布时间】:2019-07-07 06:11:35
【问题描述】:
我正在努力实现以下目标: 我有一个 Web 应用程序,它需要不同的用户权限才能访问某些菜单和调用 API 网关。
我做了以下事情: - 设置包含 2 个组的用户池(Group 1 和 Group 2) - 将用户分配到这些组 - 设置 2 个策略(Policy 1 和 Policy 2,其中策略 1 是 fed.identites 中 authenticated role 中的默认策略) - 在角色中设置正确的信任策略 - 在联合身份中,在身份验证提供者下,我已将身份验证角色选择设置为从令牌中选择角色
在前面,我已经解码了 ID 令牌,并在初始化登录时验证了 cognito:groups 等是否正确。
所以组 1 是允许一切的宽松政策,而政策 2 是更严格的政策,不应该允许调用 API 网关中的某个资源。
但是当我将用户分配到具有更严格策略 2 的组 2 时,用户似乎仍然使用允许一切的策略 1。我在这里做错了什么?
我和this thread 有同样的问题,并且完全按照它说的做了,但仍然没有进展
【问题讨论】:
-
这里有同样的问题。你解决了吗?
-
不,我最终以另一种方式解决了它......我错误地使用了 cognito 作为授权人。我根本不应该使用授权人,而是使用 AWS_IAM 作为 API 网关。然后,我在每次调用 API 网关之前执行刷新凭据并刷新会话,在该网关中,我使用正确的 ARN(从早期登录中保存)承担正确的角色。有点棘手,但它有效。希望这对你有帮助!
-
您好,感谢您的回答。在我以同样的方式问你之后,我昨天也解决了它。如果其他人可能感兴趣,我已经在此处发布了我的解决方案:stackoverflow.com/questions/48540390/…
标签: amazon-web-services amazon-cognito