sikkerhed

11
Sikkerhed/Otto Knudsen 1 Sikkerhed Sikkerhed i ASP.NET Autentifikation (Authentication) Autorisation (Authorization)

Upload: forbes

Post on 06-Jan-2016

29 views

Category:

Documents


0 download

DESCRIPTION

Sikkerhed. Sikkerhed i ASP.NET Autentifikation (Authentication) Autorisation (Authorization). Overblik. Sikkerhed i ASP.NET kontrolleres via .config-filen(filerne) Standard autentifikation er sat til Windows Standard autorisation er sat til at tillade anonymous (alle) tilgang. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sikkerhed

Sikkerhed/Otto Knudsen1

Sikkerhed Sikkerhed i ASP.NET Autentifikation (Authentication) Autorisation (Authorization)

Page 2: Sikkerhed

Sikkerhed/Otto Knudsen2

Overblik Sikkerhed i ASP.NET kontrolleres via .config-filen(filerne)

Standard autentifikation er sat til Windows Standard autorisation er sat til at tillade anonymous (alle)

tilgang

<system.web>

<authentication mode="Windows"> </authentication> <authorization> <allow users="*"/> </authorization> </system.web>

machine.config

Page 3: Sikkerhed

Sikkerhed/Otto Knudsen3

Autentifikationskontrol Der gives 4 muligheder for autentifikation:

Windows: autentificerer brugeren vha. de lokale Windows-konti,

Windows prompter brugeren Forms: autentificerer brugeren via et egettilvirket

sikkerheds-system; der skal bruges Login-side, osv …

Passport:autentificerer brugeren via Microsoft's Passport system,

kræver installation og opsætning af Passport-system

None

<system.web> <authentication mode="Windows"> </authentication></system.web>

Page 4: Sikkerhed

Sikkerhed/Otto Knudsen4

Sikkerheds-webkontroller ASP.NET 2.0 definerer en række nye

sikkerhedsrelaterede kontroller: <asp:Login ... />

login autentifikations formular <asp:LoginView ... />

skiftende udseende baseret på identitet <asp:PasswordRecovery ... />

kodeordsgendannelses-formular (kun uhashede kodeord) <asp:LoginStatus ... />

skiftende udseende alt efter hvordan brugeren er autentificeret

<asp:LoginName ... /> viser brugernavn for autentificerede brugere

<asp:CreateUserWizard ... /> oprettelsesformular til nye brugere

<asp:ChangePassword ... /> formular til ændring af kodeord

Page 5: Sikkerhed

Sikkerhed/Otto Knudsen5

Eksempel "Login/Logout"-link giver mulighed for at logge ind – eller viser

hvem der er logget ind:

<%@ Page language=C# %><html><body> <asp:LoginStatus ID="LoginStatus1" runat="server" /> : <asp:LoginName ID="LoginName1" runat="server" /></body> </html>

Når brugeren ikke er logget ind

Når brugeren er logget ind

Page 6: Sikkerhed

Sikkerhed/Otto Knudsen6

Autorisationskontrol Autorisation understøtter <allow> og <deny>

underelementer "?" repræsenterer anonyme brugere "*" repræsenterer alle brugere ellers specificeres en kommasepareret liste af brugere

Eksempel: nægt (deny) anonym tilgang tillad (allow) tilgang til "per" og "lis" nægt (deny) tilgat til alle andre Window-brugere

<configuration> <system.web> <authorization> <deny users="?" /> <allow users="MitDomæne\per, MitDomæne\lis"/> <deny users="*" /> </authorization> </system.web></configuration>

Rækkefølgen er vigtig! ASP.NET anvender top-down, første match bestemmer tilgangen

Page 7: Sikkerhed

Sikkerhed/Otto Knudsen7

Eksempel Opret et Forms-baseret sikkerhedssystem < 5 minutter …

angiv Forms-autentifikation i web.config, nægt anonym tilgang ("?")

tilføj en ny WebForm – Login.aspx

træk og slip en Login-kontrol på formen tilføj brugere via Visual Studio's "web app admin"-værktøj:

Website menu > ASP.NET Configuration Security fanen … Opretter og befolker automatisk SQL Server 2005 databasen in App_Data!

Page 8: Sikkerhed

Sikkerhed/Otto Knudsen8

Brugerhåndtering Der gives sikkerhedsrelaterede kontroller, som håndterer

generel funktionalitet: Oprettelse af bruger Ændring af kodeord Gendannelse af kodeord

Træk og slip disse kontroller på en formular, og det burde virke …

kommunikerer automatisk med den underliggende SQL Server 2005 database …

Page 9: Sikkerhed

Sikkerhed/Otto Knudsen9

Eksempel CreateUserWizard-kontrol

opret en side, træk kontrollen ind på siden, og lav et link til den fra Login-siden …

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server"> <WizardSteps> <asp:CreateUserWizardStep ID="cuws1" runat="server" /> <asp:CompleteWizardStep ID="cpuws1" runat="server" /> </WizardSteps>

</asp:CreateUserWizard>

Page 10: Sikkerhed

Sikkerhed/Otto Knudsen10

Finmasket tilgang Forskellige brugere kan have forskellige grader af tilgang …

anvend <location>-elementet til at kontrollere tilgang til filer og mapper

<configuration> . . . <location path="admin"> <system.web> <authorization> <allow users="knud" /> <deny users="*" /> </authorization> </system.web> </location>

<location path="Salaries.aspx"> <system.web> <authorization> <allow users="lis,per,knud" /> <deny users="*" /> </authorization> </system.web> </location></configuration>

kun "knud" har tilgang til "admin"- mappen

"lis", "knud" og "per" kan tilgå Salaries.asp-siden

Page 11: Sikkerhed

Sikkerhed/Otto Knudsen11

Rollebaseret sikkerhed ASP.NET understøtter brugen af roller, dvs.

"brugergrupper" Definér roller via Website menu > ASP.NET Configuration Håndtér roller via Website menu > ASP.NET Configuration Definér nu autorisation ved brug af roller …

<configuration> . . . <location path="admin"> <system.web> <authorization> <allow roles='Administrators' /> <deny users="*" /> </authorization> </system.web> </location>

Bemærk brugen af apostroffer!