多个Facebook应用程序作为AWS Cognito联合身份的身份提供者

时间:2016-06-07 09:32:32

标签: facebook facebook-graph-api amazon-web-services facebook-apps amazon-cognito

我们正在使用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广告系列。如果您知道解决方法,也是一个受欢迎的解决方案。

2 个答案:

答案 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令牌。