【发布时间】:2015-07-30 01:48:42
【问题描述】:
假设您实现了两个外部提供程序,例如 Twitter 和 Facebook 什么是 Authenticated IAM 角色信任关系的正确、最佳实践 JSON 文档。我已尝试阅读此blog post 和此documentation 但我仍然遇到问题。我目前的政策是:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "us-east-1:mypool"
},
"ForAnyValue:StringLike": {
"cognito-identity.amazonaws.com:amr": "authenticated"
}
}
}
]
}
但我总是失败
禁止访问身份“my-identity-that-exists-in-cognito-identity-browser”。
这只是在我从开发人员提供的身份验证切换到亚马逊的供应商之一后才开始出现问题。除了非常标准的设置之外,我真的找不到任何示例,而且我在尝试了解此文档时遇到了问题。
更新
开发者错误。正如@jeff-bailey 建议的那样,您必须确保您的提供商具有正确的登录映射。遵循示例不足以满足所有情况。就我而言,我的会话非常棘手,这些会话在应用程序终止甚至重新安装时都会持续存在。如果您已经拥有社交令牌并跳过传统的登录屏幕,您必须不要忘记设置您的令牌。您不能仅仅依赖于fabric/facebook 身份验证回调。
【问题讨论】:
-
我们的iOS sample 支持通过单一身份池对所有公共提供者进行身份验证,无需进行任何修改。
-
@BobKinney 我修改了很多策略,我不再知道自动生成的信任关系对于 cognitoAuth 角色是什么。
-
在您链接的博客文章中,在第一个策略中将未验证的替换为已验证的,并且您拥有默认的信任策略。
-
谢谢,我想我遇到了一个问题,我自己的开发人员滚动凭据(仍然有效)正在破坏我的新身份。