User Account Management

29
User Account Management Endrődi Tamás (MCT, MCP, MCITP) GDF Informatikai Intézet vezetője SZÁMALK Oktatóközpont

description

User Account Management. Endrődi Tamás (MCT, MCP, MCITP) GDF Informatikai Intézet vezetője SZÁMALK Oktatóközpont. Probléma. Azonosítani kell a felhasználókat Hozzá kell rendelni a jogokat. Authentikáció és Authorizáció. Hitelesítés (Authentikáció) : Felhasználó kilétének megállapítása - PowerPoint PPT Presentation

Transcript of User Account Management

Page 1: User  Account Management

User Account Management

Endrődi Tamás (MCT, MCP, MCITP)GDF Informatikai Intézet vezetője

SZÁMALK Oktatóközpont

Page 2: User  Account Management

Probléma

• Azonosítani kell a felhasználókat• Hozzá kell rendelni a jogokat

Page 3: User  Account Management

Authentikáció és Authorizáció

• Hitelesítés (Authentikáció) :– Felhasználó kilétének megállapítása – Azonosságának ellenőrzése

• Hozzáférés engedélyezése (Authorizáció):– Az azonosított felhasználó hozzáférésének beállítása – Hozzáférések megadása felhasználónként,

szerepkörönként

Page 4: User  Account Management

ASP.NET hitelesítési módjai

• Windows-alapú– Windows operációs rendszeren és az IIS-en

alapszik– Az IIS végzi a hitelesítést

• Form-alapú– A nem hitelesített felhasználók egy Bejelentkező

oldalra vannak átirányítva– Hitelesítés után egy authentikációs cookie jön

létre

Page 5: User  Account Management

Hitelesítések összehasonlítása

• Windows-alapú– Meglévő Windows

infrastruktúrát használja– Korlátozza a bizalmas

adatokhoz való hozzáférést

DE:– A legtöbb Internetes

alkalmazás esetén nem használható

• Form-alapú– Internetes alkalmazások

esetén jól használható– Mindenféle felhasználó

esetén alkalmazhatóDE:– Cookie-t használ, vagy…

Page 6: User  Account Management

IIS Hitelesítési Beállításai Biztonsági

szint Mechanizmus

Anonymous Nincs Nem authentikál

BasicAlacsony (Közepes azSSL esetén)

A kliens felhasználói nevet és jelszót küld sima szövegként

SSL használható A legtöbb böngésző támogatja

Digest Közepes Kódolt hashként küldi az infót Internet Explorer 5, 6, 7 vagy 8 Active Directory szükséges

Integrated Windows Magas

NTLM vagy Kerberos Általában intranetre és nem Internetre Legtöbb tűzfalon nem megy át

Page 7: User  Account Management

Windows-alapú hitelesítés

• Az IIS-en állítsuk be ezek egyikét:– Basic, Digest, Integrated Windows security

• Web.config-ban:<system.web> <authentication mode="Windows" /></system.web>

– Állítsuk be az authorizációt is.• Ha egy felhasználó el akarja érni a web

alkalmazásunkat, az IIS előbb hitelesítési információt kér.

Page 8: User  Account Management

Hitelesítési információ lekérdezése

• Authentikáció után lekérdezhetők a bejelentkezett felhasználó hitelesítési információi:– User.Identity.Name– User.Identity.AuthenticationType– User.Identity.IsAuthenticated

Page 9: User  Account Management

IIS demó

Page 10: User  Account Management

Form-alapú hitelesítés

Kliens lekér egy oldalt

Authorizált

ASP.NET Forms authentikáció

Még nem authentikált

Hitelesített

Bejelentkező oldal(felhasználó kitölti)

Hitelesített

Authentikációs cookie

Authorizált

Nem hitelesített

Hozzáférés megtagadva

IIS

Username

Password

Someone

*******

SubmitSubmit

Elérhető a levédett oldal

4

21

6

3

7

5

Page 11: User  Account Management

Form-alapú hitelesítés

• Az IIS-en állítsuk be az Anonymous authentikációt

• Web.config-ban:<authentication mode="Forms" ><forms name=“MainLogon" loginUrl="login.aspx„name=„Cookieneve” cookieless=„…” defaultUrl=„…”timeout=„30” />

</authentication>

– Állítsuk be az authorizációt is.• Készítsünk egy Bejelentkező oldalt

Page 12: User  Account Management

Authorizáció

• File Authorizáció– Access Control List (Windows saját authorizációs

mechanizmusa)– Csak Windows Authentikációval használható

• URL Authorizáció– Bármely hitelesítési móddal használható– Web.config-ban: <authorization>

<allow users=„Tamas"/> <allow roles="Admins"/> <deny users=„Feri"/> <deny users="?"/></authorization>

Anonymous felhasználó

Page 13: User  Account Management

Egyes oldalak (mappák) levédése

• URL Authorizáció az egyes oldalakra– Annak a mappának a web.config-jában,

amelyikben az adott oldal van: <configuration> …

<location path=„VedettOldal.aspx"> <system.web> <authorization> <allow users=„Tamas"/> <deny users="*"/> </authorization> </system.web></location>

…</configuration>

Összes felhasználó

Page 14: User  Account Management

Bejelentkező oldal létrehozása

• ASP.NET Login vezérlők használatával

• De hol és hogyan tároljuk a hitelesítési adatokat …?

Page 15: User  Account Management

Megoldás: ASP.NET Membership

• Beépített módszer a felhasználók hitelesítésének elvégzésére és hitelesítési adatainak tárolására

Page 16: User  Account Management

ASP.NET Membership komponensei

• User account létrehozása és törlése • User account-ok tárolása

– SQL Server, Microsoft Office Access, vagy egyéb • Authentikáció

– A Login vezérlőkkel könnyedén összerakható egy bejelentkező oldal.

• Jelszó menedzsment – Lehetővé teszi a jelszó beállítását, elfelejtett jelszó

lekérdezését, stb.

Page 17: User  Account Management

Membership konfiguráció<membership defaultProvider=SqlProvider"

userIsOnlineTimeWindow="15"> <providers> <clear /> <add name="SqlProvider"

type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection" applicationName="MyApplication"

enablePasswordRetrieval="false" enablePasswordReset="true"

requiresQuestionAndAnswer="true" requiresUniqueEmail="true"

passwordFormat="Hashed" /> </providers></membership>

Page 18: User  Account Management

Membership Osztály

• User Account-ok menedzselését végzi.• Főbb metódusai:

– CreateUser– DeleteUser– UpdateUser– ValidateUser

• Authentikáció végrehajtása

– ChangePassword

Page 19: User  Account Management

Membership osztály használata I.

• Új felhasználó felvétele:MembershipUser userNew = Membership.CreateUser("Joe", "Pa$$w0rd",

"[email protected]");if (userNew == null) { lblMessage.Text = „User sikeresen létrehozva.";} else { lblMessage.Text =

"User létrehozása sikertelen";

}

Page 20: User  Account Management

Membership osztály használata II.

• Jelszó megváltoztatása:MembershipUser userCurrent = Membership.GetUser();string sOldPassword = txtOldPassword.Text;string sNewPassword = txtNewPassword.Text;if (userCurrent.ChangePassword(

sOldPassword, sNewPassword)){

lblMessage.Text = "Jelszó sikeresen megváltoztatva.";

} else { lblMessage.Text =

"Jelszó megváltoztatása nem sikerült.";}

Page 21: User  Account Management

Login vezérlők I.

• Login:

• LoginName: – a bejelentkezett felhasználó nevét mutatja.

• LoginStatus:

Page 22: User  Account Management

Login vezérlők II. • CreateUserWizard:

– A ContinueButtonClick eseményt kell lekezelni:protected void CreateUserWizard1_ContinueButtonClick( object sender, EventArgs e)

{ Response.Redirect("Members/Default.aspx");

}

Page 23: User  Account Management

Login vezérlők III.

• ChangePassword:

• PasswordRecovery:

• LoginView: – Bejelentkezett és anonim felhasználók számára

különböző tartalom megjelenítésére.

Page 24: User  Account Management

LoginView vezérlő <asp:LoginView ID="LoginView1" Runat="server">

<LoggedInTemplate> Welcome, <asp:LoginName ID="LogName1" Runat="server"/><br/> <asp:HyperLink ID="HypLink1" Runat="server" NavigateUrl="~/MemberPages/ChangePassword.aspx"> Change Password </asp:HyperLink> </LoggedInTemplate>

<AnonymousTemplate> Click Login to sign in.<br /> <asp:HyperLink ID="HypLink2" Runat="server" NavigateUrl="~/Register.aspx"> Register </asp:HyperLink> </AnonymousTemplate></asp:LoginView>

Page 25: User  Account Management

Role menedzsment

• Be kell állítani a web.config-ban:

<roleManager cacheRolesInCookie="true" enabled="true"

defaultProvider="SqlProvider"> <providers> <add name="SqlProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="RolesConnection" applicationName="MyApplication" /> </providers></roleManager>

Page 26: User  Account Management

Role létrehozása és feltöltése

• Módjai:– ASP.NET Web Site Administration Tool– Programkóddal a Roles osztály használatával

if (!Roles.RoleExists("Menedzserek")) Roles.CreateRole("Menedzserek");Roles.AddUserToRole("Kiss Mari", "Menedzserek");

• Szerepkör ellenőrzése:if (!User.IsInRole("Menedzserek")) btnDownloadFile.Visible = false;

Page 27: User  Account Management

Alkalmazásunk tervezése

• Form-alapú hitelesítés• AspNetSqlProvider• Login.aspx, Register.aspx létrehozása• Login, LoginView, LoginStatus, LoginName,

CreateUserWizard kontrolok használata

Page 28: User  Account Management

Alkalmazásunk megvalósítása

Page 29: User  Account Management