Comme vu dans un
précédent post, il est possible avec WCF RIA Services, de gérer l'authentification Forms ou Windows pour accéder à notre application. Il faut savoir qu'il est aussi possible de sécuriser le transfert des données en les cryptant grâce au
HTTPS.
De base les échanges dans le navigateur s'effectue en HTTP, mais il est possible de préciser dans le code que l'application ne peut communiquer qu'en utilisant le protocole
HTTPS. Pour cela, il faut renseigner le tag
EnableClientAccess au niveau du
DomainService :
[EnableClientAccess(RequiresSecureEndpoint = true)] public class CustomerDomainService : LinqToEntitiesDomainService<NorthwindEntities>Pour tester notre application et vérifier qu'elle n'autorise que le protocole
HTTPS, nous allons la
déployer en local et modifier la configuration de IIS afin de pouvoir l'interroger en
HTTPS.
Tout d'abord il faut générer un certificat auto-signé afin de pouvoir l'associer avec notre connexion
HTTPS, pour cela dans IIS, cliquer sur "Server Certificates" et sur "Create Self-Signed Certificate..." :

Dans IIS après avoir sélectionné notre Web Site "DemoSL", en cliquant sur "Bindings", une fenêtre s'ouvre et indique que notre Web Site peut être atteint en
HTTP via le port 80 à l'adresse www.demoSL.com :

Il faut configurer un nouveau binding afin d'autoriser l'
HTTPS, en choisissant dans la liste déroulante type "https" et dans "SSL certificate" le certificat généré auparavant :

Ensuite on peut voir sur l'interface IIS de notre Web Site qu'il existe maintenant 2 chemins pour atteindre notre application Silverlight, un en
HTTP et un en
HTTPS :

Une dernière étape consiste à modifier les propriétés
SSL de notre Web Site :

Maintenant nous pouvons tester notre application.
Si l'on appelle notre application dans un navigateur internet en
HTTP, on obtient cette page avec une erreur 403.4 qui nous indique que cette page doit être interrogée en
HTTPS avec du
SSL :

Et si l'on teste, en appelant notre application en
HTTPS, on obtient tout d'abord cette page :

Comme il s'agit du certificat auto-signé que l'on a généré auparavant et non d'un certificat délivré par une autorité de certification, le navigateur nous demande confirmation pour accéder à notre application. En cliquant sur "Continue to this website", on obtient enfin notre application :