将AWS CloudFront连接到单点登录(SSO)

时间:2017-04-11 14:13:35

标签: amazon-web-services amazon-s3 single-sign-on saml-2.0

我正在使用S3作为存储和CloudFront CDN部署到AWS的网站。这是一个静态网站,有一个单独的html文件,使用JS显示基于查询字符串的内容。所有者是已在其组织内建立SSO的企业,他们使用IBM Tivoli作为IdP。我缺少的部分是如何生成授权请求?

我已经读完了这些:

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html

其中许多都很接近,但还是不合时宜。它不是EC2实例,它不是Elastic Beanstalk,我没有尝试访问AWS控制台,并且它们不使用AD进行SSO。这只是一个网站。

到目前为止,我有:

  • 在AWS中创建了SAML提供程序并从其IdP
  • 导入了元数据
  • 创建了IAM角色
  • 建立了角色和提供者之间的信任关系
  • 为角色
  • 建立了s3:getObject权限
  • 向他们提供了AWS的元数据,以及有关需要提供的SAML断言的详细信息。

我的问题是双方如何联系。当有人试图访问该网站时,它是由AWS自动完成的吗?企业是否在其门户中创建了一个特殊链接以使用SAML启动该站点?如果用户只是在浏览器中键入域名会怎样?是否需要将代码添加到网站?

TIA, 麦克

1 个答案:

答案 0 :(得分:4)

回过头来回答这个问题。我发现AWS没有办法将SSO图层添加到您的CloudFront托管网站。这需要在网站的代码中实现。

我使用npm模块'express-saml'来处理saml交换和一个非常简单的DynamoDB表来存储SP端的登录。 aws-sdk用于DynamoDB。

麦克