Custom Authorizer AWS API Gateway не вызывается при выполнении метода API - PullRequest
0 голосов
/ 05 февраля 2019

Я использую AWS lambda серверное приложение WEB API.Мой контроллер имеет один метод, который просто возвращает некоторое строковое значение.Я хочу добавить слой аутентификации, который аутентифицирует запрашивающую.Запрашивающая сторона должна передать ключ "Authorizer" в заголовок для аутентификации.

Эта статья помогла мне сделать это.Я использовал этот пример .

Я создал одну лямбду Custom Authorizer, которая аутентифицирует пользователя, переданного в заголовке запроса API.Но мой Custom Authorizer не звонит, когда я нажимаю URL API.Ниже приведен код лямбда-функции моего Custom Authorizer

public APIGatewayCustomAuthorizerResponse FunctionHandler(APIGatewayCustomAuthorizerRequest apigAuthRequest, ILambdaContext context)
    {


        Console.WriteLine("1");

        bool ok = false;

        if (apigAuthRequest.Headers["Authorization"] == "test")
        {
            ok = true;
            Console.WriteLine("2");
        }
        return new APIGatewayCustomAuthorizerResponse
        {
            PrincipalID = "test",
            PolicyDocument = new APIGatewayCustomAuthorizerPolicy
            {
                Version = "2012-10-17",
                Statement = new List<APIGatewayCustomAuthorizerPolicy.IAMPolicyStatement>() {
                  new APIGatewayCustomAuthorizerPolicy.IAMPolicyStatement
                  {
                       Action = new HashSet<string>(){"execute-api:Invoke"},
                       Effect = ok ? "Allow" : "Deny",
                       Resource = new HashSet<string>(){ apigAuthRequest.MethodArn } // resource arn here
                  }
            },
            }
        };

    }

Я ожидаю, что эта функция должна вызываться при вызове моего API.

Ниже приведен снимок экрана Консоли AWS -> Шлюз APIгде я настроил собственный авторизатор для моего API.

enter image description here

enter image description here

Почему мой авторизатор не вызывается, когда я нажимаю URL API.

1 Ответ

0 голосов
/ 20 февраля 2019

Пользовательские авторизаторы начинают работать только после развертывания этапа.Убедитесь, что вы развернули свой.

...