Zugriff auf HTTP-Header in der benutzerdefinierten AWS-Lambda-Funktion

8

Von API-Gateway, habe ich eine benutzerdefinierte authorizer für meine API mit Lambda-Funktion in Python. Das API-Gateway übergibt das eingehende Authentifizierungs-Token mithilfe eines von mir konfigurierten Headers ( method.request.header.Authorization ). Allerdings brauche ich auch die anderen Header der ursprünglichen http-Anfrage innerhalb meiner Lambda-Funktion. Wie kann ich auf sie zugreifen? Ich habe nicht gesehen, die Header auf event Objekt Eingang meiner Lambda-Funktion.

Beachten Sie, dass dies nicht ein Duplikat Wie für die Anforderung an AWS-API-Gateway HTTP-Header für den Zugriff auf Lambda verwenden? . Die Frage bezieht sich auf die benutzerdefinierte Autorisierungs-Lambda-Funktion. Ich habe keine Konfigurationsoption sehen die eingehenden HTTP-Header übergeben Lambda-Funktion Authorizer.

Wie pro AWS Dokumentation , API-Gateway ruft Custom Authorizer mit der folgenden Eingabe auf. Basis auf dem unteren, ich nehme an, dass meine Frage nicht möglich ist. Aber ich möchte überprüfen, ob es einen Workaround gibt.

%Vor%     
suman j 26.07.2016, 17:29
quelle

3 Antworten

1

Leider ist dies zur Zeit nicht möglich, aber wir planen, Unterstützung dafür sowie einige weitere Verbesserungen an benutzerdefinierten Autorisierungen hinzuzufügen. Ich habe im Moment keine ETA zu liefern.

    
Jack Kohn - AWS 01.08.2016, 21:06
quelle
2

Dies ist jetzt möglich, indem ein Authorizer vom Typ 'Request' anstelle von Token

verwendet wird

Ausführliche Informationen finden Sie hier: Ссылка

Grundsätzlich werden alle Header im Ereignisobjekt für eine Anfrageberechtigung

übergeben

dh Header-Objekt bei Ereignis

%Vor%     
GlynD 18.09.2017 09:38
quelle
0

Nur im Anschluss daran, da uns diese Funktion sehr gefallen würde. Das Ergebnis, nur den Header zu haben, auf dem man sich autorisieren kann, ist, dass wir alle unsere Lambda-Funktionen nur basierend auf der gleichen Logik autorisieren können, obwohl das nicht das ist, was wir wollen.

Als Workaround haben wir über Lösungen gesprochen, um mehr Daten in den Header aufzunehmen (was nicht optimal ist)

Sonst gibt es immer die Möglichkeit, spezifische Autorisierung in der Lambda-Funktion selbst vorzunehmen, aber in diesem Fall haben wir wirklich keine Verwendung für den benutzerdefinierten API-Gateway-Autorisierung.

    
Emil Hein 09.08.2017 09:33
quelle