sikkerhed
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 PresentationTRANSCRIPT
Sikkerhed/Otto Knudsen1
Sikkerhed Sikkerhed i ASP.NET Autentifikation (Authentication) Autorisation (Authorization)
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
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>
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
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
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
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!
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 …
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>
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
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!