Skip to main content

Protocoles de sécurité

Open ENT doit supporter différents protocoles d'authentification et d'autorisation pour pouvoir intégrer le plus grand nombre de services et modules en toute securité. Les 4 protocoles suivants sont supportés :

  • protocole CAS
  • protocole CAS avec proxy
  • protocole Open ID Connect (OIDC)
  • protocole SAML

Les protocoles CAS et CAS proxy sont utilisés pour l'accès aux ressources pédagogiques proposées par les nombreux partenaires du catalogue de ressources.

Le protocole Open ID Connect est utilisé pour l'authentification et l'autorisation des différents modules et services

Le protocole SAML est utilisé pour l'intégration avec le GAR et EduConnect

Les protocoles CAS, CAS avec Proxy et OpenID Connect (OIDC) ont des différences notables en termes de conception, de fonctionnalités et de cas d'utilisation.

Nous détaillerons leurs caractéristiques clés et leurs diagrammes de séquence.

1. CAS (Central Authentication Service)

  • Fonctionnement : CAS est un protocole d’authentification qui utilise des "tickets" pour vérifier l'identité de l'utilisateur. Le client demande un ticket au serveur CAS, qui est ensuite validé par le service cible.
  • Processus : L'utilisateur se connecte via une page de login unique, reçoit un Service Ticket (ST) du serveur CAS, qu’il fournit ensuite au service pour accéder aux ressources.
  • Cas d'Utilisation : Utilisé principalement pour les Single Sign-On (SSO) dans des environnements avec plusieurs applications internes.
  • Sécurité : Relativement sécurisé pour les applications internes, avec des sessions courtes pour limiter les risques.
  • Limites : CAS ne permet pas facilement la délégation d’accès pour des services tiers.

2. CAS avec Proxy

  • Fonctionnement : CAS avec Proxy étend le protocole CAS pour permettre la délégation d'accès. Il introduit le Proxy Granting Ticket (PGT) pour autoriser les services intermédiaires (proxy) à accéder à d'autres services en votre nom.
  • Processus : En plus des étapes du CAS, le service initial obtient un PGT auprès du serveur CAS, qu’il utilise ensuite pour interagir avec un service tiers en tant que proxy.
  • Cas d'Utilisation : Idéal pour les architectures où un service intermédiaire a besoin d'agir pour le compte de l’utilisateur pour des opérations en chaîne.
  • Sécurité : Renforce la sécurité via des validations de ticket supplémentaires, bien que la délégation d’accès puisse ajouter des points de vulnérabilité.
  • Limites : Complexité accrue en raison de la gestion des PGTs et de la validation entre les services.

3. OpenID Connect (OIDC)

  • Fonctionnement : OIDC est un protocole d'authentification construit sur OAuth 2.0. Il permet l'authentification et l’autorisation via des "tokens" (ID Token, Access Token) et est conçu pour les applications modernes, notamment celles basées sur le web et le mobile.
  • Processus : Le client obtient un code d’autorisation en se connectant via l’OpenID Provider (OP), puis échange ce code contre des tokens (ID Token pour l'identité de l'utilisateur et Access Token pour accéder aux ressources).
  • Cas d'Utilisation : OIDC est utilisé pour l'authentification sécurisée avec des applications tierces et des services dans le cloud. Il convient aux applications web, mobiles et API.
  • Sécurité : Très sécurisé, avec des mécanismes comme le chiffrement des tokens et la gestion des durées de vie des sessions.
  • Limites : Plus complexe à mettre en œuvre et nécessite une bonne gestion des tokens et de leurs permissions.

4. SAML

Pour le protocole SAML (Security Assertion Markup Language), voici les détails concernant les principaux aspects de son fonctionnement :

Détails de SAML

CritèreSAML
Type de protocoleStandard de Single Sign-On (SSO) et d'autorisation basé sur XML
Méthode d'authentificationUtilise des assertions SAML sous forme de documents XML signés pour transmettre l'identité
UtilisationFédération d'identités, SSO sécurisé entre organisations et applications d'entreprise
Gestion de sessionsBasée sur des assertions SAML échangées entre Identity Provider (IdP) et Service Provider (SP), souvent avec une session gérée par le SP et le IdP
Délégation d'accèsNon supportée directement ; conçu pour des scénarios de fédération et non de délégation de droits à des services intermédiaires
DéconnexionPrise en charge de la déconnexion SSO centralisée, mais peut être complexe à gérer et coordonner entre les différents services
ScalabilitéBien adapté pour les environnements avec besoin de fédération d'identités, mais moins flexible que les approches modernes sans état
SécuritéBasé sur des signatures numériques, encrypte les assertions SAML ; offre un haut niveau de sécurité, mais exige une configuration et gestion plus complexes
Cas d'usageParfait pour des applications Web dans des environnements d'entreprise, ou des situations de fédération d'identité inter-organisationnelle

Fonctionnement de SAML

  1. Authentification déléguée via IdP et SP : SAML repose sur deux entités principales, l'Identity Provider (IdP), qui authentifie l’utilisateur, et le Service Provider (SP), qui fournit le service demandé. Le SP délègue l'authentification au IdP via une requête SAML.

  2. Assertions SAML : Lorsqu’un utilisateur est authentifié, l'IdP génère une assertion SAML, un document XML signé contenant les informations d'authentification de l'utilisateur, telles que son identité et ses autorisations. Cette assertion est transmise au SP via le navigateur de l’utilisateur.

  3. Single Sign-On (SSO) : Grâce aux assertions SAML, l’utilisateur n'a besoin de s'authentifier qu'une seule fois pour accéder à plusieurs applications dans un environnement fédéré.

  4. Sécurité et complexité : Les assertions SAML sont signées et peuvent être chiffrées, assurant une sécurité renforcée mais demandant une gestion rigoureuse des clés de signature et des certificats.

Avantages et Inconvénients de SAML

  • Avantages :

    • Très sécurisé avec des signatures et options de chiffrement, adapté aux environnements d’entreprise nécessitant une fédération d'identité.
    • Permet une authentification unique (SSO) inter-organisationnelle.
    • Compatible avec de nombreux fournisseurs de services d’entreprise et des solutions de gestion d'identité.
  • Inconvénients :

    • Complexité de mise en œuvre et d’administration élevée, notamment pour gérer la synchronisation des sessions et les certificats.
    • Moins adapté aux applications modernes et décentralisées, car il n'est pas pensé pour un fonctionnement sans état comme OpenID Connect.

5. Comparatif Général

CritèreCASCAS avec ProxyOpenID ConnectSAML
Type de protocoleProtocole propriétaire de Single Sign-On (SSO)Extension du CAS pour déléguer l'authentification aux services en chaîneProtocole d'authentification basé sur OAuth 2.0Protocole de Single Sign-On (SSO) et d'autorisation basé sur XML
Méthode d'authentificationBasé sur l'authentification SSO avec tickets d'accèsAuthentification SSO avec délégation de tickets proxyBasé sur des tokens (ID Token, Access Token, Refresh Token)Basé sur des assertions SAML (documents XML signés)
UtilisationSSO dans des environnements internesAuthentification SSO pour des applications internes nécessitant un accès déléguéAuthentification déléguée pour des applications modernesSSO entre applications d'entreprise et fédération d'identités
Gestion de sessionsSessions maintenues sur le serveur CASSessions maintenues sur le serveur CAS avec délégationGestion des sessions via tokens (sans état côté serveur) et déconnexion via End Session EndpointSessions via des assertions SAML, gérées par le Service Provider et Identity Provider
Délégation d'accèsNonSupporte la délégation d'accès avec des tickets proxyBasé sur des tokens OAuth 2.0, incluant des scopes et autorisations spécifiquesGéré via la fédération d'identité, pas de support direct pour la délégation d'accès
DéconnexionFermeture de session centralisée via le serveur CASDéconnexion centralisée, mais complexe en cas de délégationDéconnexion avec End Session Endpoint pour SSODéconnexion centralisée, mais plus complexe à implémenter et à coordonner
ScalabilitéBien adapté aux environnements avec un serveur CAS centraliséBien adapté mais peut ajouter une complexité de performance en proxyConçu pour des applications décentralisées et adaptable aux environnements modernesMoins flexible pour des applications modernes, mais bien adapté aux environnements SSO
SécuritéValidation des tickets d’accès ; dépend de la configuration sécuritaire de CASValidation des tickets proxy, ajoutant une sécurité via délégationTokens signés et encryptés, gestion du consentement, scopes d’accès et révocation de tokenSignatures numériques et assertions SAML protégées ; sécurité élevée, mais complexe
Cas d'usageAuthentification SSO pour les applications internesSSO pour les applications nécessitant une chaîne d'accès déléguéeAccès sécurisé aux applications Web et mobiles ; API RESTfulAuthentification fédérée entre organisations ; SSO sécurisé pour des applications Web

6. Diagramme de séquence pour CAS

7. Diagramme de séquence pour CAS avec Proxy

9. Diagramme de séquence pour OpenID Connect (OIDC)

10. Diagramme de séquence pour SAML

11. Diagramme de séquence pour supporter les trois modes (CAS, CAS avec Proxy et OIDC)