---
title: "Endpoint-Profile"
manual: "HTTP Guard"
version: "0.1.4"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-http-guard:configuration-endpoints@0.1.4"
source: "Configuration/Endpoints.rst"
rendered: "2026-10-18T14:31:43+00:00"
---

# Endpoint-Profile {#configuration-endpoints}

Ein Profil bindet eine begründete Integration an Origin, Methoden und enge
Netze. Der Client erhält seine Bindung durch
`EndpointClientFactoryInterface::forEndpoint()` beim Aufbau des
vertrauenswürdigen Services. Die Profil-ID darf nicht aus Benutzerfeldern,
URL-Parametern oder Request-Headern abgeleitet werden.

## Felder {#configuration-endpoint-fields}

-   **origin**

    -   *Type:* string
    -   *Default:* kein Default; erforderlich

    Exakte HTTP- oder HTTPS-Origin aus Scheme, Host und optionalem Port.
    Kein Pfad, auch kein abschließender Slash, keine Query, kein Fragment
    und keine Zugangsdaten. Beispielsweise
    `https://erp.internal.example:8443`. IPv6-Literale benötigen
    eckige Klammern. Standardports werden kanonisiert.

-   **allowedCidrs**

    -   *Type:* list\<string>
    -   *Default:* kein Default; erforderlich

    Nicht leere Liste. IPv4-Netze dürfen nicht breiter als /24 sein,
    IPv6-Netze nicht breiter als /64. Eine einzelne Adresse wird als /32
    beziehungsweise /128 angegeben. Alle gefundenen Adressen müssen zu
    diesen Netzen passen, auch bei einem öffentlich auflösenden Endpoint.
    Betreiber-Sperren und harte Metadaten-Sperren bleiben vorrangig.

-   **methods**

    -   *Type:* list\<string>
    -   *Default:* kein Default; erforderlich

    Nicht leere Liste gültiger HTTP-Methoden-Tokens; Vergleich exakt und
    case-sensitiv. Die üblichen Namen wie `GET` und `POST`
    werden großgeschrieben. `CONNECT` ist stets ausgeschlossen.

-   **redirects**

    -   *Type:* string
    -   *Default:* 'none'

    `none` verbietet Redirects. `same-origin` gestattet sie
    innerhalb derselben Origin unter der allgemeinen Redirect-Obergrenze.
    Ein Redirect erteilt keine Berechtigung für einen anderen Endpoint.

-   **allowLoopback**

    -   *Type:* boolean
    -   *Default:* false

    Loopback benötigt gleichzeitig `true` und genau eine freigegebene
    /32-IPv4- beziehungsweise /128-IPv6-Adresse. Ein gesamtes
    `127.0.0.0/8` bleibt ungültig. Der Schalter erlaubt keine anderen
    besonderen oder Metadatenadressen.

-   **purpose**

    -   *Type:* string
    -   *Default:* kein Default; erforderlich

    Nicht leerer UTF-8-Zweck mit höchstens 200 Zeichen und ohne Steuerzeichen.
    Beschreibt die konkrete Verbindung, beispielsweise den ERP-Bestellabgleich.

-   **owner**

    -   *Type:* string
    -   *Default:* kein Default; erforderlich

    Nicht leere verantwortliche Stelle, höchstens 120 UTF-8-Zeichen und ohne
    Steuerzeichen. Keine Zugangsdaten oder personenbezogenen Geheimnisse.

-   **reviewAfter**

    -   *Type:* string|null
    -   *Default:* null

    Echtes Kalenderdatum im Format `YYYY-MM-DD`. Nach Ablauf meldet
    `config-check` und `doctor` eine überfällige Prüfung;
    das Profil wird dadurch nicht automatisch deaktiviert.

-   **expiresAt**

    -   *Type:* string|null
    -   *Default:* null

    Echter Zeitpunkt mit Zeitzone, etwa `2027-04-01T00:00:00Z`.
    Optionale Sekundenbruchteile haben höchstens sechs Stellen. Kein Datum
    ohne Uhrzeit, keine implizite Serverzeitzone. Nach Ablauf wird jeder neue
    Versuch abgelehnt, einschließlich Redirect, Retry und Versand nach
    Secret-/Body-Vorbereitung. Bereits gestartete Übertragungen werden nicht
    als sofort widerrufen dargestellt.

## Adressklassen und Widerruf {#configuration-endpoint-networks}

Eine gebundene Freigabe kann enge RFC1918-, ULA- und CGNAT-Netze erlauben.
Loopback hat die zusätzliche Einzeladressregel. Link-Local, Multicast,
Dokumentationsnetze, besondere reservierte Bereiche und bekannte
Metadatenadressen erhalten dadurch keine allgemeine Ausnahme.

IPv4-mapped IPv6-Ziele werden als eingebettete IPv4-Adresse klassifiziert und
mit IPv4-Netzen verglichen. Eine Konfiguration wie
`::ffff:10.23.4.12/128` ist ungültig; stattdessen
`10.23.4.12/32` verwenden.

Profiländerungen erfordern den Austausch des Konfigurations-Snapshots und
der daraus erzeugten Clients. Eine andere Registry lehnt fremde oder alte
Kontexte ab. Ein im alten Worker verbleibender Client besitzt weiterhin
seine alte Registry: Für einen operativen Widerruf muss dieser Worker neu
gestartet werden. Ein DNS-Cache-Treffer umgeht weder aktuelle Profilprüfungen
der verwendeten Registry noch `expiresAt`.
