Я использую 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.
Почему мой авторизатор не вызывается, когда я нажимаю URL API.