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

User Account Management

  • Upload
    javan

  • View
    35

  • Download
    1

Embed Size (px)

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

Citation preview

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