【问题标题】:amazon alb and basic auth亚马逊 alb 和基本身份验证
【发布时间】:2022-04-28 15:53:02
【问题描述】:

我在 Fargate 和 alb 有一个简单的站点。我想在它上面加上一个简单的基本身份验证——只是一个硬连线的用户名和密码。有没有简单的方法可以做到这一点?

我尝试去 cognito - 创建一个用户池,并将其附加到站点,但有诸如“回调 url”之类的问题 - 我只是将其设置为相同的 url 和“signout url”,我不确定关于并且当我设法单击一组允许我添加它的东西,并向我的 https 端点添加一个侦听器时 - 当我尝试进入时它只会给出一个“redirect_mismatch”。

有什么方法可以做我想做的事情无需以任何方式编辑底层系统

【问题讨论】:

  • 好的 - 我找到了一些魔法咒语让它发挥作用 - 但我仍然不完全确定我做了什么 - 它似乎仍然比它需要的复杂得多
  • 至少分享一些“魔法咒语”的细节会很有用,这样其他用户也可以受益。 ;)
  • 是的 - 我基本上将 cognito 设置为负载均衡器上侦听器的规则。但是 - 我已经将它转储并只是转到容器内的 nginx 和基本身份验证,因为 cognito 对我们不利几次

标签: amazon-web-services amazon-cognito amazon-elb


【解决方案1】:

目前这是不可能的。支持的方法有:

  • OIDC
  • Cognito:支持常见的社交 IdP 和企业身份,如 LDAP、SAML 等。

更多信息请参考ALB documentation

对此的一个常见解决方案是在用户和您的服务之间部署一个 nginx 服务器,并将其配置为提供您需要的基本身份验证层。

【讨论】:

    【解决方案2】:

    我使用 ALB 和 CloudFront 进行了以下测试(只是为了能够测试 HTTPS)

    1. 编码凭据 user=user 和 password=password

      echo -n 'user:password' | base64
      
      dXNlcjpwYXNzd29yZA==
      
    2. 使用以下侦听器规则创建 ALB

    1. 将 ALB 置于 CloudFront 和 forward Authorization header 之后

    2. 使用 curl 的测试结果

      # Authentication option
      curl -u 'user:password' https://d3anlpzrykthss.cloudfront.net
      Hello from f86c5f9e0395
      
      # Inline password
      curl https://user:password@d3anlpzrykthss.cloudfront.net
      Hello from f86c5f9e0395
      
      # Headers
      curl -H 'Authorization: Basic dXNlcjpwYXNzd29yZA==' https://d3anlpzrykthss.cloudfront.net
      Hello from f86c5f9e0395
      
      # Wrong password
      curl -u 'user:wrong' https://d3anlpzrykthss.cloudfront.net
      Not authorized
      
    3. 不清楚如何让它在浏览器中工作 - 内联密码不起作用

      https://user:password@d3anlpzrykthss.cloudfront.net
      Not authorized
      

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      相关资源
      最近更新 更多