Praktikum: Windows Communication Foundation teenuse turvamine, VR2.9: Difference between revisions
Created page with '==ASP.NET Membership database== ASP.NET Membership funktsionaalsuse kasutamiseks peab olema teenuse masinasse olema installitud SQL Server (2005/2008/2010 Express versioon). Se…' |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==ASP.NET Membership database== | ==ASP.NET Membership database loomine ja WCF'ile selle kasutamiseks õiguste andmine== | ||
ASP.NET Membership funktsionaalsuse kasutamiseks peab olema teenuse masinasse olema installitud SQL Server (2005/2008/2010 Express versioon). | ASP.NET Membership funktsionaalsuse kasutamiseks peab olema teenuse masinasse olema installitud SQL Server (2005/2008/2010 Express versioon). | ||
Line 11: | Line 11: | ||
* Avame Microsoft SQL Server Management Studio ja autendime end administraatori õigustes kasutajaga. | * Avame Microsoft SQL Server Management Studio ja autendime end administraatori õigustes kasutajaga. | ||
* Käivitame järgneva QUERY: | * Käivitame järgneva QUERY: | ||
<source lang="SQL"> | |||
-- Create a SQL Server login for the Network Service account | -- Create a SQL Server login for the Network Service account | ||
sp_grantlogin 'NT AUTHORITY\ | sp_grantlogin 'NT AUTHORITY\NETWORK SERVICE' | ||
-- Grant the login access to the roles database | -- Grant the login access to the roles database | ||
USE aspnetdb | USE aspnetdb | ||
GO | GO | ||
sp_grantdbaccess 'NT AUTHORITY\ | sp_grantdbaccess 'NT AUTHORITY\NETWORK SERVICE', 'NETWORK SERVICE' | ||
-- Add user to database role | -- Add user to database role | ||
USE aspnetdb | USE aspnetdb | ||
GO | GO | ||
sp_addrolemember 'aspnet_Roles_FullAccess', ' | sp_addrolemember 'aspnet_Roles_FullAccess', 'NETWORK SERVICE' | ||
</source> | |||
Eelnevaga on loodud kasutajate baas, ning antud WCF'ile õigus seda kasutada. | |||
==Sertifikaatide loomine== | ==Sertifikaatide loomine== | ||
Selleks, et ei tekiks Certificate Chaining erindit, tuleb luua nii "Certificate Authority", kui ka CA poolt allkirjastatud Sertifikaat, mida kasutatakse turvalise ühenduse jaoks. | Selleks, et ei tekiks Certificate Chaining erindit, tuleb luua nii "Certificate Authority", kui ka CA poolt allkirjastatud Sertifikaat, mida kasutatakse turvalise ühenduse jaoks. | ||
Line 36: | Line 38: | ||
Eelnevaga loodi meie soovitud kausta CA ehk Self Signed sertifikaat, ning sertifikaadihoidlasse CA-ga signeeritud ühendusesertifikaat. | Eelnevaga loodi meie soovitud kausta CA ehk Self Signed sertifikaat, ning sertifikaadihoidlasse CA-ga signeeritud ühendusesertifikaat. | ||
==app.config== | |||
<source lang="xml"> | |||
<?xml version="1.0"?> | |||
<configuration> | |||
<connectionStrings> | |||
<add name="AspNetDb" connectionString="Data Source=.\SQLEXPRESS; | |||
Initial Catalog=aspnetdb; | |||
Integrated Security=true"/> | |||
</connectionStrings> | |||
<system.web> | |||
<membership defaultProvider="MySqlMembershipProvider"> | |||
<providers> | |||
<add name="MySqlMembershipProvider" | |||
type="System.Web.Security.SqlMembershipProvider" | |||
connectionStringName="AspNetDb" | |||
requiresQuestionAndAnswer="false" | |||
requiresUniqueEmail="false" | |||
applicationName="WcfSecureService"/> | |||
</providers> | |||
</membership> | |||
<roleManager enabled="true" defaultProvider="MySqlRoleProvider"> | |||
<providers> | |||
<add name="MySqlRoleProvider" | |||
type="System.Web.Security.SqlRoleProvider" | |||
connectionStringName="AspNetDb" | |||
applicationName="WcfSecureService"/> | |||
</providers> | |||
</roleManager> | |||
</system.web> | |||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> | |||
</configuration> | |||
</source> | |||
==Videomaterjal== | |||
*[http://echo360.e-uni.ee/ess/echo/presentation/75e01210-2016-44a5-a48a-8a861c1b9799 WCF Turvalisuse seadistamine] |
Latest revision as of 08:19, 30 April 2012
ASP.NET Membership database loomine ja WCF'ile selle kasutamiseks õiguste andmine
ASP.NET Membership funktsionaalsuse kasutamiseks peab olema teenuse masinasse olema installitud SQL Server (2005/2008/2010 Express versioon).
Selleks et SQL Serverisse Membership andmebaas teha, tuleb käivitada aspnet_regsql.exe. See asub "X:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe".
- Järgnevalt käivitada see, ning valida "Configure SQL Server for application services".
- Järgnevalt valida "Windows Authentication" ja määrata serveri aadressiks ".\SQLEXPRESS". Vajutada next.
Sellega loodi SQL Serverisse andmebaas "aspnetdb", ning vajalikud tabelid ASP.NET Membership funktsionaalsuse kasutamiseks.
Järgenvalt tuleb anda õigused WCF Service Process Identity'le, et sellel oleks õigus kasutada loodud baasi.
- Avame Microsoft SQL Server Management Studio ja autendime end administraatori õigustes kasutajaga.
- Käivitame järgneva QUERY:
-- Create a SQL Server login for the Network Service account
sp_grantlogin 'NT AUTHORITY\NETWORK SERVICE'
-- Grant the login access to the roles database
USE aspnetdb
GO
sp_grantdbaccess 'NT AUTHORITY\NETWORK SERVICE', 'NETWORK SERVICE'
-- Add user to database role
USE aspnetdb
GO
sp_addrolemember 'aspnet_Roles_FullAccess', 'NETWORK SERVICE'
Eelnevaga on loodud kasutajate baas, ning antud WCF'ile õigus seda kasutada.
Sertifikaatide loomine
Selleks, et ei tekiks Certificate Chaining erindit, tuleb luua nii "Certificate Authority", kui ka CA poolt allkirjastatud Sertifikaat, mida kasutatakse turvalise ühenduse jaoks.
Esimesena loome makecert vahendiga Certificate Authority. makecert.exe asub "X:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin" kaustas. Avame command line-i ja muudame oma hetkeasukoha kataloogiks, kuhu me soovime luua CA privaatvõtme ja Self Signed sertifikaadi.
- Loome Self Signed sertifikaadi
<<absolute path to makecert>> -n "CN=WcfCA" -r -sv WcfCa.pvk WcfCa.cer
- Loome Ühenduse sertifikaadi ja paneme selle kohe windowsi hoidlasse Currentuser My.
<<absolute path to makecert>> -sk SignedByWcfCA -iv WcfCa.pvk -n "CN=localhost" -ic WcfCa.cer -sr CurrentUser -ss My -sky exchange -pe
-n "CN=<<serveriaadress>>", mis meie puhul on hetkel localhost, kuna loome teenuse oma masinas ja samuti kasutame oma masinast. Muul juhul peaks seal olema domeeninimi või IP aadress.
Eelnevaga loodi meie soovitud kausta CA ehk Self Signed sertifikaat, ning sertifikaadihoidlasse CA-ga signeeritud ühendusesertifikaat.
app.config
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="AspNetDb" connectionString="Data Source=.\SQLEXPRESS;
Initial Catalog=aspnetdb;
Integrated Security=true"/>
</connectionStrings>
<system.web>
<membership defaultProvider="MySqlMembershipProvider">
<providers>
<add name="MySqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="AspNetDb"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
applicationName="WcfSecureService"/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="MySqlRoleProvider">
<providers>
<add name="MySqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="AspNetDb"
applicationName="WcfSecureService"/>
</providers>
</roleManager>
</system.web>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>