Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
cs:sw:03-3rd-party:nodered:securing-nodered-hidden [2020/06/12 13:01] avsetula [Admin API] |
cs:sw:03-3rd-party:nodered:securing-nodered-hidden [2021/08/06 07:06] (current) avsetula |
||
---|---|---|---|
Line 6: | Line 6: | ||
---- | ---- | ||
- | Jelikož se budeme k PLC připojovat pomocí **SSH** protokolu, je nutné [[cs:files:software:tools:advanced-ip-scan-hidden|znát IP adresu PLC]] a mít na PC nainstalovaného SSH klienta. Mezi nejoblíbenější pro OS Windows patří software **PuTTy**. Pokud jej v PC nemáte, či tento SW vůbec neznáte, postupujte dle [[cs:files:software:tools:putty-hidden|tohoto návodu]]. | + | Jelikož se budete k jednotce připojovat pomocí **SSH** protokolu, je nutné [[cs:files:software:tools:advanced-ip-scan-hidden|znát IP adresu jednotky]] a mít na PC nainstalovaného SSH klienta na PC. Mezi nejoblíbenější pro OS Windows patří software **PuTTy**. Pokud jej v PC nemáte, či tento SW vůbec neznáte, postupujte dle [[cs:files:software:tools:putty-hidden|tohoto návodu]]. |
- | Jakmile jste připojeni a přihlášení, máte před sebou terminálové okno s přístupem do jednotky. Následující příkaz zkopírujte a vložte do terminálu, vkládání do PuTTy se provádí za pomoci právého tlačítka myši. | + | <WRAP center round info 95%> |
+ | Pro přenos souborů mezi PC a jednotkou Unipi můžete použít SW [[https://winscp.net/eng/download.php|WinSCP]]. Přihlašovací údaje jsou stejné jako pro SSH. | ||
+ | </WRAP> | ||
- | <code> | + | Dále již postupujte dle [[https://nodered.org/docs/user-guide/runtime/securing-node-red|tohoto návodu]] na oficiálních stránkách NodeRED. |
- | sudo npm install -g --unsafe-perm node-red-admin | + | |
- | </code> | + | |
- | + | ||
- | Po dokončení instalace ''node-red-admin'' balíčku, si již můžete vygenerovat šifrovanou podobu Vašeho hesla, které budete následně vkládat do konfiguračního souboru ''settings.js''. Pro vygenerování hesla zadejte příkaz: | + | |
- | + | ||
- | <code> | + | |
- | node-red-admin hash-pw | + | |
- | </code> | + | |
- | + | ||
- | Nyní budete vyzváni k napsání hesla, psané znaky se nebudou nijak zobrazovat a není možné si heslo následně překontrolovat, jelikož výstup z programu je již šifrované heslo. Dbejte na to, aby jste heslo zadali bezchybně. | + | |
- | + | ||
- | Heslo si zkopírujte, budete jej dále používat. | + | |
- | + | ||
- | + | ||
- | ===== Admin API ===== | + | |
- | Toto rozhraní je velmi důležité zabezpečit, jelikož zde máte logiku vašeho programu a lze přes něj ovládat celé PLC bez omezení. Existuje však varianta uživatele "Pouze pro čtení", takovýto uživatel se může připojit, sledovat, ale nemá oprávnění zasahovat do programu, ani měnit hodnoty. Ve výchozím nastavení je požadavek k autorizaci vypnut. | + | |
- | + | ||
- | Pro zapnutí autorizace je třeba přejít do skryté složky ''.node-red''. Zadejte příkaz: | + | |
- | + | ||
- | <code> | + | |
- | cd ~/.node-red | + | |
- | </code> | + | |
- | + | ||
- | Nyní jste se přepnuli do skryté složky Node-RED. Nyní spusťtě terminálový program **Midnight Commander**, zadejte do terminálu: | + | |
- | + | ||
- | <code> | + | |
- | mc | + | |
- | </code> | + | |
- | + | ||
- | Tím se Vám otevře modré okno Midnight Commanderu, zde pomocí šipek vyberte soubor ''settings.js''a klávesou **F4** ho otevřete pro úpravy. | + | |
- | + | ||
- | V tomto souboru vyhledejte položku ''adminAuth'', ve výchozím stavu je zakomentována pomocí značky ''⁄⁄'', vše od této značky až po zalomení řádku je v kódu ignorováno. Proto je nutné tyto značky u adminAuth odebrat. Nyní kód vypadá takto | + | |
- | + | ||
- | <code> | + | |
- | // Securing Node-RED | + | |
- | // ----------------- | + | |
- | // To password protect the Node-RED editor and admin API, the following | + | |
- | // property can be used. See http://nodered.org/docs/security.html for details. | + | |
- | //adminAuth: { | + | |
- | // type: "credentials", | + | |
- | // users: [{ | + | |
- | // username: "admin", | + | |
- | // password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", | + | |
- | // permissions: "*" | + | |
- | // }] | + | |
- | //}, | + | |
- | </code> | + | |
- | + | ||
- | Po odkomentování takto: | + | |
- | + | ||
- | <code> | + | |
- | // Securing Node-RED | + | |
- | // ----------------- | + | |
- | // To password protect the Node-RED editor and admin API, the following | + | |
- | // property can be used. See http://nodered.org/docs/security.html for details. | + | |
- | adminAuth: { | + | |
- | type: "credentials", | + | |
- | users: [{ | + | |
- | username: "admin", | + | |
- | password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", | + | |
- | permissions: "*" | + | |
- | }] | + | |
- | }, | + | |
- | </code> | + | |
- | + | ||
- | Pokud by jste nyní soubor uložili, odpojili a znovu připojili nápájení, popř. restartovali PLC, bude již Admin API pro vstup požadovat heslo. Výchozí jméno je: ''admin'' a heslo: ''password''. Můžete si ale všimnout, že vaše heslo generované v úvodu článku má stejný formát jako výchozí heslo uživatele, pokud jej tedy nahradíte, nastavíte tím své heslo k danému uživatelskému účtu. | + | |
- | + | ||
- | V případě, že chcete nastavit více uživatelů, tak do hranatých závorek ''users: []'' vložte další blok ze složených závorek a oddělte je čárkou: | + | |
- | + | ||
- | <code> | + | |
- | // Securing Node-RED | + | |
- | // ----------------- | + | |
- | // To password protect the Node-RED editor and admin API, the following | + | |
- | // property can be used. See http://nodered.org/docs/security.html for details. | + | |
- | adminAuth: { | + | |
- | type: "credentials", | + | |
- | users: [ | + | |
- | { | + | |
- | username: "admin", | + | |
- | password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", | + | |
- | permissions: "*" | + | |
- | }, | + | |
- | { | + | |
- | username: "user_rd", | + | |
- | password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", | + | |
- | permissions: "read" | + | |
- | } | + | |
- | ] | + | |
- | }, | + | |
- | </code> | + | |
- | + | ||
- | Všimněte si, že druhý uživatel má oprávnění pouze pro čtení, můžete tedy nastavovat dva druhy oprávnění: | + | |
- | * čtení/zápis -> ''*'' | + | |
- | * jen čtení -> ''read'' | + | |
- | + | ||
- | ==== Výchozí uživatel ==== | + | |
- | Pro nastavení výchozího uživatele je třeba vytvořit další položku v ''adminAuth'' konkrétně položku ''default''. | + | |
- | + | ||
- | <code> | + | |
- | adminAuth: { | + | |
- | type: "credentials", | + | |
- | users: [ /* seznam uživatelů */ ], | + | |
- | default: { | + | |
- | permissions: "read" | + | |
- | } | + | |
- | } | + | |
- | </code> | + | |
- | ===== Dashboard ===== | + |