Environnement technique : Différence entre versions

De Documentation ISIOS
Aller à : navigation, rechercher
(Page créée avec « == '''Environnement technique''' : == :* Langage de programmation : PHP version 7.2 :* Base de données : PostgreSQL :* Configuration technique : Serveurs partagés (... »)
 
 
Ligne 1 : Ligne 1 :
  
== '''Environnement technique''' : ==
+
==Informations générales==
  
  
Ligne 42 : Ligne 42 :
  
 
:* Exportation des données : 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.

Version actuelle datée du 17 septembre 2020 à 13:49

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.