Databázové schéma IMP.Security

Tomáš Holan       02.04.2013       Bezpečnost       10893 zobrazení

V každé aplikaci, ve které se vyskytují uživatele, je typicky nutné nějakým způsobem řešit úkony jako autentizaci a autorizaci uživatelů, registraci uživatelů nebo správu uživatelů administrátorem aplikace, nějakou forma obnovení hesla, nastavení a správu oprávnění uživatelů, blokování účtu při pokusu o jeho prolomení, možnost zapamatování přihlášení a další.

Na stráně databáze to pak znamená ukládat kromě uživatelů samotných i jejich přihlašovací informace nebo vazbu na externí systém, ze kterého uživatelé pochází, nastavení jejich oprávnění, informaci o blokaci jejich účtů, počtu neplatných pokusu o změnu hesla, informaci o posledním přihlášení, historii použitých hesel apod.

IMP.SecurityLogoV naší společnosti jsme pro výše uvedené úkoly vyvinuli vlastní samostatnou komponentu nazvanou IMP.Security, která je je snaží řešit obecně.

Tato komponenta přitom není omezena pouze pro ASP.NET aplikace, ale je použitelná i například ve WPF aplikacích a existuje ve verzi pro .NET Framework 4 i pro .NET Framework 4.5. Také jsem již v minulosti naznačil, že použití forms autentizace v kombinaci s membership providerem je v současnosti v praxi mnohdy již nedostačující. To je hlavní důvod proč současná verze komponenty IMP.Security již forms autentizaci ani memberhip provider model nepoužívá a místo toho interně využívá Windows Identity Foundation (WIF).

Součástí zmíněné komponenty je s výjimkou tabulky pro vlastní uživatele (*) i definice jinak v podstatě jednotného databázového schéma, které bych chtěl v tomto článku ukázat.

Toto databázové schéma má následující podobu:

IMP.Security

(klikněte na obrázek pro zvětšení)

V některých aspektech se toto schéma liší od toho používaného například ve výchozím Membership/Role provideru nebo případně novějších ASP.NET Universal Providers.

Schéma je navrženo pro podporu těchto klíčových vlastností:

  • V jedné databázi může být zavedeno více aplikací používající stejnou sadu uživatelů (single sign-on), ale jinou sadu oprávnění.
  • Nastavení jednotlivých oprávnění není vázáno přímo na uživatele, ale na profil práv. Uživatele se stejným oprávněním pak jednoduše mají navolen stejný profil práv.
  • Databáze podporuje uložit pro každého uživatele více přihlašovacích účtů.
  • Existuje více typů uživatelských účtů. Kromě “standardního” přihlašování uživatelským jménem a heslem (aplikační účet), lze uložit i Windows přihlášení nebo jinou vazbu na externí systém.
  • Datum a čas posledního přihlášení uživatele se udržuje pro každý typ přihlašovacího účtu samostatně.
  • U aplikačního účtu lze udržovat datum poslední změny hesla, počet neplatných pokusu o změnu hesla, čas posledního takového pokusu nebo příznak o uzamčení účtu.
  • Pro obnovení zapomenutého hesla lze k účtu uložit jedinečný kód s omezenou časovou platností.
  • Lze uložit historii uživatelem dříve použitých hesel.

(*) Vlastní názvy tabulek a jejích sloupců se mohou v případě potřeby konkrétní aplikace od uvedeného “referenčního” schéma lišit.

 

hodnocení článku

0       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

RE: Databázové schéma IMP.Security

Jedná se o komponentu, kterou interně využívají produkty naší společnosti. Knihovna není volně k dispozici.

V případě zájmu kontaktujte prosím naše obchodní oddělení a v závislosti na Vašich konkrétních požadavcích a vzájemné dohodě jsme ochotní vypracovat nabídku.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

RE: Databázové schéma IMP.Security

Nějak jsem v článku nenašel, jestli se jedná o placený modul, nebo opensource knihovnu. A link taky nikde...

Petr Šnobelt

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback