Zabezpečení konfigurace
Kdo smí formulář upravovat a jak ochránit konfiguraci: role, zámek úložiště a heslo.
Nastavení se ukládá do vlastnosti securityConfig (popis všech klíčů a ukázka JSON je tam). Tato stránka vysvětluje, co která volba skutečně chrání. Pokyny pro správce oprávnění jsou na stránce Oprávnění.
Co chrání co
| Vrstva | Chrání před | Je to bezpečnostní hranice? |
|---|---|---|
| Role editoru | zobrazením tlačítka Nastavení formuláře nepovolaným | ne, jen řídí nabídku |
| Zámek úložiště | přepsáním konfigurace členy webu | ano, oprávnění SharePointu |
| Zámek editoru heslem | nechtěným otevřením a úpravou | ne |
| Politika skriptů | spuštěním vlastního kódu | ano, na úrovni tenantu |
Kdo může otevřít návrháře
Tlačítko Nastavení formuláře a tím i návrhář se zobrazí jen oprávněným uživatelům. Kdo jimi je, určuje volba Komu zobrazit tlačítko „Nastavení formuláře“ v návrháři v části Zabezpečení (allowedEditorRole). Vlastník webu je ten, kdo má na seznamu oprávnění Správa webu (manageWeb).
| Volba v návrháři | Hodnota | Kdo smí upravovat |
|---|---|---|
| Pouze vlastníci webu (Manage Web) jen vlastník | manageWeb | vlastníci webu. Výchozí hodnota pro nové formuláře. |
| Vlastníci webu a členové vybrané SharePoint skupiny | group | vlastníci webu a členové skupiny zadané v allowedEditorGroup (přesný název skupiny, bez ohledu na velikost písmen). Skupina se nazývá skupina návrhářů. |
Starší hodnota manageLists (správci seznamu) a chybějící role se dnes chovají jako manageWeb: konfiguraci mění jen vlastníci webu. Člen s úrovní Upravit, který dříve formulář měnil, už návrháře nedostane.
Funkce, které smí použít jen vlastník webu (zamknutí úložiště, nastavení skupiny návrhářů, zápis politiky skriptů), jsou v dokumentaci označené štítkem jen vlastník.
- Jako skupinu návrhářů nevolte skupinu Členové ani Návštěvníci webu, ani skupinu obsahující všechny uživatele (Everyone, Everyone except external users): zápis do konfigurace by dostali všichni a návrhář takovou volbu při zamykání odmítne s upozorněním.
- Skupina návrhářů dostane právo zápisu jen do složky konfigurace tohoto seznamu. Změna skupiny se do oprávnění promítne při dalším uložení formuláře vlastníkem. Neexistuje-li skupina na webu, návrhář na to upozorní.
Zamčené úložiště konfigurace
Konfigurace formuláře je soubor SiteAssets/FormCustomizer/<id seznamu>/config.json. Samotná role editoru by ji před úpravou přes SharePoint nechránila, protože soubor v knihovně by mohl přepsat každý, kdo má zápis do webu (například člen s úrovní Upravit). Proto existuje zámek úložiště.
Zamknout znamená nastavit oprávnění kořenové složky FormCustomizer tak, aby:
- se oprávnění zkopírovala z webu a ostatním uživatelům se odebral zápis;
- zápis (Full Control) měli vlastníci webu a uživatel, který zamyká;
- skupina návrhářů měla zápis do podsložky svého seznamu;
- celá organizace a (nastavitelně) hosté mohli konfiguraci číst, aby formulář fungoval všem (viz Čtení konfigurace).
Formulář čte konfiguraci výhradně z tohoto souboru. Starší uložení ve vlastnostech seznamu (property bag) a společný plochý soubor se po zamknutí ignorují a používají se jen k jednorázovému převodu ve vlastníkově návrháři.
Jak úložiště zamknout
- Otevřete návrháře jako vlastník webu a klikněte na Zabezpečení v horní liště.
- V části Úložiště konfigurace zkontrolujte stav: Zamčeno (zápis mají jen vlastníci webu a skupina návrhářů), Nezamčeno (konfiguraci může přepsat každý s právem Správa seznamů), nebo stav se nepodařilo zjistit.
- Klikněte na Zamknout nyní. Úložiště se zamkne i bez dalších změn konfigurace.
Úložiště se zamkne také automaticky při prvním uložení formuláře vlastníkem. Složka konfigurace tohoto seznamu ještě nemusí existovat: vlastník musí formulář nejdřív alespoň jednou uložit.
- Nejste-li vlastník, tlačítko se nezobrazí a návrhář ukáže PowerShell příkaz, který zamčení provede za vás. Pošlete ho vlastníkovi webu.
- Po uložení bez zámku návrhář zobrazí varování Úložiště konfigurace není zamčené s tímto příkazem.
- Selže-li zamčení a nepodaří se ani vrátit původní oprávnění, složka může mít omezený přístup. Návrhář ukáže opravný PowerShell příkaz.
- Selže-li nastavení čtení pro organizaci nebo hosty, hlášení uvede, kdo konfiguraci nemusí přečíst.
První zamknutí a původ konfigurace
Než byla konfigurace zamčená, mohl ji upravit kdokoli z členů webu. Vlastník proto před prvním zamknutím vidí potvrzení se souhrnem toho, co by zamčením „zapečetil“:
- zdroj konfigurace: soubor před zamčením, kdy byl uložen a kdo ho naposledy změnil, nebo starší konfigurace z vlastností seznamu;
- počet a názvy skriptů;
- počet a názvy tlačítek s akcemi;
- počet pravidel;
- kdo smí konfiguraci měnit a která skupina návrhářů je nastavená.
Souhrn prohlédněte, zejména skripty (spustí se u každého uživatele). Pak zvolte:
- Potvrdit, zamknout a uložit (u tlačítka Zamknout nyní: Zamknout a zapečetit stávající soubor): důvěřujete současnému souboru a zamknete ho beze změny.
- Zrušit: nic se nezamkne. Soubor nemusí odpovídat tomu, co jste čekali, proto místo zapečetění formulář raději uložte z návrháře, čímž se konfigurace přepíše vaším konceptem.
Dokud úložiště zamčené není, návrhář při otevření ukazuje upozornění na původ: „Úložiště konfigurace není zamčené – konfiguraci mohli změnit členové webu. Zkontrolujte ji a uložte (zamknete ji).“
Čtení konfigurace
Formulář otevírají i lidé, kteří nejsou členy žádné skupiny webu. Aby načetli konfiguraci, mají v zamčeném úložišti právo čtení. Dva přepínače v části Úložiště konfigurace to řídí:
| Přepínač | Vlastnost | Výchozí |
|---|---|---|
| Čtení konfigurace pro celou organizaci (Everyone except external users) | configReadAllUsers | zapnuto |
| Čtení konfigurace i pro externí uživatele (hosty) | configReadGuests | zapnuto |
Chybějící hodnota znamená zapnuto. Vypnete-li přepínač, konfiguraci pak čtou jen členové skupin webu a uživatelé s přímým přístupem k úložišti. Ostatní uvidí formulář bez vlastní konfigurace. Změna se do oprávnění promítne při uložení formuláře vlastníkem. Konfigurace obsahuje jen definici formuláře, ne data položek.
{
"securityConfig": {
"allowedEditorRole": "group",
"allowedEditorGroup": "Návrháři formulářů",
"configReadAllUsers": true,
"configReadGuests": false
}
}
Zámek editoru heslem
Návrhář můžete chránit heslem v části Zámek editoru panelu Zabezpečení. Po nastavení návrhář při otevření vyžaduje heslo (tlačítko Odemknout editor) a zobrazí nápovědu k heslu, pokud jste ji zadali. Odemknutí platí pro právě otevřenou relaci.
- Heslo má alespoň 3 znaky. Nezapomeňte po nastavení nebo odebrání formulář uložit, jinak se změna neprojeví.
- V konfiguraci je uložen jen otisk hesla (
passwordHash, algoritmus PBKDF2-SHA-256 s 310 000 iteracemi a náhodnou solí), nikdy heslo samotné. Starší otisky ve formátu SHA-256 (passwordSalt) dál fungují. - Volitelná nápověda (
passwordHint) je uložená a zobrazená v čitelné podobě. Nepište do ní heslo.
Zámek editoru není bezpečnostní hranice. Neomezuje přístup k datům ani ke konfiguračnímu souboru, jen brání nechtěnému otevření a úpravě. Kdo může soubor konfigurace číst, otisk uvidí; kdo ho může zapisovat, může ho odebrat. Skutečnou ochranu poskytuje zámek úložiště.
Zapomenuté heslo: vlastník webu může v knihovně Site Assets otevřít FormCustomizer/<id seznamu>/config.json a odebrat z securityConfig klíče passwordHash, passwordSalt a passwordHint. Heslo se nedá obnovit.
Politika skriptů
Vlastní skripty jsou ve výchozím stavu na tenantu vypnuté. Povoluje je správce tenantu hodnotou allow v tenantové Storage Entity FormCraft365_ScriptsPolicy (starší klíč SpfxFormCustomizer_ScriptPolicy s hodnotou enabled se čte jen bez nového klíče; deny v novém klíči vždy vypíná), a to jednou pro všechny weby. Chybějící nebo neznámá hodnota znamená vypnuto. V návrháři je to přepínač Povolit vlastní skripty pro celý tenant v části Vlastní skripty panelu Zabezpečení. Zapsat ho smí jen správce App Catalogu, ostatním návrhář zobrazí PowerShell příkaz pro správce. Změna se projeví po novém načtení formuláře, nejpozději do 15 minut.
- Při vypnutých skriptech běží dál pravidla, výrazy a akce tlačítek, které nejsou skript.
- Validace
onBeforeSavese neprovádí a uložení neblokuje. Použijte pravidlo blockSave.
Podrobnosti, hodnoty politiky a CSP: Politika skriptů.
Související stránky
- Nastavení: securityConfig: popis klíčů.
- Oprávnění: co které role a oprávnění SharePointu v praxi umožňují.
- Politika skriptů: povolení skriptů tenantem.
- Řešení potíží: formulář se nenačte, chybí tlačítko Nastavení formuláře.
- Bezpečnostní upozornění ke skriptům.