documentation_publique:concepts:authentification

Authentification

L'authentification consiste à prouver qui vous êtes. Cela ne concerne pas la gestion des droits (authorisation / permission).

D'un point de vue sécurité, la façon la plus sécurisé pour s'authentifier consiste à utiliser un mécanisme de clé publique/privé permettant de résoudre un challenge.

Le problème principal des mots de passe vient du fait qu'il est nécessaire de les envoyer (soit directement, soit au travers d'un hash) au système auprès duquel on souhaite s'authentifier (on considère une connexion chiffrée). Dans le cas d'une authentification centralisée, on peut en plus distinguer deux types de systèmes. Dans le premier cas le mot de passe est envoyé au système, qui vérifie ensuite le mot de passe auprès de l'IDP. Dans le second cas, plus sécurisé, le système nous renvoi vers l'IDP, auquel nous envoyons le mot de passe, et qui nous retourne un jeton d'authentification à donner au système.

TLDR: Clé assymétrique > Mot de passe envoyé à l'IDP > Mot de passe envoyé au système

NB: Un mot de passe peut être utilisé pour dériver la clé privé d'un chiffrement assymétrique.

Dans une infrastructure disposant de nombreux services, il est souhaitable de centraliser le mécanisme d'authentification, ainsi que la base de données des utilisateurs.

Du point de vue utilisateur, cela permet:

  • d'avoir un seul mécanisme d'authentification, plutôt que de gérer son authentification par service (par exemple un seul mot de passe)

Pour les administrateurs, cela permet de faciliter la gestion des permissions et le dépannage des utilisateurs (oubli de mot de passe). En particulier, lors de la suppression des droits de certains utilisateurs, on peut être assuré de ne pas avoir oublié des points d'accès.

De façon général, cela permet d'améliorer la sécurité.

NB: Il peut arriver qu'un service implémente une authentification centralisée sans avoir une base de données des utilisateurs centralisée. Par exemple Proxmox 5.4

  • Locale
  • Remote (through service)
  • Remote (credentials never sent to server, directly sent to IDP) (SSO)
  • Asymetric (either local or remote)

Sauf en cas de SSO, la conservation de la connexion d'un utilisateur et la mise en place d'un timeout de déconnexion sont à la responsabilité du service.

En cas de SSO:

  • tant que le SSO ne déconnecte pas l'utilisateur, le service ne peut pas le déconnecter.
  • l'utilisateur reste connecté tant que le service ne le déconnecte pas.

Timeout

Une fois authentifié la responsabilité de considérer l'utilisateur comme connecté appartient:

  • au service en cas d'authentification locale ou à distance
  • au choix au service ou à l'authentificateur en cas de SSO

au service. Dans le cas d'un SSO, cette responsabilité peut être délégué.

:?: Gestion utilisateur ou authentification (ou les deux)

  • Local ([-] requires sync) ([-] leak password hash to service [or use assymetric authentication])
    • Push sync
    • Pull sync ( requires sycn scheduling )
  • Remote
    • [-] Requires additionnal local users when losing remote access (bad network or bad config) or risk losing access completely (requires going in the service configuration files/DB)

Single Sign On (SSO) consiste à ne s'identifier qu'une seule fois au cours de la session (journée / lock de l'ordinateur). Une fois authentifié, tous les services auxquels on a accès sont disponibles sans avoir à s'authentifier de nouveau sur chaque service.

Directory Server Authentication

Reduce Sign On (RSO): SSO + accès à certains services (par exemple une banque) nécessite une authentification supplémentaire. Autre exemple: un administrateur utilise des services à la fois comme utilisateur et comme administrateurs, utilisant un mécanisme d'authentification plus sécurisé (MFA) lorsqu'il se connecte en tant qu'administrateur.

https://stackoverflow.com/questions/16661931/single-sign-on-vs-reduced-sign-on

  • documentation_publique/concepts/authentification.txt
  • Dernière modification : il y a 5 ans
  • de jdorel