Traduction▲
Cet article est la traduction la plus fidèle possible de l'article original d'Avkash Chauhan, Windows Azure and Visual Studio LightSwitch 2011 - Part 3/3 : Adding RDP Access to LightSwitch 2011 Application which is already deployed to Windows Azure.
Ajouter l'accès RDP à l'application LightSwitch 2011 déjà déployée sur Windows Azure▲
Dans cette partie, nous allons apprendre comment ajouter les informations d'identification d'accès RDP (Remote Desktop Protocol) à une application LightSwitch déjà déployée sur Windows Azure et que vous avez déjà publié. Vous pouvez lire les deux premières parties de mes articles sur le même sujet :
- Windows Azure et Visual Studio LightSwitch 2011 - Partie 1/3 : Création d'une application « Hello World » dans Visual Studio Lightswitch
- Windows Azure et Visual Studio LightSwitch 2011 - Partie 2/3 : Publication d'une application LightSwitch dans Windows Azure en utilisant « l'Assistant Publication d'application LightSwitch »
Le besoin de ce sujet découle du fait que « l'Assistant Publication d'application LightSwitch » déploie directement l'application sur Windows Azure en utilisant un assistant (comme expliqué dans la partie 2 ci-dessus). Toutefois l'assistant n'a pas de moyen pour configurer l'accès RDP à la même application. Cet article comble cette lacune.
Ajouter l'accès RDP▲
Étape 1 ▲
Pour démarrer, je supposerai que vous avez déjà votre application LightSwitch en cours d'exécution dans Azure et si vous regardez le dossier « bin » de votre application, vous verrez les fichiers suivants :
Comme vous pouvez le constater, nous avons les fichiers CSPKG, CSCFG et CSDEF dans le dossier ci-dessus, qui sont les principaux fichiers ayant trait à Windows Azure. Afin d'ajouter un accès RDP nous allons devoir éditer les fichiers CSDEF et CSCFG.
D'abord, nous devons générer les informations d'identification d'accès RDP pour toute application Windows Azure afin que nous puissions les exporter dans les fichiers LightSwitch CSDEF et CSCFG ci-dessus. Maintenant pour commencer veuillez créer une application Azure « helloworld » simple et utilisez l'option « Publish » pour y ajouter un accès RDP.
Note : Pour savoir comment ajouter l'accès RDP à une application Azure référez-vous à l'article suivant :
Dans l'accès RDP d'une application Windows Azure, un certificat PFX est utilisé pour crypter les informations d'identification d'accès RDP et ce certificat PFX doit être téléchargé dans la section « Certificate » de votre application Windows Azure. Il y a donc deux options :
- Nous pouvons créer un nouveau certificat PFX et l'utiliser pour crypter les informations d'identification d'accès RDP, et ensuite télécharger ce PFX dans la partie « Certificate » de votre application Windows Azure dans le portail Windows Azure.
- Nous pouvons utiliser le même certificat PFX que nous avons utilisé pour signer le fichier XAP dans la section « Specify a certificate » (l'étape 10 de la deuxième partie).
Parce que l'option 1 ci-dessus est déjà décrite dans mon article indiqué ci-dessus, j'ai décidé d'utiliser l'option 2.
Utilisation du certificat PFX qui a été utilisé pour signer le fichier XAP dans la section « Specify a certificate »▲
Étape 2 ▲
Dans l'assistant de publication de l'application HelloWorld, j'utilise le même certificat que ci-dessous :
Si vous comparez l'empreinte numérique du certificat ci-dessus avec le certificat de l'application Windows Azure, vous pouvez vérifier que l'empreinte numérique correspond et que donc je n'ai pas besoin de le télécharger à nouveau.
Maintenant une fois que le paramétrage de l'accès RDP est complété dans une application HelloWorld simple, vous pouvez voir les entrées suivantes, que nous allons utiliser dans notre application LightSwitch :
ServiceDefinition.csdef (paramètres relatifs à l'accès RDP uniquement)
<Imports>
<Import
moduleName
=
"RemoteAccess"
/>
<Import
moduleName
=
"RemoteForwarder"
/>
</Imports>
ServiceConfiguration.cscfg (paramètres relatifs à l'accès RDP uniquement)
<ConfigurationSettings>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled"
value
=
"true"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername"
value
=
"avkashc"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword"
value
=
"MIIBHwYJKoZIhvcNAQcDoIIBEDCCAQwCAQAxgdkwgdYCAQAwPzArMSkwJwYDVQQDEyBBd
mthc2ggV2luZG93cyBBenVyZSBQb3J0YWwgQ2VydAIQXNki5y7CtptNzxrLjUQ52zANBgkqhkiG9w0BAQEFAASBgC2KUWTLVFI0NtfhznAc+LC40l/jmFBdoDlYqh7pBDs4ujEvYCTUDuqfVp2jlqRgKJGUf6UFxaX
KDgnT78dirwuRnw8aYvlkLEDb0OvjG1DQWFp72XGwp3U8hSljX41zXnkjprEJo4tgaFQIycXkROU4y+11GfOgfzD4A75A95PHMCsGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI2oBjQVC07caACMjaoYP3REwm"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration"
value
=
"2011-11-30T23:59:59.0000000-08:00"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled"
value
=
"true"
/>
</ConfigurationSettings>
<Certificates>
<Certificate
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"
thumbprint
=
"A77B40E35556DFDB09C3B246453A548B2D7B9444"
thumbprintAlgorithm
=
"sha1"
/>
</Certificates>
Maintenant, nous allons essayer de migrer ces paramètres dans notre application LightSwitch. Ici, vous allez devoir mettre à jour ServiceDefinition.csdef et ServiceConfiguration.cscfg qui se trouvent à la racine de l'application LightSwitch :
Maintenant mettons à jour le fichier ServiceDefinition.csdef qui se trouve dans C:\Azure\AzureLightSwitchWebRole\AzureLightSwitchWebRole\ServiceDefinition.csdef
ServiceDefinition.csdef (Application LightSwitch mise à jour avec les paramètres d'accès RDP)
<ServiceDefinition
name
=
"AzureLightSwitchWebRole"
xmlns
=
"http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"
>
<WebRole
name
=
"LightSwitchWebRole"
vmsize
=
"Small"
enableNativeCodeExecution
=
"true"
>
<ConfigurationSettings>
<Setting
name
=
"Microsoft.LightSwitch.Trace.Enabled"
/>
<Setting
name
=
"Microsoft.LightSwitch.Trace.LocalOnly"
/>
<Setting
name
=
"Microsoft.LightSwitch.Trace.Level"
/>
<Setting
name
=
"Microsoft.LightSwitch.Trace.Sensitive"
/>
<Setting
name
=
"Microsoft.LightSwitch.Trace.Categories"
/>
<Setting
name
=
"Microsoft.LightSwitch.RequireEncryption"
/>
</ConfigurationSettings>
<Sites>
<Site
name
=
"Web"
>
<Bindings>
<Binding
name
=
"HttpIn"
endpointName
=
"HttpIn"
/>
<Binding
name
=
"HttpsIn"
endpointName
=
"HttpsIn"
/>
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint
name
=
"HttpIn"
protocol
=
"http"
port
=
"80"
/>
<InputEndpoint
name
=
"HttpsIn"
protocol
=
"https"
port
=
"443"
certificate
=
"SSLCertificate"
/>
</Endpoints>
<Certificates>
<Certificate
name
=
"SSLCertificate"
storeLocation
=
"LocalMachine"
storeName
=
"My"
/>
</Certificates>
<Imports>
<Import
moduleName
=
"RemoteAccess"
/>
<Import
moduleName
=
"RemoteForwarder"
/>
</Imports>
</WebRole>
</ServiceDefinition>
Maintenant mettons à jour le fichier ServiceConfiguration.cscfg qui se trouve dans C:\Azure\AzureLightSwitchWebRole\AzureLightSwitchWebRole\ServiceConfiguration.cscfg
ServiceConfiguration.cscfg (Application LightSwitch mise à jour avec les paramètres d'accès RDP)
<ServiceConfiguration
serviceName
=
"AzureLightSwitchWebRole"
xmlns
=
"http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
>
<Role
name
=
"LightSwitchWebRole"
>
<Instances
count
=
"1"
/>
<ConfigurationSettings>
<!-- A value of true will enable diagnostic logging on the server -->
<Setting
name
=
"Microsoft.LightSwitch.Trace.Enabled"
value
=
"false"
/>
<!-- A value of true only lets local access to Trace.axd -->
<Setting
name
=
"Microsoft.LightSwitch.Trace.LocalOnly"
value
=
"true"
/>
<!-- The valid values for the trace level are: None, Error, Warning, Information, Verbose -->
<Setting
name
=
"Microsoft.LightSwitch.Trace.Level"
value
=
"Information"
/>
<!-- A value of true will indicate that logging sensitive information is okay -->
<Setting
name
=
"Microsoft.LightSwitch.Trace.Sensitive"
value
=
"false"
/>
<!-- The semi-colon separated list of categories that will be enabled at the specifed trace level -->
<Setting
name
=
"Microsoft.LightSwitch.Trace.Categories"
value
=
"Microsoft.LightSwitch"
/>
<!-- A value of true will indicate http requests should be re-directed to https -->
<Setting
name
=
"Microsoft.LightSwitch.RequireEncryption"
value
=
"true"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled"
value
=
"true"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername"
value
=
"avkashc"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword"
value
=
"MIIBHwYJKoZIhvcNAQcDoIIBEDCCAQwCAQAxgdkwgdYCAQAwPzArMSkwJwYDVQQDEyBBdmthc2gg
V2luZG93cyBBenVyZSBQb3J0YWwgQ2VydAIQXNki5y7CtptNzxrLjUQ52zANBgkqhkiG9w0BAQEFAASBgC2KUWTLVFI0NtfhznAc+LC40l/jmFBdoDlYqh7pBDs4ujEvYCTUDuqfVp2jlqRgKJGUf6UFxaXKDgnT78dirwuRnw8aYv
lkLEDb0OvjG1DQWFp72XGwp3U8hSljX41zXnkjprEJo4tgaFQIycXkROU4y+11GfOgfzD4A75A95PHMCsGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI2oBjQVC07caACMjaoYP3REwm"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration"
value
=
"2011-11-30T23:59:59.0000000-08:00"
/>
<Setting
name
=
"Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled"
value
=
"true"
/>
</ConfigurationSettings>
<Certificates>
<Certificate
name
=
"Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"
thumbprint
=
"A77B40E35556DFDB09C3B246453A548B2D7B9444"
thumbprintAlgorithm
=
"sha1"
/>
</Certificates>
</Role>
</ServiceConfiguration>
Note : Il est toujours une bonne pratique d'avoir une sauvegarde de vos fichiers CSCFG et CSDEF ci-dessus.
Maintenant vous pouvez renommer les fichiers CSPKG, CSCFG et CSDEF qui se trouvent dans C:\Azure\AzureLightSwitchWebRole\AzureLightSwitchWebRole\Bin\<Release|Debug>\
Ensuite, vous pouvez lancer le même assistant de publication et publier à nouveau l'application. Vous verrez des nouveaux fichiers CSCFG, CSDEF et CSPKG qui se seront créés comme suit :
Une fois la publication terminée, vous pouvez vérifier que l'accès RDP est activé dans votre application. Lorsque vous sélectionnez votre rôle au sein du portail de gestion Windows Azure vous pouvez voir que l'accès RDP est activé et peut être configuré (si nécessaire) comme ci-dessous :
Lorsque vous sélectionnez votre instance dans le portail de gestion Windows Azure vous pouvez voir que l'accès RDP est activé et peut être configuré (si nécessaire) comme ci-dessous :
Maintenant vous pouvez lancer la connexion au bureau à distance (Remote Desktop Connection) vers votre application LightSwitch et sans aucun problème, vous aurez votre machine virtuelle comme ci-dessous :
Si vous avez besoin d'aide sur la façon d'utiliser la connexion au bureau à distance avec Azure VM, référez-vous à l'article suivant : http://blogs.msdn.com/b/avkashchauhan/archive/2011/04/03/how-to-login-into-windows-azure-virtual-machine-using-remote-desktop.aspx
Conclusion▲
Ceci conclut donc cette troisième et dernière partie de cet article qui nous a permis de voir comment ajouter l'accès RDP à une application LightSwitch publiée dans Windows Azure.
Remerciements▲
Je tiens ici à remercier Avkash Chauhan de m'avoir autorisé à traduire son billet.
Je remercie tomlev pour sa relecture technique et ses propositions.
Je remercie également zoom61 pour sa relecture orthographique et ses propositions.