【问题标题】:Inbuilt authentication mechanism - API gateway内置认证机制——API网关
【发布时间】:2019-12-20 11:39:43
【问题描述】:

API 网关具有执行授权的内置功能。

但是 awslabs 提供的示例已将 lambda 挂钩到 API 网关,其中 lambda 根据此 code 授权以下 API 网关:

MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Auth:
        DefaultAuthorizer: MyLambdaRequestAuthorizer
        Authorizers:
          MyLambdaRequestAuthorizer:
            FunctionPayloadType: REQUEST
            FunctionArn: !GetAtt MyAuthFunction.Arn

所以,客户端提供的认证令牌被 lambda 接收,然后被授权:

exports.handler = async function (event) {
  const token = event.queryStringParameters.auth.toLowerCase()

  ....

     switch (token) {
    case 'allow':
      return generateAuthResponse('user', 'Allow', methodArn)
    case 'deny':
      return generateAuthResponse('user', 'Deny', methodArn)
    default:
      return Promise.reject('Error: Invalid token') // Returns 500 Internal Server Error
  }
}

但这不是 API 网关提供的内置身份验证。

API 网关如何提供内置身份验证?

【问题讨论】:

    标签: authentication aws-lambda authorization aws-api-gateway amazon-iam


    【解决方案1】:

    解决方案 1:

    使用 API 密钥创建和使用使用计划:在此方法中,您可以使用 API 密钥对用户进行身份验证。请点击此链接:API Keys method

    解决方案 2:

    您可以使用 AWS Amazon Cognito 服务进行身份验证。与 OKTA 服务相同。请点击此链接:Amazon Cognito

    【讨论】:

      猜你喜欢
      • 2013-09-28
      • 2020-10-29
      • 2020-01-12
      • 2018-01-06
      • 2016-06-09
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 2017-08-19
      相关资源
      最近更新 更多