28
ASP.NET Security By SRIRAM. B

ASP.NET Security

Embed Size (px)

Citation preview

Page 1: ASP.NET Security

ASP.NET Security

By

SRIRAM. B

Page 2: ASP.NET Security

ASP.NET Security Overview Authentication & Authorization

Login Controls

Membership & Role Management

Authentication & Authorization

Authentication Modes

Windows Authentication

Forms Authentication

Passport Authentication

User Class

Authorization

Impersonation

Page 3: ASP.NET Security

Authentication & Authorization

Page 4: ASP.NET Security

Authentication & Authorization

Authentication is the process of obtaining some credential from users and using those credentials to verify the users identity.

Authorization is the process of allowing an authenticated user access to resources.

Authentication always procedded to Authorization.

Page 5: ASP.NET Security

Authentication Modes

Page 6: ASP.NET Security

Authentication Modes Windows

ASP.NET authentication services attach a WindowsPrincipal

(System.Security.Principal.WindowsPrincipal) to the current request to enable

authorization against NT users or groups.

Forms

ASP.NET authentication services manage cookies and redirect unauthenticated

users to a logon page. This is often used in conjunction with the IIS option to

allow anonymous access to an application.

Passport

ASP.NET authentication services provide a convenient wrapper around the

services provided by the Passport SDK, which must be installed on the machine.

Page 7: ASP.NET Security

Windows Authentication

Page 8: ASP.NET Security

Windows Authentication

It can be enabled by default. Users can be identified by the windows account names, the roles corresponds to windows groups.

It delegates the responsibility of identifying users to IIS. IIS can be configured to

use the following authentications:- <authentication mode = “Windows”/>

Anonymous

If any one is allowed to access the ASP.NET application , IIS does not perform any

authentication

Basic

User must provide a windows username and password to connect. However the

information is sent over the network in clear text, It become in-secure for internet

based applications.

Page 9: ASP.NET Security

Windows Authentication Digest

The user can provide the windows username and password to connect. However

the password is in hashed format before it is sent across the network. The windows

accounts to be stored in the active directory.

Windows Integrated

In windows integrated authentication, passwords never cross the network. Users

must still have a username and password, but the application uses either Kebros /

Challenge response protocols authenticate the user. It will be used for intranet

based applications.

Page 10: ASP.NET Security

Forms Authentication

Page 11: ASP.NET Security

Forms Authentication

ASP.NET authenticates users, redirects unauthenticated users to the logon page, and performs all the necessary cookie management. This sort of authentication is a popular technique used by many Web sites and handle your own custom logic.

In web.config <authentication mode = “Forms”/>

Using Form based authentication to denying access to anonymous users

<configuration>

<system.web>

<authentication mode="Forms"/>

<authorization> <deny users="?" /> </authorization>

</system.web>

</configuration>

Page 12: ASP.NET Security

Forms Authentication..

Administrators use forms-based authentication to configure the name of the cookie to use, the protection type, the URL to use for the logon page, length of time the cookie is in effect, and the path to use for the issued cookie.

<authentication mode="Forms">

<forms name=".ASPXCOOKIEDEMO" loginUrl="login.aspx" defaultUrl="default.aspx"

protection="All" timeout="30" path="/" requireSSL="false"

slidingExpiration="true" enableCrossAppRedirects="false"

cookieless="UseDeviceProfile" domain="">

<!-- protection="[All|None|Encryption|Validation]" -->

<!-- cookieless="[UseUri | UseCookies | AutoDetect | UseDeviceProfile]" -->

</forms>

</authentication>

Page 13: ASP.NET Security

Forms Authentication..

After the application has been configured, you need to provide a logon page. When it is run, it requests the Default.aspx page. Unauthenticated requests are redirected to the logon page (Login.aspx), which presents a simple form that prompts for an e-mail address and a password. (Use Username="[email protected]" and Password="password" as credentials.)

Default.aspx

Page Load -> Label1.Text = "Hello, " + User.Identity.Name;

Signout -> FormsAuthentication.SignOut(); Response.Redirect("login.aspx");

Login.aspx

if ((UserEmail.Value == "[email protected]") && (UserPass.Value == "password")) {

FormsAuthentication.RedirectFromLoginPage(UserEmail.Value, PersistCookie.Checked); }

else { Msg.Text = "Invalid Credentials: Please try again"; }

Page 14: ASP.NET Security

Forms Authentication Attributes :-

Cookieless (UseDeviceProfile(default), Autodetect)

DefaultUrl

Domain

EnableCrossAppRedirects

LoginUrl

Name

Path

Protection

RequireSSL

SlidingExpiration

timeout

Page 15: ASP.NET Security

Forms Authentication.. Authentication Against Values in web.config file

<System.web><authentication mode = “Forms”>

<credentials passwordFormat="clear" > <user name="Bill" password="secret"/> </credentials> </authentication>

<authorization> <deny users=”?”/> </System.web>

You can change the Login.aspx to work with web.config file

if (formsAuthentication.Authenticate(TextBox1.Text, TextBox2.Text)) {

FormsAuthentication.RedirectFromLoginPage((TextBox1.Text, True); }

else { Respose. Write( "Invalid Credentials: Please try again"); }

The following values of the passwordFormat attribute:

Hash Type Description

Clear Passwords are stored in cleartext

SHA1 Passwords are stored as SHA1 digests

MD5 Passwords are stored as MD5 digests

Page 16: ASP.NET Security

Forms Authentication.. Using Encrypted Passwords

<authentication>

<credentials passwordFormat="SHA1" >

<user name="Mary" password="94F85995C7492EEC546C321821AA4BECA9A3E2B1"/>

<user name="John" password="5753A498F025464D72E088A9D5D6E872592D5F91"/> </credentials>

</authentication>

You can generate the hashed representation of the password by using

FormsAuthentication.HashPasswordForStoringInConfigFile((TextBox1.Text,”SHA1”);

Page 17: ASP.NET Security

Passport Authentication

Page 18: ASP.NET Security

Passport Authentication

Passport uses encrypted cookie mechanism to indicate authenticated users.

When your application is enabled for passport authentication, the request is

redirected to the Microsoft Passport Site where the user can enter his credentials

If the authentication is successful the user is authorized to proceed and the request

is redirected back to your application.

Page 19: ASP.NET Security

User Class

Page 20: ASP.NET Security

User Class

Page.User Class or HtttpContext.User property to retrieve the information about the current user.

The principal object also includes an Identity Property that enables you to get the

information about the current users identity. It supports the following properties:-

AuthenticationType string authType = User.Identity.AuthenticationType;

IsAuthenticated bool authUser = User.Identity.IsAuthenticated();

Name string UserName = User.Identity.Name;

The principal object supports the following Method: -

IsInRole()-> Enables you to check whether the user is a member of a particular role.

If (User.IsInRole(“BUILTIN\Administrators”) ){ // Private Information }else { // Public Information }

Page 21: ASP.NET Security

Authorization

Page 22: ASP.NET Security

Authorization

Process of identifying the resources that you are allowed to access. You can control authorization by adding an authorization element to a web.config file. You can use authorization in the same way for Windows, Forms & Passport

To block the unauthenticated user

<authorization> <deny users=”?”/> </authorization>

Authorization allows only for Bill and denies for others

<authorization> <allow users=”Bill”/> <deny users=”?”/> <authorization>

Authorizing by Role for Administrator

<authorization> <allow roles=”Administrator”/> <deny users=”*”/> <authorization>

Authorizing Files by Location

<location path = “Secret.aspx”>

Page 23: ASP.NET Security

Impersonation

Page 24: ASP.NET Security

Impersonation

ASP.NET can execute the request using the identity of the client, who is making the request is called impersonation.

<IDENTITY impersonate="true" />

Identity is a webconfig declaration under System.web, which helps to control the

application Identity of the web applicaton.

It can be at any level(Machine,Site,application,subdirectory,or page), attribute

impersonate with "true" as value specifies that client impersonation is used.

Page 25: ASP.NET Security

Demo

Page 26: ASP.NET Security

Session Ends

Page 27: ASP.NET Security

Exercise

Page 28: ASP.NET Security

Relax