小编Chr*_*sen的帖子

关于id_token vs access_token的澄清

我正在使用OIDC和OAuth 2.0(使用Auth0)构建一个系统,我不确定如何正确使用id_tokenaccess_token.或者更确切地说,我对在我的设置中分配给各种服务的角色感到困惑.

我有一个完全静态的前端应用程序(单页面应用程序,HTML + JS,没有后端),可确保使用针对Auth0的隐式流程对用户进行身份验证.然后,前端应用程序从我正在构建的API中获取数据.

现在,哪个是对的?

  • 前端SPA是OAuth 客户端应用程序
  • 我的API服务是OAuth 资源服务器

...要么:

  • 前端和我的API服务都是客户端应用程序

如果我的前端和后端API都可以被认为是客户端,我认为在id_token我的前端到后端的请求中使用持票令牌没有真正的危害- 这很有吸引力,因为那时我可以简单地验证签名后的令牌后端,我有关于我需要的用户的所有信息.但是,如果我的API被认为是资源服务器,我应该使用它access_token,但是我必须在每个API请求上连接到Auth0的服务器以验证令牌,并获得基本的用户信息,不是吗?

我已经读过这个似乎表明它access_token是我的API使用的唯一有效令牌.但就像我说的那样,我不确定个别服务的角色.并且使用它id_token很诱人,因为它在后端不需要网络连接,并且包含提取正确数据所需的信息.

什么是正确的方法?

access-token oauth-2.0 openid-connect

21
推荐指数
2
解决办法
8470
查看次数

使用Cloudformation的AWS Api Gateway代理资源?

我正在尝试从API网关端点代理配置为网站的S3存储桶.我使用控制台成功配置了端点,但我无法使用Cloudformation重新创建配置.

经过大量的试验和错误猜测后,我想出了以下CF堆栈模板,让我非常接近:

Resources:
  Api:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      Name: ApiDocs

  Resource:
    Type: 'AWS::ApiGateway::Resource'
    Properties:
      ParentId: !GetAtt Api.RootResourceId
      RestApiId: !Ref Api
      PathPart: '{proxy+}'

  RootMethod:
    Type: 'AWS::ApiGateway::Method'
    Properties:
      HttpMethod: ANY
      ResourceId: !GetAtt Api.RootResourceId
      RestApiId: !Ref Api
      AuthorizationType: NONE
      Integration:
        IntegrationHttpMethod: ANY
        Type: HTTP_PROXY
        Uri: 'http://my-bucket.s3-website-${AWS::Region}.amazonaws.com/'
        PassthroughBehavior: WHEN_NO_MATCH
        IntegrationResponses:
          - StatusCode: 200

  ProxyMethod:
    Type: 'AWS::ApiGateway::Method'
    Properties:
      HttpMethod: ANY
      ResourceId: !Ref Resource
      RestApiId: !Ref Api
      AuthorizationType: NONE
      RequestParameters:
        method.request.path.proxy: true
      Integration:
        CacheKeyParameters:
          - 'method.request.path.proxy'
        RequestParameters:
          integration.request.path.proxy: 'method.request.path.proxy'
        IntegrationHttpMethod: ANY
        Type: HTTP_PROXY
        Uri: 'http://my-bucket.s3-website-${AWS::Region}.amazonaws.com/{proxy}'
        PassthroughBehavior: WHEN_NO_MATCH …
Run Code Online (Sandbox Code Playgroud)

proxy amazon-s3 aws-cloudformation aws-api-gateway

8
推荐指数
1
解决办法
1951
查看次数

ECS:任务定义端口映射与服务负载均衡器端口有何关系?

我正在编写一些 cloudformation 模板来启动一个包含一些 docker 容器的 ECS 集群。我不完全理解所有端口如何相互关联。

我有一个AWS::ECS::TaskDefinition,它指定一个端口映射,由 a ContainerPort(我理解是容器中运行的进程使用的端口)和 a组成HostPort,我认为这是 EC2 实例上公开的端口。

然后我有一个AWS::ECS::Service,其中有一个LoadBalancers部分。本节ContainerPort再次包含 - 但这与我的任务定义有何关系?这应该是之前的ContainerPort还是那个?HostPort如果是后者,它是如何运作的?AWS 是否对实例进行“反向查找”?例如“获取容器端口 XYZ 的主机端口”?

amazon-web-services amazon-ecs

5
推荐指数
1
解决办法
8898
查看次数

us-east-1中的Terraform AWS ACM证书用于eu-west-1中的资源

我有一个terraform模块,主要在eu-west-1中提供资源。我需要ACM证书才能附加到Cloudfront发行版。证书必须在us-east-1中进行设置。

因此,我配置了两个提供程序:

provider "aws" {
  version = "~> 1.0"
  region = "eu-west-1"
}

provider "aws" {
  version = "~> 1.0"
  region = "us-east-1"
  alias = "us-east-1"
}
Run Code Online (Sandbox Code Playgroud)

在我的模块中,我像这样配置证书:

resource "aws_acm_certificate" "cert" {
  provider = "aws.us-east-1"
  domain_name = "${var.domain_name}"
  validation_method = "DNS"
  tags = "${var.tags}"

  lifecycle {
    create_before_destroy = true
  }
}
Run Code Online (Sandbox Code Playgroud)

问题1:我尝试使用以下方法导入现有的ACM证书:

terraform import module.mymod.aws_acm_certificate.cert arn:aws:acm:us-east-1:xyz:certificate/uuid
Run Code Online (Sandbox Code Playgroud)

失败并显示:“找不到ID为证书的证书”。地形是否在错误的区域中寻找?我通过aws CLI确认证书确实存在(例如,ARN中没有错字)。

好的,所以我认为我可以创建新证书。确实可以,并且我现在有两个证书,但是然后遇到了问题2:

resource "aws_route53_record" "cert_validation" {
  name = "${aws_acm_certificate.cert.domain_validation_options.0.resource_record_name}"
  type = "${aws_acm_certificate.cert.domain_validation_options.0.resource_record_type}"
  zone_id = "${data.aws_route53_zone.zone.id}"
  records = ["${aws_acm_certificate.cert.domain_validation_options.0.resource_record_value}"]
  ttl = 60
} …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform amazon-acm

3
推荐指数
2
解决办法
1327
查看次数