Serverless: Benutzerdefinierte Autorisierungsfehler bei der Bereitstellung

Erstellt am 8. Feb. 2017  ·  3Kommentare  ·  Quelle: serverless/serverless

Dies ist ein Fehlerbericht

Beschreibung

API Gateway scheint Authentifizierungstoken bei der Konfiguration nicht korrekt zu akzeptieren
mit einem benutzerdefinierten Autorisierer, trotz allem, was ich finden konnte, trifft die Anfrage nicht auf das Ereignis
autorisiert und wird von API Gateway abgelehnt.

wenn es so konfiguriert ist:

  whoami:
    handler: src/lambdas/session/whoami.handler
    events:
      - http:
          path: session/whoami
          method: get
          cors: true
          authorizer:
            name: customAuthorizer
            resultTtlInSeconds: 0
            identitySource: method.request.header.Authorization
            identityValidationExpression: Bearer .*

API Gateway antwortet mit folgendem:

{
  "message": "'sometoken' not a valid key=value pair (missing equal-sign) in Authorization header: 'Bearer sometoken'."
}

Und wenn es so konfiguriert ist:

  whoami:
    handler: src/lambdas/session/whoami.handler
    events:
      - http:
          path: session/whoami
          method: get
          cors: true
          authorizer:
            name: customAuthorizer
            resultTtlInSeconds: 0
            identitySource: method.request.header.Authorization
            identityValidationExpression: Bearer .*

Der Fehler ist:

{
  "message": "Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=sometoken"
}

Zusätzliche Daten

  • Von Ihnen verwendete serverlose Framework-Version: 1.6.1 :

Danke!

Hilfreichster Kommentar

Dies hängt normalerweise mit der Anforderung einer URL zusammen, die nicht existiert. Stellen Sie sicher, dass Sie die richtige HTTP-Methode und den richtigen Ressourcenpfad zu einer gültigen Ressource verwenden (die Beispiel-Aufruf-URL enthält keinen Ressourcenpfad). Denken Sie auch daran, die Bereitstellung vor dem Testen durchzuführen.

Alle 3 Kommentare

Hey @BarakChamo, danke fürs Öffnen.

Könnten Sie vielleicht die Lösung für Ihr Problem bereitstellen, damit andere, die über dieses Problem stolpern, sehen können, wie es gelöst werden kann?

Danke! 👍.

Dies hängt normalerweise mit der Anforderung einer URL zusammen, die nicht existiert. Stellen Sie sicher, dass Sie die richtige HTTP-Methode und den richtigen Ressourcenpfad zu einer gültigen Ressource verwenden (die Beispiel-Aufruf-URL enthält keinen Ressourcenpfad). Denken Sie auch daran, die Bereitstellung vor dem Testen durchzuführen.

Wie @jorgecar erwähnte, passiert dies, wenn die URL nicht existiert. Wenn Sie API Gateway Ressourcen hinzufügen, vergessen Sie nicht, diese APIs bereitzustellen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen