Méthodes d'authentication unique compatibles
    • Sombre
      Clair

    Méthodes d'authentication unique compatibles

    • Sombre
      Clair

    Résumé de l’article

    Simple Vote prend en charge les protocoles d'authentification unique suivants :

    Security assertion markup language (SAML)

    Cette méthode d'authentification nécessite l'intervention du personnel de Simple Vote pour sa mise en œuvre. Veuillez nous contacter pour faire votre demande et échanger les informations requises décrites ci-dessous.

    Le système de vote peut authentifier les électeurs auprès d'un fournisseur d'identité Security Assertion Markup Language (SAML) tel que Shibboleth, ADFS, Azure AD, Keycloak ou Okta. Les électeurs cliquent sur un bouton Connexion sur le site de vote et saisissent leurs informations d'identification sur le système de l'organisation, après quoi ils sont redirigés vers le système de vote une fois l'authentification réussie. Les mots de passe ne sont pas connus du système de vote.

    Exigences

    • Étape 1 : Vous devez d'abord procéder à un échange de métadonnées avec Simple Vote. Les métadonnées de Simple Vote sont disponibles ici.

    Si votre organisation fait partie d'une fédération comme InCommon ou la Fédération canadienne d'accès (FCA), alors seul votre entityID doit être fourni. L'entityID de Simple Vote est :

    https://shibboleth.simplyvoting.com/shibboleth-sp
    
    • Étape 2 : Vous devez installer les métadonnées (ou l'entityID) de Simple Vote en tant que fournisseur de services approuvé dans le fournisseur d'identité de votre organisation.

    • Étape 3 : Vous devez libérer un seul attribut, un identifiant unique, qui peut être n'importe quoi à condition qu'il corresponde à l'identifiant qui sera utilisé dans la liste des électeurs éligibles dans le système de vote. Par exemple, si « email » est utilisé comme identifiant, alors « email » doit être libéré en tant qu'attribut.

    • Étape 4 : Le nom SAML de l'attribut choisi doit être communiqué au personnel de Simple Vote. Vous pouvez également communiquer au personnel de Simple Voting une URL post-déconnexion vers laquelle vous souhaitez que le système de vote redirige les électeurs lors de leur déconnexion.

    • Étape 5 : Pour tester l'intégration, nous préférons que votre organisation nous fournisse un compte test. Sinon, nous pouvons coordonner un test avec votre personnel informatique.

    Les utilisateurs du Gestionnaire de scrutins peuvent également être authentifiés via SAML. Voir ici pour plus d'informations.


    OpenID Connect (OIDC)

    Le système de vote peut authentifier les électeurs auprès d'un fournisseur d'identité OpenID Connect tel que Okta ou Keycloak. Les électeurs cliquent sur un bouton Connexion sur le site de vote et saisissent leurs informations d'identification sur le système de l'organisation, après quoi ils sont redirigés vers le système de vote une fois l'authentification réussie. Les mots de passe ne sont pas connus du système de vote.

    La mise en œuvre de cette méthode d'authentification ne nécessite pas l'intervention du personnel de Simple Vote et peut être configurée en libre-service par les organisations clientes dans le Gestionnaire de scrutins en accédant à la page Paramètres, puis aux Paramètres d'authentification.

    Exigences

    • ID client
    • Valeur du secret client
    • URL émetteur (fournisseur), par exemple : https://idp.domain.com. Le système de vote recherchera un document de découverte avec vos métadonnées OpenID sous https://idp.domain.com/.well-known/openid-configuration.
    • Vous devez configurer https://votresitedevote.simplyvoting.com/auth.php comme callback de connexion dans votre fournisseur d'identité (où votresitedevote.simplyvoting.com est votre site de vote).
    • Vous devez configurer https://votresitedevote.simplyvoting.com comme callback de déconnexion dans votre fournisseur d'identité (où votresitedevote.simplyvoting.com est votre site de vote).

    Paramètres facultatifs

    • Callback de déconnexion personnalisé : seulement nécessaire pour les fournisseurs OIDC (par example, Auth0) qui ne publient pas de directive end_session_endpoint sous la configuration well-known.
    • Claim : Le claim renvoyé par votre fournisseur d'identité et qui doit correspondre à l'identifiant de l'électeur. La valeur par défaut est sub lorsque le champ est vide. Si vous souhaitez utiliser un autre claim, assurez-vous que l'ID client et la valeur du secret client émis sont autorisés à accéder à la portée OpenID à laquelle il appartient.
    • Portée d'autorisation : une liste des portées qui seront demandées au fournisseur d'identité, séparées par des points-virgules. La valeur par défaut est openid lorsque le champ est vide.

    Tester la configuration

    • Vous pouvez tester votre configuration OIDC à l'aide du bouton Tester ces paramètres sous le formulaire Paramètres d'authentification. Pour tester correctement, vous devez ajouter https://www1.simplyvoting.com/manage/authtest.php comme l'un de vos callbacks de connexion.


    Lightweight Directory Access Protocol (LDAP)

    Le système de vote peut authentifier les électeurs auprès de technologies d'annuaire via Lightweight Directory Access Protocol (LDAP). Les électeurs saisissent leurs identifiants sur le site de vote, qui sont ensuite transmis à votre serveur LDAP. Une fois l'authentification réussie, l'électeur est connecté au système de vote. Les mots de passe ne sont jamais enregistrés par le système de vote.

    Vous devrez peut-être ajouter les adresses IP du système de vote à la liste blanche de votre pare-feu pour autoriser l'accès externe à votre annuaire LDAP. Si tel est le cas, veuillez nous contacter pour demander les informations requises.

    La mise en œuvre de cette méthode d'authentification ne nécessite pas l'intervention du personnel de Simple Vote et peut être configurée en libre-service par les organisations clientes dans le Gestionnaire de scrutins en accédant à la page Paramètres, puis aux Paramètres d'authentification.

    Selon la configuration de l'annuaire de votre organisation, le système de vote peut soit :

    • effectuer la liason directement à l'aide de l'identifiant de l'électeur, ou
    • utiliser l'identifiant de l'électeur pour rechercher le DN, puis effectuer la laison à l'aide du DN

    Exigences pour LDAP (liaison à l'aide de l'identifiant de l'électeur)

    • URL du serveur LDAP (par exemple ldap(s)://hostname:port/ )

    Exigences pour LDAP (utiliser l'identifiant de l'électeur pour rechercher le DN, puis effectuer la laison à l'aide du DN)

    • URL du serveur LDAP (par exemple ldap(s)://hostname:port/ )
    • DN de base LDAP (par exemple o=AcmeWidgets,c=US)
    • Clé de recherche LDAP (par exemple uid, sn, etc.)
    • Filtre de recherche LDAP (par exemple objectCategory=person), une condition de filtrage facultative qui est combinée avec la clé de recherche LDAP dans un ET logique.

    Une liaison anonyme peut être utilisée pour la recherche, ou vous pouvez sinon fournir :

    • DN utilisateur LDAP (par exemple, uid=Username,ou=MyUnit,o=AcmeWidgets,c=US)
    • Mot de passe utilisateur LDAP


    Central Authentication Service (CAS)

    Le système de vote peut authentifier les électeurs auprès d'un protocole Central Authentication Service (CAS). Les électeurs cliquent sur un bouton Connexion sur le site de vote et saisissent leurs informations d'identification sur le système de l'organisation, après quoi ils sont redirigés vers le système de vote une fois l'authentification réussie. Les mots de passe ne sont pas connus du système de vote.

    La mise en œuvre de cette méthode d'authentification ne nécessite pas l'intervention du personnel de Simple Vote et peut être configurée en libre-service par les organisations clientes dans le Gestionnaire de scrutins en accédant à la page Paramètres, puis aux Paramètres d'authentification.

    Exigences

    • Nom d'hôte du serveur (par exemple www.exemple.com)
    • URI de base du serveur (par exemple /cas)
    • Port du serveur (habituellement 443)
    • La déconnexion CAS peut également être activée pour déconnecter l’électeur du système de l’organisation lors de la déconnexion du système de vote.

    Les utilisateurs du Gestionnaire de scrutins peuvent également être authentifiés via CAS. Voir ici pour plus d'informations.


    Authentification HTTP(S)

    Le système de vote peut authentifier les électeurs auprès d'une URL protégée par le schéma d’authentification basique HTTP. Les électeurs saisissent leurs informations d'identification sur le site de vote, qui sont ensuite transmises à votre système. Une fois l'authentification réussie, l'électeur est connecté au système de vote. Les mots de passe ne sont jamais enregistrés par le système de vote.

    La mise en œuvre de cette méthode d'authentification ne nécessite pas l'intervention du personnel de Simple Vote et peut être configurée en libre-service par les organisations clientes dans le Gestionnaire de scrutins en accédant à la page Paramètres, puis aux Paramètres d'authentification.

    Exigences

    • URL d'authentification HTTP(S) (par exemple https://exemple.com/membres-seulement)


    Connexion à un site Web externe

    Le système de vote peut authentifier les électeurs grâce à une connexion à un site Web externe, tel que le formulaire de connexion d'un portail réservé aux membres. Les électeurs saisissent leurs informations d'identification sur le site de vote, qui sont ensuite transmises à votre système. Une fois l'authentification réussie, l'électeur est connecté au système de vote. Les mots de passe ne sont jamais enregistrés par le système de vote.

    Si votre organisation ne dispose pas d'une connexion à un site Web externe, votre personnel informatique peut créer une API de service Web que le système de vote peut appeler.

    La mise en œuvre de cette méthode d'authentification ne nécessite pas l'intervention du personnel de Simple Vote et peut être configurée en libre-service par les organisations clientes dans le Gestionnaire de scrutins en accédant à la page Paramètres, puis aux Paramètres d'authentification.

    Exigences

    • URL de connexion (par exemple https://www.exemple.com/connexion.php). Il s'agit de l'URL à laquelle le formulaire de connexion du site Web externe sera soumis.
    • Méthode HTTP (GET ou POST)
    • Paramètre identifiant de l'électeur (par exemple, username)
    • Paramètre mot de passe (par exemple, password)
    • Paramètres statiques (par exemple foo=valeur1&bar=valeur2) : spécifiez tous les paramètres supplémentaires qui doivent être fournis avec l'identifiant de l'électeur et le mot de passe.
    • Chaîne de succès (par exemple, « OK ») : un mot ou une phrase qui apparaîtra sur le site Web externe après une connexion réussie.


    Formule SSO propriétaire

    Cette méthode d'authentification peut être utilisée en parallèle avec toute autre méthode d'authentification prise en charge par le système de vote, y compris l'Authentification standard.

    Le système de vote peut authentifier les électeurs grâce à l'authentification unique propriétaire de Simple Vote. Les électeurs saisissent leurs informations d'identification via le formulaire de connexion d'un site Web externe, puis cliquent sur un lien spécialement programmé dans ce site Web. Lorsqu'un électeur clique sur ce lien, il est redirigé vers le système de vote et est automatiquement connecté. Les mots de passe ne sont jamais connus du système de vote.

    La mise en œuvre de cette méthode d'authentification ne nécessite pas l'intervention du personnel de Simple Vote et peut être configurée en libre-service par les organisations clientes dans le Gestionnaire de scrutins en accédant à la page Paramètres, puis aux Paramètres d'authentification, et en suivant les étapes ci-dessous dans votre propre système.

    Exigences

    • Texte secret, un secret mutuellement partagé.
    • En option, l'URL de la page de connexion de votre site Web peut être fournie. Cela redirige les visiteurs non authentifiés vers votre site Web sécurisé.
    • En option, des Référents restreints peuvent être spécifiés. Vous pouvez restreindre la connexion en fonction de l’en-tête de requête Referer. Fournissez l’hôte et autant de chemin (URI) que vous le souhaitez. Par exemple, www.exemple.com/membres-seulement/ peut restreindre l’authentification unique aux visiteurs suivant le lien SSO sur n’importe quelle page de la section réservée aux membres d’un site Web. Pour autoriser plusieurs référents, séparez-les par un point-virgule..

    Les liens d’authentification unique doivent être programmés par votre organisation. Chaque lien contient un hachage unique qui correspond à un électeur spécifique dans le système de vote.

    Le format du lien est le suivant :

    https://votresitedevote.simplevote.ca/auth.php?e={id}&mac={hash}

    Où :

    • votresitedevote.simplevote.ca est l'adresse de votre site de vote.
    • {id} est l'identifiant de l'électeur, à la fois dans le système de votre organisation et dans Simple Vote (par exemple jmartin, 73649, etc.). Ce paramètre doit être encodé dans l'URL. Pour qu'un électeur puisse accéder à un bulletin de vote, il doit y avoir un électeur éligible présent dans le système de vote dans le cadre d'une élection active ou en attente, et dont l'identifiant correspond exactement à celui-ci.
    • {hash} est un hachage unique qui représente l'électeur spécifique (voir la recette de hachage ci-dessous).

    La recette de hachage est la suivante :

    SHA1 (Texte secret + Identifiant de l'électeur + Texte secret)
    

    Où :

    • SHA1 est la fonction de hachage,
    • Texte secret est un mot de passe de votre choix, et
    • + signifie concaténer.

    Exemple

    Compte tenu des paramètres suivants :

    • Site de vote : nova.simplevote.ca
    • Texte secret : abc123
    • Identifiant du membre : MTom

    Le {hash} de l'électeur est généré comme suit :

    SHA1(abc123MTomabc123)
    

    Ce qui donne :

    38c2c62f118208f2c5741014a221dde8721964a6
    

    L'URL d'authentification unique résultante pour cet électeur est donc :

    https://nova.simplevote.ca/auth.php?e=MTom&mac=38c2c62f118208f2c5741014a221dde8721964a6
    

    Exemple d'implémentation en PHP

    <?php
    
    $secretKey = "abc123" ;
    $memberId = "MTom" ;
    $hash = sha1($secretKey . $memberId . $secretKey);
    $memberIdEncoded = urlencode($memberId); // important si les identifiants contiennent des caractères incompatibles dans les URL (« /,?+[] » etc.)
    
    echo "<a href=\"https://nova.simplevote.ca/auth.php?e={$memberIdEncoded}&mac={$hash}\">cliquez ici pour vous voter</a>";
    
    ?>