禁止访问身份 'my-identity-that-exists-in-cognito-identity-browser'
Access to Identity 'my-identity-that-exists-in-cognito-identity-browser' is forbidden
假设您实现了两个外部提供程序,例如 Twitter and Facebook What is the correct, best practice JSON document for the Authenticated IAM role trust relationship. I have tried reading this blog post and this 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"
}
}
}
]
}
但我总是失败
Access to Identity 'my-identity-that-exists-in-cognito-identity-browser' is forbidden.
在我从开发人员提供的身份验证切换到亚马逊的其中一家提供商后,这才开始出现问题。除了非常标准的设置之外,我真的找不到任何示例,而且我在尝试理解此文档时遇到了问题。
更新
开发者错误。正如@jeff-bailey 所建议的那样,您必须确保您的提供商具有正确的登录映射。遵循示例不足以满足所有情况。就我而言,我有非常粘性的会话,这些会话会在应用程序终止甚至重新安装时持续存在。如果您已经拥有社交令牌并跳过传统的登录屏幕,您必须不要忘记设置您的令牌。您不能只依赖 fabric/facebook 身份验证回调。
您为两个提供商使用两个池而不是只使用一个池是否有特殊原因? Cognito 将您限制为每个池中每个提供者一个应用程序,但您可以在同一池中使用不同的提供者,这将允许您使用标准角色。
编辑:听起来登录映射内容可能存在问题。具有经过身份验证的 ID 的未来调用必须具有与其链接的相同登录令牌。因此,如果您使用 Twitter 身份验证创建了身份 ID,则尝试在没有 Twitter 令牌的情况下使用该 ID 会给您带来异常。请确保您包括 it/properly 在应用重启时恢复应用会话等。
我会再看一遍,如果你不是那肯定会导致那个问题。
假设您实现了两个外部提供程序,例如 Twitter and Facebook What is the correct, best practice JSON document for the Authenticated IAM role trust relationship. I have tried reading this blog post and this 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"
}
}
}
]
}
但我总是失败
Access to Identity 'my-identity-that-exists-in-cognito-identity-browser' is forbidden.
在我从开发人员提供的身份验证切换到亚马逊的其中一家提供商后,这才开始出现问题。除了非常标准的设置之外,我真的找不到任何示例,而且我在尝试理解此文档时遇到了问题。
更新
开发者错误。正如@jeff-bailey 所建议的那样,您必须确保您的提供商具有正确的登录映射。遵循示例不足以满足所有情况。就我而言,我有非常粘性的会话,这些会话会在应用程序终止甚至重新安装时持续存在。如果您已经拥有社交令牌并跳过传统的登录屏幕,您必须不要忘记设置您的令牌。您不能只依赖 fabric/facebook 身份验证回调。
您为两个提供商使用两个池而不是只使用一个池是否有特殊原因? Cognito 将您限制为每个池中每个提供者一个应用程序,但您可以在同一池中使用不同的提供者,这将允许您使用标准角色。
编辑:听起来登录映射内容可能存在问题。具有经过身份验证的 ID 的未来调用必须具有与其链接的相同登录令牌。因此,如果您使用 Twitter 身份验证创建了身份 ID,则尝试在没有 Twitter 令牌的情况下使用该 ID 会给您带来异常。请确保您包括 it/properly 在应用重启时恢复应用会话等。 我会再看一遍,如果你不是那肯定会导致那个问题。