Environnement technique : Différence entre versions
(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 : | ||
− | == | + | ==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 à 17:49
Sommaire
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.