Wie kann der HTTP-Header für x-frame-options von ADFS 3 bearbeitet werden?

7

Standardmäßig enthalten ADFS 3-Antworten den HTTP-Header "X-Frame-Options: DENY". Dies verhindert, dass ADFS in einem Iframe ausgeführt wird, da dies eine Möglichkeit für Clickjacking-Angriffe bietet.

Momentan implementiert mein Unternehmen jedoch eine Integration, bei der eine Ausnahme von dieser Sicherheitsregel gemacht werden sollte: Seiten in einer bestimmten Domäne sollten ADFS in einen Iframe einbetten können.

Es scheint jedoch, dass ADFS es nicht zulässt, dies sofort zu ändern. Was ist der beste Weg, um diesen HTTP-Header zu ändern?

Zum Beispiel wie im RFC vorgeschlagen ( https://tools.ietf.org/html/rfc7034#section-2.3.2.3 )?

  1. Eine Seite, die den angeforderten Inhalt in einem Frame rendern möchte, liefert dem Server ihre eigenen Ursprungsinformationen, die den zu rahmenden Inhalt über einen Abfragezeichenfolgenparameter bereitstellen.

  2. Der Server überprüft, ob der Hostname seinen Kriterien entspricht, sodass die Seite von der Zielressource eingerahmt werden kann. Dies kann beispielsweise über eine Suche in einer Whitelist vertrauenswürdiger Domänennamen geschehen, die die Seite umrahmen dürfen. Bei einer Facebook-Schaltfläche "Gefällt mir" kann der Server beispielsweise überprüfen, ob der angegebene Hostname mit den Hostnamen übereinstimmt, die für diese Schaltfläche "Gefällt mir" erwartet werden.

  3. Der Server gibt den Hostnamen in "X-Frame-Optionen: ALLOW-FROM" zurück, wenn in Schritt 2 die richtigen Kriterien erfüllt wurden.

  4. Der Browser erzwingt den Header "X-Frame-Options: ALLOW-FROM".
wkampmann
quelle
Nein, ich glaube nicht, dass es eine Option gibt, um die Standardheader zu ändern
Jim B

Antworten:

1

Verwenden Sie einen Webserver als Reverse-Proxy vor dem ADFS 3 und ändern Sie den HTTP-Header. Dies kann mit Apache oder Nginx erreicht werden . Testen Sie dies gründlich, bevor Sie es bereitstellen, da ADFS 3 möglicherweise keinen Proxy haben möchte. Ich habe keine Möglichkeit, einen Proof of Concept zu liefern

Es ist ein weiterer Server und Dienst zu verwalten, aber ich verstehe, dass dies eine Anforderung ist, die Sie erfüllen müssen

Kamihack
quelle
3
(ADFS 3 verwendet HTTPS. Dies macht das Ändern der Header nicht möglich, ohne den HTTPS-Verkehr zu entschlüsseln / neu zu verschlüsseln.)
wkampmann
1
Immer noch möglich - Sie würden L7 abfangen. Also 443HTTPS -> Nginx -> 443HTTPS -> ADFS3. Der Nginx-Host würde das gültige Zertifikat benötigen.
Brennen Smith
Wie Brennen betont, sollten Sie als lokaler Administrator Zugriff auf die SSL-Zertifikate haben und können entschlüsseln -> Header
einfügen