Mettons en place une authentification Facebook externe avec asp.net core–Partie 1

Pour l’une des applications de la Diagonale du Poulpe, nous souhaitons pouvoir nous authentifier, pour avoir un compte personnalisé.

Pour éviter de créer tout un système d’authentification et donc de recréer une roue existante, nous avons décidé de :

Du middleware et du paramétrage de service

Pour utiliser l’authentification externe, il existe X étapes essentielles à respecter.
C’est parti, suivez le guide :

  1. Ajouter les références manquantes
  2. Paramétrer le ConfigurationBuilder (app)
  3. Ajouter des extensions de méthodes à la collection de Services.

Ajout des références manquantes

Puisque tout est module (un peu beaucoup comme node.js en fait, sauf qu’à la place des npm packages, on a des dlls) dans .net core, ici, nous allons installer le module (la dll) qui va nous manquer pour utiliser l’authentification Facebook :

Microsoft.AspNetCore.Authentication.Facebook

C’est une librairie qui s’installe depuis NuGet.

Paramétrer le ConfigurationBuilder

Il est important d’ajouter un middleware qui va vérifier les authentifications dans les requêtes :

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{

….

app.UseAuthentication();

Il nous faut également penser à ajouter la gestion des cookies :

app.UseCookiePolicy();

Extensions de méthodes pour le ServiceCollection

Enfin, clou du spectacle pour que tout fonctionne, il nous faut :

  1. Etendre le ServiceCollection dans la méthode ConfigureServices : services.AddAuthentication()
  2. Compléter cette extension avec le paramétrage pour Facebook :
  3. services.AddAuthentication().AddFacebook(option =>
                         {
                             option.AppId = Configuration[« Authentication:Facebook:AppId »];
                             option.AppSecret = Configuration[« Authentication:Facebook:AppSecret »];
                         });

Penser sécurité des données sensibles

En voyant la dernière partie du code ajouté, vous vous dîtes, attends, là, vous déconnez : charger tout depuis un fichier de configuration, c’est pas cool …
Mettre des données sensibles dans un fichier de configuration, ça craint, non ?

Et vous avez totalement raison !

Comment faire alors, pour éviter ça ?

Pourquoi ne pas avoir un fichier de données sensibles qui ne serait présent qu’en développement ?
Et pourquoi ne pas permettre que ces données sensibles ne soient accessibles, en production, qu’à travers des variables d’environnement ?

Vous avez tout bon, prochaine Ă©tape, nous ajoutons l’appel aux donnĂ©es sensibles, via  AddUserSecrets.

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639