Environnement technique

De Documentation ISIOS
Révision datée du 17 septembre 2020 à 17:49 par IsiosWIKI (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Informations générales

  • Langage de programmation : PHP version 7.2
  • Base de données : PostgreSQL
  • Configuration technique : Serveurs partagés (option possible pour serveur dédié)
  • Encryptage des couchées : Algorithme AES-256
  • Protection contre intrusion externe : SHA-2 (clé d’encryptage de chaque ligne des tables)
  • Certification SOC (hébergeur): SOC 2 TYPE II
  • Certification ISO (hébergeur) : ISO 27001
  • Continuité des opérations : Configurations standardisées et copies de sauvegardes
  • Mécanisme de reprise après sinistre : Oui
  • Mécanismes d’escalade : Oui
  • Console d’administration disponible : Oui. Pour surveillance de l’état de santé de la plateforme
  • Politique de sécurité disponible : Oui
  • Gestion des accès par les utilisateurs : Oui
  • Automatisation des processus : Oui
  • Portabilité de la plateforme : Oui. Sur les tablettes et téléphones intelligents.
  • Accès à la plateforme : Via la plupart des navigateurs connus
  • Environnement de tests disponible : Oui
  • Connectivité avec d’autres solutions : Oui. Via des API standards ou personnalisés.
  • Paramétrisation des fonctionnalités : Oui
  • Exportation des données : Oui


Protocole SAML

Termes

SP : Service Provider, dans ce cas-ci l’application ISIOS.

IdP : Identity Provider, dans ce cas-ci, votre Active Directory Federation Service (ADFS).

SAML 2.0 : Security assertion markup language, un protocole de communication permettant l’échange d’assertions de sécurité.

ADFS : Active Directory Federation Service, un module d’Active Directory permettant l’interconnexion entre un contrôleur et une application externe.


Flux de connexion

La connexion SAML 2.0 fonctionne selon le principe suivant:

1. Le client se connecte à l’application ISIOS.

2. Si le client n’a pas de jeton d’authentification, il est redirigé à une page de connexion de l’ADFS.

3. Le client s’authentifie sur la page de connexion.

4. Sur la base du fichier de définition du SP, une réponse est renvoyée à ISIOS.

5. ISIOS décode les assertions incluses dans la réponse et génère un jeton d’authentification.


Exemple de fichier de définition

<md:EntityDescriptor validUntil="2020-06-04T17:49:42Z" cacheDuration="PT604800S" entityID="https://example.isios.ca/saml2/metadata"> <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate> [REDACTED] </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:NameIDFormat> urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified </md:NameIDFormat> <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://example.isios.ca/saml2/acs" index="1"/> <md:AttributeConsumingService index="1"> <md:ServiceName xml:lang="en">ISIOS</md:ServiceName> <md:ServiceDescription xml:lang="en">ISIOS' SAML2.0 Service Provider</md:ServiceDescription> <md:RequestedAttribute Name="mail" isRequired="true"/> <md:RequestedAttribute Name="first_name" isRequired="false"/> <md:RequestedAttribute Name="last_name" isRequired="false"/> <md:RequestedAttribute Name="global_permissions" isRequired="false"/> <md:RequestedAttribute Name="project_permissions" isRequired="false"/> </md:AttributeConsumingService> </md:SPSSODescriptor> </md:EntityDescriptor>


Énumération des <md:RequestedAttribute>

Une clé “mail”, unique entre tous les utilisateurs, doit être fournie.

Une clé “global_permissions”, une suite de chaînes de caractères, séparée par des virgules peut être fournie et contient la liste des permissions globales qui doivent être affectées à l’utilisateur.

Une clé “project_permissions”, une suite de chaînes de caractères, séparée par des virgules peut être fournie et contient la liste des permissions de projets qui doivent être affectées à l’utilisateur.

Les clés “global_permissions” et “project_permissions” se basent sur une charte de correspondance et doivent être convenues d’avance.

D’autres clés, par exemple “first_name”, “last_name”, “address”, etc. peuvent être fournies et servent à remplir les métadonnées d’un utilisateur. La liste complète des clés disponibles est fournie sur demande.