Commerce électronique Automne 2015.  Les framework d’authentification  Identity ◦ Gestion des utilisateurs ◦ Gestion des rôles  OAuth2.

Slides:



Advertisements
Présentations similaires
L’utilisation des formulaires pour un responsable de Centre Régional.
Advertisements

L’utilisation des formulaires pour un exemplarisateur Sudoc.
Commerce électronique Automne  ASP.NET propose actuellement 4 Framework d’authentification: ◦ Asp.net Membership ◦ ASP.NET Simple Membership.
La base de données de jurisprudence francophone.  Juricaf est composé de deux parties : - Le menu de gauche avec les différentes fonctions - La partie.
Présentation de Scribe Votre nouvelle organisation du Réseau Informatique Pédagogique.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
Les profils du SEDA confection de profil avec Agape.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
GOOGLE MAPS ANDROID API V2. INTRODUCTION TO THE GOOGLE MAPS ANDROID API V2.
Cours de HTML suite 3. Sommaire...  Les formulaires. Les formulaires.  Structure basique du formulaire, balise. Structure basique du formulaire, balise.
AIDE PÉDAGOGIQUE SMS AIDE PÉDAGOGIQUE SMS (Système de Management de la Sûreté)(Système de Management de la Sûreté)DPSSE AIDE PÉDAGOGIQUE SMS AIDE PÉDAGOGIQUE.
Installation De Peakup.  Télécharger le fichier peakup2.4.0.free.zip  Décompresser le fichier extrait sur une Directory de votre choix  Créer un lient.
Interface sur laquelle on arrive lorsqu’on atteint le site Tous les champs ci- dessous sont supprimés Liste des clients disponibles Liste des serveurs.
ARCHITECTURE MULTITENANT CONTAINER DATABASE ET PLUGGABLE DATABASES Pr. A. MESRAR
Cahier des charges.
Nouveautés Version 4.1 et mai 2017.
Cross-Plateform Cours JavaScript
AMUE – SIFAC Gestion des services fait sur SIFAC WEB
Recherche Summon - HINARI (Module 3)
JAVA.
Banques – 26 mai 2016.
Thomas Hofer Secure-it Valais - 17 février 2017 HES-SO Sierre
Comment Sécuriser Le Système d’information de son entreprise
ATS8500 Standalone Downloader.
JT12-RSI mars 1999 Délégation aux systèmes d'information
Google analytics.
Réaliser un Diaporama ML PATINEC – 03/2017
Séminaire Novembre 2006 Zephir : Déploiement et supervision des serveurs Eole.
KeePass Introduction - Les services Conseils I6T.
SECURITE DU SYSTEME D’INFORMATION (SSI)
Javadoc et débogueur Semaine 03 Version A16.
Installer l’application depuis Google Play
Présentation J GUIRANDE.
Portail Fournisseurs 30 mai 2013 Manuel utilisateur Par Jardiland.
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Support – info Sauvegarde des données locales des postes clients
Projet IUT – MGDIS 2007/2008 Le contexte du projet Son objectif
L’INTERNET POUR LES NULS
1ers pas des utilisateurs migrés
Guide des différences entre les deux versions de l’interface web
Documentation technique (Linux)
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
LES IDE DE CONCEPTION Myriam BAKAYOKO Manon RAJAONARIVELO Jeremy MICHEL André NOEL Guillaume GEBAVI Arthur AGERON Fabien SIMON - G6S2.
SRT3 LDAP.
Les achats sur internet
Rapport sur l'état d'avancement
Informations vous concernant :
3- Nouvelles pages d’accueil
Environnement de gestion des machines Virtuelles
SOLUTION DE VIDEOSURVEILLANCE SUR IP
Introduction à Internet
Formation sur les bases de données relationnelles.
Prélude CS Mode client-serveur
Integrated Business intelligence
Programmation Android Première application Android
ODP Application de gestion des événements Occupant le Domaine Public
FAIRE UN BLOG D'ECOLE Un exemple détaillé.
La facture électronique
Module 13 : Implémentation de la protection contre les sinistres
Communication Assistant V2.0
Bonjour, Je suis votre guide pour cette visite de votre nouveau logiciel HDS. Je vais vous montrer comment préparer une note de frais.
Serveurs d’applications
DEVELOPPER LE PANIER MOYEN
Module 5 : Gestion de l'accès aux ressources à l'aide de groupes
Système de gestion de contenu de sites web
Elles contiennent des informations autre que géométriques
Groupement d’Employeurs Profession Sport et Loisirs en Picardie
Formation « Utiliser un site Internet école »
GUIDE DE PRISE EN MAIN FRONT OFFICE
Transcription de la présentation:

Commerce électronique Automne 2015

 Les framework d’authentification  Identity ◦ Gestion des utilisateurs ◦ Gestion des rôles  OAuth2

 ASP.NET propose actuellement 4 Framework d’authentification: ◦ Asp.net Membership ◦ ASP.NET Simple Membership ◦ ASP.NET Identity ◦ ASP.NET Universal Providers  Nous allons tenter d’en faire un panorama rapide afin d’en comprendre les spécificités.

 C’est le modèle historiquement proposé par Microsoft. Il est toujours d’actualité, mais pour de nouveaux projets je ne le conseille pas trop.  Son architecture est basée sur: ◦ l’authentification par formulaire ◦ une base de données pour gérer les credentials des utilisateurs  Le SDK embarque également une application Web que l’on peut notamment lancer depuis VS afin de gérer les rôles et les utilisateurs, ainsi qu’une API complète accessible depuis le code.  Ce que l’on peut lui reprocher: ◦ le schéma de la base de donnée n’est disponible que pour SQL Server et n’est pas évolutif.

 Ce modèle est relativement ancien (VS 2010 tout de même), mais curieusement il n’est pas très connu. Comme le nom le suggère, il s’agit d’une version simplifiée du précédent, mais ne cohabite pas très bien avec lui.  S’il simplifie la gestion des profils utilisateurs, les autres problèmes demeurent entiers. Pour plus d’info :

Version AspNet.Identity to

 Cette architecture ne se limite plus au vieux modèle basé sur des formulaires d’authentification. Il est maintenant de plus en plus fréquent de passer par une délégation de l’authentification vers divers réseaux sociaux, surtout pour les applications mobiles.  L’autre apport de AspNet Identity est OWIN et le support d’OAuth2 (on troque les cookies contre les jetons).

 Si on devait résumer les caractéristiques d’ASP.NET Identity: ◦ Modèle d’authentification unique Il peut s’intégrer à tous les Framework ASP.NET: MVC, Web Form, Web Page, Web Api, SignalR. Mais est aussi pleinement compatible avec les contraintes des applications mobiles. ◦ Maintenant on contrôle complètement le schéma des informations utilisateur et de profil. La personnalisation devient nettement plus facile. ◦ Par défaut, ASP.NET Identity persiste ses données dans une base de données que l’on attaque avec EF (code first). Il est alors possible de choisir tout type de conteneur: SharePoint, Windows Azure Storage Table, NoSql database… ◦ Mieux adapté au tests unitaires ◦ Gestion d’un fournisseur de rôle ◦ Outre les rôles, ASP.NET Identity est basé sur les claims qui permettent d’être plus précis quand à la représentation que l’on a d’un utilisateur qu’un simple rôle. ◦ Livré avec des fournisseurs spécifiques pour divers réseaux sociaux: Microsoft Account, Facebook, Twitter, Google… ◦ On peut déléguer les fonctionnalités de log à Windows Azure Active Directory Cette partie sera traitée dans un prochain article ◦ Intégration OWIN Plus de dépendance avec System.Web ◦ Package Nuget Le Framework est distribué via un package Nuget. C’est la nouvelle politique de Microsoft qui permet de réduire la durée du cycle de livraison des nouvelles version des outils.

 En sélectionnant le modèle « Application Internet », Visual Studio crée automatiquement le modèle, la vue, le contrôleur et le filtre qui va gérer l’authentification :

La configuration de Identify passe par IdentityConfig.cs

 Au départ, si on ne change rien, la base de données sera créé localement lors de l’utilisation.

 Il faut ajouter/modifier la chaine de connexion dans le Web.config de l’application: Et dans IdentityModels.cs

 Parfois(tout le temps) il est utile d’ajouter des informations relative à l’utilisateur, soit dans une table externe, soit dans la table des utilisateurs.  Dans ce qui suit, je vais vous montrer comment intégrer les informations dans la table Identity.

 Première étape est de permettre la mise à jour des données. Il faut donc ouvrir la console et activer la migration avec la commande Enable-Migrations.

 Ajouter les champs dans Models\IdentityModels.cs.

 Pour ajouter les champs dans la base de données il faut aller dans la console. ◦ Entrer la commande(pour chaque champs)  Add-Migration « DateNaissance »  Update-Database

 Ajouter les informations dans la section Modèle du formulaire. (RegisterView Model in Models\Accou ntViewModels. cs)

 Ajouter les informations dans la section Vue du formulaire( Views\Account\Register.cshtml)

 Il ne reste plus qu’à lié la donnée entrée dans le formulaire à la donnée du modèle (Controllers\AccountController.cs).

 Il est possible de définir des rôles à certains utilisateurs.

Pas suffisant….

 Il est important de contrôler l’exécution de méthode ou de classe avec la méthode suivante: ◦ [Authorize(Roles = « Administrator »)]

 Le fournisseur est construit sur une base d’Entity Framework code first. Il est donc possible de sauvegarder les informations utilisateurs dans tous les conteneurs pris en charge par EF, en particulier Windows Azure SQL Database.  Il s’agit d’un fournisseur, pas d’une nouvelle API. Il est utilisé au sein de l’infrastructure ASP.NET membership et souffre donc des mêmes limitations.  Evidemment le terme « universel » est un peu exagéré et seuls les repository de la maison sont supportés. Mais ce qui est intéressant est que le choix du repository se fait simplement en modifiant la chaîne de connexion.  L’installation du provider se fait depuis un package Nuget:  install-package System.Web.Providers  Qui en profite pour ajouter la configuration nécessaire dans le fichier de configuration.

 OAuth est un protocole libre qui permet d’autoriser une application client à utiliser l’API sécurisée d’une autre application pour le compte d’un utilisateur.  L’intérêt majeur d’OAuth vient du fait que l’utilisateur n’a plus besoin de fournir ses informations d’identification à une application tierce car la connexion se passe sur l’application de l’API.

 OAuth impose l’utilisation de HTTPS pour les échanges entre le client et le serveur d’autorisation du fait des données sensibles qui transitent entre les deux (jeton d’accès, éventuellement des identifiants et des mots de passe).  HTTP est un protocole de communication client- serveur développé pour le World Wide Web.  HTTPS n’est autre que la combinaison du HTTP avec une couche de chiffrement comme SSL ou TLS. ◦ Pratiquement tous les sites Web qui se respecte utilise maintenant https

 Dans les propriétés du projet, mettez à true SSL Enabled:

 Copiez l’url Https  Allez dans les propriétés du projet puis l’onglet Web  Copier l’url dans Project Url

 On complète le contrôleur avec l’attribut RequireHttps: [RequireHttps] public class HomeController : Controller { Lancer l’application et installer le certificat local.

 Voici quelques exemples  Microsoft Account Provider voici un tuto, mais le principe est identique: net-mvc-identity-with-microsoft-account-authentication/ net-mvc-identity-with-microsoft-account-authentication/  Facebook  Le Dashboard est ici:   LinkedLn et Yahoo  yahoo-linkedin-oauth-security-providers-for-owin/ yahoo-linkedin-oauth-security-providers-for-owin/  Twitter 

 Prenons l’exemple de Facebook Add a new App

 Cliquer sur Website

 Donner un nom à votre site Web

 Inscrire l’adresse https de votre site Internet

 Sélectionner votre nouvelle Apps

 Vous aurez besoin de votre App ID et App Secret.

 Dans le fichier App_start\Startup.Auth.cs, entrer vos informations et

 Il ne reste plus qu’à tester…  Good ça fonctionne….oui mais là, on a ajouté des champs à notre table d’utilisateur

 Dans le modèle

 Dans le contrôleur

 Dans la vue