Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#860 closed feature request (done)

Deployment server for plugin installation from web locations

Reported by: gkronber Owned by: gkronber
Priority: highest Milestone: HeuristicLab 3.3.0
Component: Services.Deployment Version: 3.2
Keywords: Cc:

Description


Change History (22)

comment:1 Changed 11 years ago by gkronber

  • Status changed from new to assigned

comment:2 Changed 11 years ago by gkronber

Worked on prototype of plugin deployment service with r2742.

comment:3 Changed 11 years ago by gkronber

Set svn properties with r2743.

comment:4 Changed 11 years ago by gkronber

r2766:

  • Worked on deployment server.
  • Fixed DB-schema.
  • Implemented all test-cases.

comment:5 Changed 11 years ago by gkronber

Added script to create database for deployment service with r2767.

comment:6 Changed 11 years ago by gkronber

Implemented and tested rudimentary WCF service interface on top of the Linq2Sql data access layer with r2771.

comment:7 Changed 11 years ago by gkronber

Refreshed service reference in plugin infrastructure with r2783.

comment:8 Changed 11 years ago by gkronber

Worked on administration front-end for deployment service with r2802.

comment:9 Changed 11 years ago by gkronber

Worked on administration front-end for deployment service with r2804.

comment:10 Changed 11 years ago by gkronber

Fixed service references in plugin infrastructure with r2811.

comment:11 Changed 11 years ago by gkronber

changed proxy generation script to merge service binding definitions into app.config of plugin infrastructure with r2812.

comment:12 Changed 11 years ago by gkronber

Updated service reference with r2814.

comment:13 Changed 11 years ago by gkronber

Added contact info and license text to plugin descriptions with r2815.

comment:14 Changed 11 years ago by gkronber

r2816:

  • Worked on plugin deployment GUI.
  • Added contact info and license text to DB schema.

comment:15 Changed 11 years ago by gkronber

r2860:

  • replaced column ContactInformation with ContactName and ContactEmail in DB-schema and updated WCF deployment service
  • regenerated proxy classes
  • made PluginDescription from data contract implement IPluginDescription from plugin infrastructure
  • updated GUI on request by swagner (icons)
  • fixed problems in the upload plugins control.

comment:17 follow-up: Changed 11 years ago by gkronber

Necessary additional steps:

  • Create a self-signed certificate for the web server.
  • Allow access of the net application user to the private key (file system read access to private key file. Use FindPrivateKey tool from Microsoft (http://msdn.microsoft.com/en-us/library/aa717039.aspx)
  • Make public key available at client (either install into certificate store or use embedded resource in client code)

comment:18 in reply to: ↑ 17 Changed 11 years ago by gkronber

Replying to gkronber:

Necessary additional steps:

  • Create a self-signed certificate for the web server.

This is not possible from within IIS7 because the common name will by the machine name and for WCF the common name has to match the domain name. Create a certificate including private key with makecert.exe and include capability for key exchange (option -sky exchange. Use pvk2pfx to translate into *.pfx file and install on the server (via IIS Configuration 'Server Certificates'). Don't forget to add the self signed certificate to the trusted certificates.

makecert -r -pe -n CN=services.heuristiclab.com -sky exchange services.heursiticlab.com.cer -sv services.heuristiclab.com.pvk

pvk2pfx -pvk services.heuristiclab.com.pvk -spc services.heursiticlab.com.cer



  • Make public key available at client (either install into certificate store or use embedded resource in client code)

The preferred way is to add it as an embedded resource and set the certificate programmatically:

      var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("servdev.cer");
      serverCrtData = new byte[stream.Length];
      stream.Read(serverCrtData, 0, serverCrtData.Length);

      var client = new UpdateClient();
      client.ClientCredentials.UserName.UserName = <username>;
      client.ClientCredentials.UserName.Password = <password>;
      client.Endpoint.Address = new EndpointAddress(<address>);
      client.ClientCredentials.ServiceCertificate.DefaultCertificate = new X509Certificate2(serverCrtData);
      
      // otherwise the service certificate has to be added to the client certificate store
     client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode
        = System.ServiceModel.Security.X509CertificateValidationMode.None; 
      return client;
    }
Last edited 11 years ago by gkronber (previous) (diff)

comment:19 Changed 11 years ago by gkronber

r3006:

  • Implemented deployment service on servdev.heuristiclab.com and changed all service references and configurations to point to the service address.
  • Improved GUI of installation manager.
  • Implemented user name authentication and authorization for the deployment service.

comment:20 Changed 11 years ago by gkronber

  • Resolution set to fixed
  • Status changed from assigned to closed

Deployment service is up and running on servdev. Further changes should be tracked in more specific tickets.

comment:21 Changed 10 years ago by swagner

  • Milestone changed from Iteration 4 to Current

Milestone Iteration 4 deleted

comment:11 Changed 10 years ago by swagner

  • Milestone changed from Current to HeuristicLab 3.3.0

Milestone Current deleted

Note: See TracTickets for help on using tickets.