Aktivieren der CORS-Unterstützung für eine API

Sie können die CORS-Unterstützung (Cross-origin Resource Sharing, CORS) für Ihre API aktivieren. CORS lässt integrierte Scripts in einer Webseite zu, damit die API über Domänengrenzen hinweg aufgerufen werden kann.

Vorbereitende Schritte

Diese Task bezieht sich auf das Konfigurieren einer OpenAPI 2.0-API-Definition. Details zum Konfigurieren einer OpenAPI 3.0 -API-Definition finden Sie unter Bearbeiten einer OpenAPI 3.0 -API-Definition.

Informationen zu dieser Task

Hinweis:
  • CORS-Unterstützung ist nur auf dem DataPower® API Gatewayverfügbar.
  • Wenn CORS aktiviert ist, führt das API-Gateway die cors -Preflow-Richtlinie aus, um alle CORS-Anforderungen zu verarbeiten, die an die API gesendet werden.
  • Wenn CORS aktiviert ist und eine Preflight-Anforderung empfangen wird, werden nur die folgenden API-Aktionen ausgeführt:
    • Die Preflow-Richtlinie cors konfiguriert die entsprechenden Antwortheader.
    • Die Antwortheader werden festgelegt.
  • Wenn eine Preflight-Anforderung empfangen wird, wird das request.attributes.isCORSPreflight -Flag auf truegesetzt.
  • Bei allen Preflight-Anforderungen werden die Preflow-Richtlinien von security und client-identification immer übersprungen, unabhängig davon, ob CORS aktiviert oder nicht aktiviert ist.

Sie können diese Task entweder mithilfe der UI-Anwendung API Designer oder mithilfe der browserbasierten Benutzerschnittstelle von API Manager ausführen.

Sie können jederzeit direkt zur zugrunde liegenden OpenAPI -YAML-Quelle wechseln, indem Sie auf das Symbol Quelle Symbol für OpenAPI -Quelleklicken. Klicken Sie auf das Symbol Formular Formularsymbol, um zum Designformular zurückzukehren.

Vorgehensweise

Führen Sie die folgenden Schritte durch, um die CORS-Unterstützung für eine API zu aktivieren:

  1. Öffnen Sie die API zur Bearbeitung, wie unter Bearbeiten einer OpenAPI 2.0 -API-Definitionbeschrieben.
  2. Wählen Sie die Registerkarte Gateway aus, erweitern Sie Gateway-und Portaleinstellungenund klicken Sie dann auf CORS.
    Die Seite CORS wird geöffnet.
  3. Wählen Sie Enabled aus.
  4. Optional: Konfigurieren Sie eine CORS-Richtlinie .
    Soll eine CORS-Richtlinie erstellt werden? Beachten Sie die folgenden Hinweise:
    • Eine CORS-Richtlinie ist ein optionaler Teil einer API-Definition. Wenn eine API-Definition keine CORS-Richtlinie hat, aber CORS aktiviert ist, werden CORS-Anforderungen von allen Ursprünge akzeptiert.

      Wenn Sie CORS-Anforderungen von allen Ursprünge akzeptieren möchten, aktivieren Sie CORS, fügen Sie aber keine CORS-Richtlinie zur API-Definition hinzu.

    • Wenn Sie eine CORS-Richtlinie erstellen, werden CORS-Anforderungen nur aus Ursprünge akzeptiert, die explizit in den CORS-Regeln aufgelistet sind, die in der CORS-Richtlinie enthalten sind. CORS-Anforderungen anderer Ursprünge werden zurückgewiesen.

      Wenn Sie CORS-Anforderungen nur von einer begrenzten Anzahl von Ursprünge akzeptieren möchten (und möglicherweise auch die Antwortheader Access-Control-Allow-Credentials und Access-Control-Expose-Headers konfigurieren möchten), sollten Sie CORS aktivieren und eine CORS-Richtlinie erstellen. Nur die Ursprünge, die explizit im Feld 'allow-origin' der CORS-Regeln in der CORS-Richtlinie aufgelistet sind, werden akzeptiert; CORS-Anforderungen von nicht aufgelisteten Ursprünge werden zurückgewiesen.

    • Führen Sie die folgenden Schritte durch, um eine neue CORS-Richtlinie zu konfigurieren:
      1. Klicken Sie neben Richtlinieauf Hinzufügen.
      2. Um den Header Access-Control-Allow-Credentials: true in eine Antwort einzuschließen. Wählen Sie Berechtigungsnachweise zulassenaus. Der Antwortheader Access-Control-Allow-Credentials teilt Browsern mit, ob die Antwort dem Front-End- JavaScript -Code bereitgestellt werden soll, wenn der Berechtigungsnachweismodus (Request.credentials) der Anforderung auf includegesetzt ist.
      3. Um einen oder mehrere der folgenden Werte an den Antwortheader Access-Control-Expose-Headers anzuhängen, wählen Sie Header zugänglich machenaus und wählen Sie eine der folgenden Optionen aus:
        • Vordefiniert -Der vordefinierte Wert des Gateways Diese Option ist standardmäßig ausgewählt.
        • Backend -Der Wert von Access-Control-Expose-Headers aus der Back-End-Antwort.
        • Angepasst -Eine angepasste Zeichenfolge
      4. Klicken Sie auf Erstellen.
      5. Klicken Sie neben Zulässige Ursprünge auf Hinzufügen.
      6. Geben Sie die Ursprungs-URL ein und klicken Sie dann auf Erstellen. Diese Einstellung gibt an, dass die Antwort mit dem anfordernden Code aus der angegebenen Quelle gemeinsam genutzt werden kann.
    • Um eine vorhandene CORS-Richtlinie zu ändern, klicken Sie auf den zugehörigen Eintrag auf der Seite CORS . Sie können dann einzelne Ursprungs-URLs ändern, weitere Ursprünge hinzufügen und die Einstellung Berechtigungsnachweise zulassen ändern.
    Beispiel
    Das folgende Beispiel enthält drei Regeln:
    • Den Origin-Header https://example.com akzeptieren und Access-Control-Allow-Credentials: true in der CORS-Antwort zurückgeben.
    • Den Origin-Header http://domain.com akzeptieren. In der Antwort wird kein Access-Control-Allow-Credentials-Header zurückgegeben.
    • Jeden der folgenden Origin-Header akzeptieren:
      • http://example2.com
      • http://example3.com
      • http://example4.com
      In der Antwort wird kein Access-Control-Allow-Credentials-Header zurückgegeben.
      cors:
        enabled: true
        policy:
          -
            allow-origin:
              - 'https://example.com'
            allow-credentials: true
          -
            allow-origin:
              - 'http://domain.com'
          -
            allow-origin:
              - 'http://example2.com'
              - 'http://example3.com'
              - 'http://example4.com'
  5. Klicken Sie auf Speichern , um Ihre Änderungen zu speichern.
  6. Optional: Führen Sie die folgenden Schritte aus, um Ihre eigene CORS-Lösung mit angepassten OPTIONS -Operationen zu implementieren:
    1. Fügen Sie die folgenden Header Ihren HTTP-Antworten hinzu:
      Access-Control-Allow-Origin: https://<portalhostname>
      Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept 
      Dabei ist <portalhostname> der Hostname Ihres CMS Portals.
    2. Optional: Sie können Ihre API über API Connect als erzwungene Aufruf-API weiterleiten, damit CORS automatisch verarbeitet wird.
    Wichtig:
    • Wenn Sie Ihre eigene CORS-Lösung implementieren, müssen Sie die Option CORS inaktivieren, die in Schritt 3 beschrieben wird.
    • Vorbereitende CORS-Anforderungen werden mithilfe der HTTP-Methode OPTIONS gesendet. Wenn diese Anforderungen vom API Connect -Gateway verarbeitet werden müssen, müssen Sie deshalb die Methode OPTIONS für alle APIs aktivieren, die Preflight-Anforderungen verarbeiten. Weitere Informationen hierzu finden Sie unter Pfade für eine REST-API definieren.
    • OPTIONS-Anforderungen werden als API-Aufrufe für jede konfigurierte Ratenbegrenzung gezählt. Beachten Sie, dass Sie Ratenbegrenzungen auf einzelne Operationen anwenden können; siehe Ratenbegrenzungen für eine API-Operation definieren.