Vdelava portala na drugo spletno mesto z iFramom

Eden najpogostejših načinov, na katerega lahko uporabite aplikacije portala, je, da njegove funkcije vdelate na drugo spletno mesto. Tako spletno mesto po navadi že obstaja, vendar vam je v interesu, da izboljšate njegove zmogljivosti in dodate nove funkcije, ki bodo funkcionirale z vašimi podatki, prikazanimi v aplikaciji portala.

V tem primeru je funkcije lažje vdelati, kot pa jih ustvariti čisto na novo. Ta članek vsebuje navodila za vdelavo aplikacije portala na drugo spletno mesto z iFramom.

1. korak: Omogočanje portala za iFrame

Elementi iFrame so na novih portalih privzeto onemogočeni, saj je tako zagotovljeno, da vaše aplikacije portala ne more vdelati nihče od zunaj in tako izvesti napada »ugrabljanja klikov«.

  1. Nastavite glavo odziva HTTP. Izberete lahko direktivo »Content-Security-Policy (CSP) frame-ancestors« (priporočeno) ali »X-Frame-Options«.

    Opomba

    Metoda »Content-Security-Policy frame-ancestors«, opisana v tem članku, je nadomestila metodo X-Frame-Options.

    1. Nastavite nastavitve spletnega mesta in tako omogočite glavo HTTP HTTP/Content-Security-Policy. Več informacij: Nastavitev glav HTTP na portalih

    2. Za nastavitev vrednosti upoštevajte sintakso, opisano v pravilniku CSP: frame-ancestors.

      Pri omogočanju portala, ki ga je mogoče z iFramom vdelati na spletno mesto www.contoso.com, bo nastavitev takšna:

      Content-Security-Policy: frame-ancestors 'self' <https://www.contoso.com>;

      Opomba

      Niz 'self' je pomemben; brez njega portal ne bo mogel vdelati svojih lastnih strani, kar je po navadi zahtevano v scenarijih, kot so modalni pojavni meniji za osnovne obrazce.

      Pomembno je, da možnost vdelave portala v iFramu omejite na določena mesta, namesto da uporabite nadomestni znak (*).

      CSP sestavljajo številne direktive, katerih vrednosti so odvisne od različnih dejavnikov (na primer od mesta nalaganja skriptov). Te informacije zadevajo uvedbo, zato niso vključene v članek. Vseeno priporočamo, da nastavitev najprej preizkusite na neprodukcijskem portalu, da si ogledate napake glede konzole in tako definirate težave, ki jih morate odpraviti, ter da prilagodite nastavitve.

  2. Privzeti način SameSite za piškotke portala nastavite na Brez.

    Atribut SameSite za piškotke je uporaben za zaščito spletnega mesta pred napadi medstranskega ponarejanja zahtev (CSRF). Vendar to pomeni, da spletnega mesta v iFramu ni mogoče vdelati v primerih, ko mesto zahteva preverjanje pristnosti uporabnika ali vsebuje dinamične komponente, kot so obrazci ali seznami.

    Za vdelavo portala v iFramu morate zato atribut SameSite za piškotke za svoj portal spremeniti tako, da bo privzeto nastavljena možnost Brez. Več informacij: Spremembe načina SameSite

    Opomba

    Po označenju piškotkov SameSite z Brez vaš portal ne bo izpostavljen napadom CSRF, platforma portalov namreč vsebuje žetone proti CSRF, ki tovrstne napade preprečujejo.

2. korak: Vdelava portala

Ko ste končali s prejšnjim korakom, mora biti za vdelavo portala v spletno mesto uporabljena le še oznaka HTML iFrame, s čimer celotno mesto ali določene strani vdelate, kot je zahtevano.

Priporočamo, da je ime domene portala sorodno ali podrejeno imenu domene spletnega mesta, kamor boste z iFramom vdelali portal. Če je vaše korensko spletno mesto na primer www.contoso.com, naj se ime domene portala glasi portal.contoso.com. To je pomembno, če želite zagotoviti, da piškotki, ki jih uporablja portal, ne bodo označeni kot piškotki tretjih oseb in da jih brskalnik (spletni dnevnik) ne bo blokiral. V nasprotnem primeru funkcije, kot sta Captcha in preusmeritev osnovnih/naprednih obrazcev, ne bodo delovale ustrezno. Če želite na svojem portalu nastaviti ime domene po meri, si oglejte temo Dodajanje imena domene po meri.

3. korak: Upravljanje z glavami in nogami

Spreminjate lahko način prikaza glav in nog—ali pa se odločite, ali naj se sploh pojavijo—na vdelanih straneh portala.

Preprečevanje prikaza glav in nog vdelanega portala

Nadrejeno spletno mesto, kamor želite vdelati portal, običajno že vsebuje glave in noge. V takih primerih boste prikaz glave in noge vdelanega portala morda želeli preprečiti. Oglejte si naslednje scenarije:

  • Ko je v iFrame vdelan celotni portal
    Vsebino glave in noge odstranite tako, da posodobite spletne predloge zanju.

  • Ko je v iFrame vdelana določena stran portala
    Pri vdelavi določene strani v spletno mesto po navadi ne želite, da sta prikazani glava in noga portala. Vseeno pa vam je v interesu, da sta glava in noga uporabniku na voljo, ko dostopa neposredno do portala. To lahko dosežete s spreminjanjem glav in nog tako, da bodo dinamično upodobljene glede na vsebino strani.

Dodajanje kode pogoja v glave in noge

Spletne predloge za glavo in nogo podpirajo popolne prilagoditve »liquid«, s tem pa omogočajo dodajanje kode pogoja za upodabljanje določenih lastnosti.

Če gre za kakršnokoli drugo stran kot za stran za iskanje, naslednja koda v glavi prikaže iskalno vrstico.

Pomembno

Ker je glava element, skupen vsem stranem, bo element page.id privzeto predpomnjen za prvo stran, ki jo bo uporabnik odprl. Ob tej kodi je zato uporabljena nadomestna oznaka, saj je tako zagotovljeno, da ti elementi ne bodo predpomnjeni in da bodo vselej ocenjeni na podlagi trenutne strani.

{% substitution %}
{% assign current_page = page.id %}
{% assign sr_page = sitemarkers[Search].id %}
{% if current_page == sr_page %}
{% assign section_class = section-landing-search %}
<section class=page_section section-landing-{{ current_page }} {{ section_class | h }} color-inverse\>
    <div class=container\>
        <div class=row \>
            <div class=col-md-12 text-center\>
                {% if current_page == sr_page %}
                    <h1 class=section-landing-heading\>{% editable snippets 'Search/Title' default:resx["Discover_Contoso"] %}\</h1\>
                {% include 'Search' %}
                {% endif %}
            </div\>
        </div\>
    </div\>
</section\>
{% endif %}
{% endsubstitution %}

Za dodajanje kode pogoja v glavo se lahko poslužite tudi naslednjih metod. Vendar teh pristopov ne priporočamo, oba namreč prinašata omejitve in nobeden od njiju ne podpira vseh funkcij.

  • Za scenarije, namenjene samo branju, ki ne vključujejo nobenega seznama ali obrazca, v predlogi onemogočite glavo in nogo.
  • Uporabite posebno predlogo za prepis (~/Areas/Portal/Pages/Form.aspx).

Glejte tudi

Konfiguracija nastavitev mesta za portale
Oznaka nadomestne predloge
Omogočanje shranjevanja glave in noge v izhodni predpomnilnik na portalu
Način SameSite
Nastavitev glav HTTP na portalih