我们正在使用AWS Cognito(联合身份)以通过Facebook和Google +提供登录。
我们正面临以下挑战。我们公司提供相互交互的不同应用程序,以便我们希望经过身份验证的用户在一个cognito身份池中拥有一个身份。并使用同步存储跨应用程序。
对于cognito,您只能在使用AWS控制台时为每个IdP选择一个受众(client-id / app-id)。对我们来说,将许多Facebook观众和Google +观众与一个认知设置联系起来是有意义的。
我们通过IAM创建google +作为IdP,找到了如何设置多个Google +受众群体的方法。哪个对我们来说非常好。 我们正在努力找出如何通过IAM-IdP或任何其他方式配置许多Facebook受众的方法。
嗯,facebook不是open-id-connect提供商,这似乎是个问题。但我有点不想接受这个。
你们其中一个人是否知道如何配置多个facebook应用程序与一个认知身份池相关联。非常欢迎变通方法。
一个额外的信息:我们可以使用一个全球性的Facebook应用程序,例如'我们的公司 - 网络',这将成功。对此的阻止是,它会阻止我们使用安装跟踪进行Facebook广告系列。如果您知道解决方法,也是一个受欢迎的解决方案。
答案 0 :(得分:1)
我通过使用多个池,然后在角色级别允许两个池来完成此操作。这意味着我对该角色的信任关系如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"ForAnyValue:StringEquals": {
"cognito-identity.amazonaws.com:aud": [
"<first cognito pool>",
"<second cognito pool>"
]
},
"ForAnyValue:StringLike": {
"cognito-identity.amazonaws.com:amr": "authenticated"
}
}
}
]
}
答案 1 :(得分:1)
一种解决方法是使用Developer Authenticated Identities。在这种情况下,您需要自己验证Facebook令牌。