Upload
javan
View
39
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
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 – 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
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
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…
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
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.
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
IIS demó
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
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
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ó
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ó
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 …?
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
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.
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>
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
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";
}
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.";}
Login vezérlők I.
• Login:
• LoginName: – a bejelentkezett felhasználó nevét mutatja.
• LoginStatus:
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");
}
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.
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>
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>
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;
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
Alkalmazásunk megvalósítása