Praktikum: Windows Communication Foundation teenuse turvamine, VR2.9: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kraspel (talk | contribs)
Mposka (talk | contribs)
 
(4 intermediate revisions by the same user not shown)
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\NETWORK SERVICE'
     sp_grantlogin 'NT AUTHORITY\NETWORK SERVICE'
Line 23: Line 24:
     GO
     GO
     sp_addrolemember 'aspnet_Roles_FullAccess', 'NETWORK SERVICE'
     sp_addrolemember 'aspnet_Roles_FullAccess', 'NETWORK SERVICE'
 
</source>
Eelnevaga on loodud kasutajate baas, ning antud WCF'ile õigus seda kasutada.
Eelnevaga on loodud kasutajate baas, ning antud WCF'ile õigus seda kasutada.


Line 39: Line 40:


==app.config==
==app.config==
<source lang="xml">
     <?xml version="1.0"?>
     <?xml version="1.0"?>
     <configuration>
     <configuration>
Line 68: Line 70:
       <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
       <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
     </configuration>
     </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>

Videomaterjal