Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » WKL Database Gateway » Navodila » Delovanje prehoda za strežnikom IIS ali drugim posredniškim strežnikom

Delovanje prehoda za strežnikom IIS ali drugim posredniškim strežnikom

Če je pred prehodom IIS, izenačevalnik obremenitve ali drug posredniški strežnik, prehod najprej vidi le njegov naslov. Da bi pravila izvora, pravilnik prijave in obveznost HTTPS pravilno delovali, mora prehod posredniškemu strežniku izrecno zaupati.

Pregled rešitve

Posredniški strežnik naslov klicatelja sporoči v X-Forwarded-For, shemo v X-Forwarded-Proto, gostitelja, ki ga je klicatelj naslovil, pa v X-Forwarded-Host. Prehod tem glavam verjame le, če prihajajo z naslova pod Gateway:Security:TrustedProxies. Brez tega vnosa bi vsakega klicatelja videl z naslovom posredniškega strežnika; če je ta v omrežju podjetja, bi vsak klicatelj veljal za „notranjega“.

Izvedba

  1. Prehod naj posluša le na 127.0.0.1 (ali na naslovu, ki ga doseže le posredniški strežnik), na primer z Kestrel:Endpoints:Http:Url = http://127.0.0.1:8434.
  2. Posredniški strežnik vpišite kot zaupanja vrednega:

    "Security": { "TrustedProxies": [ "127.0.0.1", "::1" ] }
  3. Posredniški strežnik naj nastavi X-Forwarded-For, X-Forwarded-Proto: https in X-Forwarded-Host. Če X-Forwarded-For manjka, vsaka zahteva velja, kot da prihaja od samega posredniškega strežnika – pri IIS na istem računalniku torej kot 127.0.0.1: notranja, zaščitena, izvzeta iz vsakega omrežnega pravila. Zato po nastavitvi v revizijski sledi preverite, ali so tam navedeni dejanski izvori. Iz sheme in gostitelja prehod sestavi absolutne naslove v svojih odgovorih: dokument storitve in naslednje strani vmesnika OData, Location po ustvarjanju ter enkratne povezave skrbništva. Brez X-Forwarded-Host kažejo na 127.0.0.1 in od zunaj niso dosegljivi. Prehod iz vsake glave vzame zadnji vnos, ki ga je dodal najbližji posredniški strežnik, pri gostitelju pa samo ime računalnika ali naslov z vrati.
  4. Z IIS: namestitveni paket z GW_MODE=iis opravi 1. in 2. korak ter v programsko mapo zapiše predlogo iis\web.config. Ta preusmeri http na https, vsako zahtevo posreduje na http://127.0.0.1:<GW_PORT>, nastavi X-Forwarded-Proto: https in X-Forwarded-Host ter dovoli naslove do 8 192 znakov. Z njo ustvarite spletno mesto IIS s svojim potrdilom. Predloga potrebuje modula IIS URL Rewrite in Application Request Routing. V upravitelju IIS pod „URL Rewrite“ > „View Server Variables“ dovolite spremenljivki HTTP_X_FORWARDED_PROTO in HTTP_X_FORWARDED_HOST; brez tega dovoljenja IIS zavrne pravilo, ki nastavi glavi, in odgovori s 500.

    Upravitelj IIS v nemški različici sistema Windows, funkcija "URL Rewrite" spletnega mesta: dve dohodni pravili iz predloge, "Wkl.Data.Gateway HTTPS" z vrsto dejanja "Umleiten" (Redirect) in "Wkl.Data.Gateway" z vrsto "Umschreiben" (Rewrite); desno, pri upravljanju strežniških spremenljivk, dejanje "Servervariablen anzeigen..." (View Server Variables)

    Pravili predloge pod URL Rewrite (nemška različica upravitelja IIS).

    Upravitelj IIS, "Zulässige Servervariablen" (Allowed Server Variables): HTTP_X_FORWARDED_HOST in HTTP_X_FORWARDED_PROTO

    Dovoljeni strežniški spremenljivki.

Rezultat: revizijska sled navaja naslov klicatelja, ne posredniškega strežnika; zahteva prek https na posredniškem strežniku velja za zaščiteno povezavo, naslovi v odgovorih pa navajajo posredniški strežnik s https.

Napotki

  • Prijava Windows samo brez skupnih povezav. Prijava Windows velja za povezavo, na kateri je potekla. Posredniški strežnik, ki zahteve različnih uporabnikov vodi prek ene povezave do prehoda, bi drugemu uporabniku dal pravice prvega. IIS z Application Request Routing zahteve posreduje prek skupnih povezav. Zato setup-host --mode iis nastavi AuthMode na PersonalKey, brez prijave Windows; osebe se prijavijo z osebnim ključem. Če je Windows kljub temu v AuthMode in je vpisan zaupanja vreden posredniški strežnik, prehod ob zagonu v dnevnik zapiše opozorilo.
  • Branje izvora: prehod X-Forwarded-For bere od najbližjega člena naprej; velja prvi naslov, ki sam ni zaupanja vreden posredniški strežnik. Vnosa, ki ga odjemalec sam vpiše na začetek, tako ne upošteva. Če podatka ni mogoče prebrati, je izvor neznan; neznan izvor ne odpravi nobene zavrnitve.
  • Glava Server: prehod sam ne razkriva programske opreme strežnika. Za IIS doda IIS glavo Server: Microsoft-IIS/10.0. Od IIS 10 naprej jo odstrani removeServerHeader="true" na elementu requestFiltering v predlogi: <requestFiltering removeServerHeader="true">. Starejše različice IIS atributa ne poznajo in z njim javijo napako 500.19, zato ga predloga ne nastavi.
  • Dolgi naslovi: IIS in http.sys brez predloge dopuščata le 2 KB poizvedbenega niza; odjemalci lahko dolge pogoje tako ali tako pošljejo v telesu, glejte HTTP: dolge poizvedbe.

Sorodne teme

sl/wiki/data-conectivity/database-gateway/how-to/run-behind-iis-or-proxy.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille