Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Role/oprávnění v intranetové (ad auth) aplikaci

Aktivity
Avatar
Petr P
Člen
Avatar
Petr P:25.3.2020 10:17

Ahoj, rád bych požádal o pomoc, přepisujeme staré menší (intranetové) aplikace do jednoho komplexního řešení a lámu si hlavu s tím jak udělat rozdělení uživatelů do rolí na základě jedné sql tabulky (id záznamu, userid(k napárování s AD userid), role (admin, operátor, reader), tak aby to bylo mvc .net core 3.1 košér.

Zkusil jsem: Načítat sql tabulku v kontrolerech (userid a porovnat s uživatelem z httpcontextu, a ukládat si hodnotu attributu role) pro každé view mi přijde jako metodicky špatné řešení i když bude fungovat.

Chci docílit: Cílem je mít rozdělení rolí v AD intranetové aplikaci, tak aby se nikde nemuselo ukládat heslo uživatelů nebo aby se uživatelé nemuseli přihlašovat, protože už jsou přihlášení v AD, a tuto tabulku by měl možnost vidět a upravovat jen admin aplikace - pár vyvolených AD userid.
.NetCore se teprve učím tak bych rád doporučení se správným přístupem tohoto řešení, ne to nějak udělat aby to fungovalo. Děkuji

 
Odpovědět
25.3.2020 10:17
Avatar
Odpovídá na Petr P
Michal Štěpánek:25.3.2020 13:42

Taky jsem s uživateli z AD laboroval u intranetové apky a zjistil jsem, že mi to dělá víc problémů, než užitku, páč na každém stroji je přihlášen jiný uživatel, u několika PC je více možných uživatelů (např. recepce, ošetřovna, apod), kteří jsou ale na stroji přihlášeni pod jedním účtem z AD a když si k tomu sedne náhodou někdo jiný, počítač to nemá šanci zjistit a odlišit uživatele. Proto jsem to zavrhl a používám individuální uživatelské účty s ASP.NET identity... Když pak je těch aplikací víc, může mít každý uživatel v každé apce jiná práva, která jednoduše nastavím.

Editováno 25.3.2020 13:43
Nahoru Odpovědět
25.3.2020 13:42
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na Petr P
Jaroslav Smrž:25.3.2020 13:46

Ahoj, na to, co popisuješ se nejlépe hodí využít MS Identity - v .net core aplikaci s user accounts již připraveno. Ty budeš ale potřebovat rozšíření, abys mohl spravovat role. Přepíšeš si tedy defaultní identity na svoje. To provedeš tak, že klikneš pravým tlačítkem na projekt v solution exploreru, vybereš New scaffolded item a Identity. Dále vybereš layout, který budeš chtít použít, soubory, které chceš přepsat (v tvém případě asi všechny) a databázový kontext. Ten můžeš použít buď stávající nebo si vytvořit nový s vlastní rozšiřující třídou pro identity. Nezapomeň pak parametry předat ve startupu a změnit AddDefaultIdentity na AddIdentity. Dále si pak vytvoříš vlastní třídu a kontroler, který bude dědit z IdentityRole a máš hotovo.

Nahoru Odpovědět
25.3.2020 13:46
/* Life runs on code */
Avatar
Petr P
Člen
Avatar
Petr P:26.3.2020 21:49

Děkuju moc za rady, o víkendu to budu zkoušet tak dám příští týden vědět jak se mi zadařilo :)

 
Nahoru Odpovědět
26.3.2020 21:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.