Vous pouvez utiliser l'espace de travail Authentification pour configurer SSO dans SaltStack Config pour fonctionner avec un système d'authentification compatible avec le protocole SAML (Security Assertion Markup Language).

L'authentification Single Sign-On (SSO) SAML est une fonctionnalité que de nombreuses organisations configurent lors de la mise en œuvre de SaltStack Config dans le but de :

  • Réduire le temps passé par les utilisateurs à se connecter à des services pour la même identité. Lorsque les utilisateurs se connectent à l'un des services d'une institution, ils sont ensuite automatiquement authentifiés dans tout autre service qui utilise l'authentification SSO.
  • Simplifier la gestion des mots de passe. L'utilisateur n'a qu'à mémoriser un ensemble d'informations d'identification et non plusieurs.

De nombreux services fournissent des implémentations du protocole SSO SAML, notamment ADFS, OneLogin, Okta,Bboleth, SimpleSAMLPHP, Google Suite, etc.

Note : Vous pouvez utiliser plusieurs systèmes à la fois pour authentifier des utilisateurs dans SaltStack Config si nécessaire. Par exemple, vous pouvez utiliser un fournisseur d'identité basé sur SAML ou un fournisseur d'identité basé sur LDAP tout en stockant simultanément des informations d'identification d'utilisateur nativement sur le serveur RaaS. Cependant, SaltStack Config n'autorise pas la configuration de plus de deux fournisseurs SAML ou deux fournisseurs LDAP en même temps.

Fonctionnement de SSO SAML avec SaltStack Config

Lorsque SaltStack Config reçoit une assertion d'identité réussie de l'une de ses intégrations d'authentification prise en charge, il recherche une connexion d'utilisateur qui correspond à la valeur de l'identité d'assertion. S'il trouve une connexion correspondante, il se connecte au compte d'utilisateur associé.

Par exemple, si SaltStack Config reçoit une assertion ADFS pour un utilisateur et que la valeur de l'attribut d'identité configuré est « fred », SSE recherche une connexion ayant le nom d'utilisateur « fred ». S'il en trouve une, l'utilisateur associé est connecté. Sinon, la connexion échoue.

Terminologie de l'authentification SAML

Acronyme Définition
SAML

Security Assertion Markup Language (SAML, prononcer SAM-el)

SAML est un protocole ouvert (également appelé standard) pour l'échange de données d'authentification et d'autorisation entre les parties. En particulier, il est utilisé pour échanger des données entre un fournisseur d’identité et un fournisseur de services.

SAML est une authentification Single Sign-On (SSO) basée sur navigateur. Toutes les communications se produisent via l’agent utilisateur (le navigateur). Il n'existe aucune communication entre un fournisseur de services (comme SaltStack Config) et un fournisseur d'identité (comme Azure AD). Cette séparation permet l’authentification entre les domaines de sécurité où un fournisseur de services peut se trouver dans un domaine (potentiellement public) et le fournisseur d’identité dans un segment de réseau sécurisé distinct.

IdP

Fournisseur d'identité

Le travail du IdP consiste à identifier les utilisateurs en fonction des informations d’identification. Un fournisseur d'identité est un logiciel qui fournit un service conforme à la partie fournisseur d'identité de la spécification SAML. Le fournisseur d'identité fournit généralement l'interface de l'écran de connexion et présente des informations sur l'utilisateur authentifié aux fournisseurs de services après réussite de l'authentification.

Exemples de fournisseurs d’identité :

  • ADFS
  • Azure AD
  • Google SAML
  • Shibboleth
  • Okta*
  • OneLogin
  • PingFederated
  • SimpleSAMLPHP

* Voir les détails supplémentaires après ce tableau.

SP

Fournisseur de services ou partie de confiance

Un fournisseur de services (SP) est généralement un site Web fournissant des informations, des outils, des rapports, etc. à l'utilisateur final. Un fournisseur de services est un logiciel qui fournit un service conforme à la partie fournisseur de services de la spécification SAML SaltStack Config. Les produits Microsoft (tels qu'Azure AD et ADFS) appellent le SP une partie de confiance.

Dans ce scénario, SaltStack Config est le fournisseur de services. SaltStack Config accepte les assertions d'authentification du fournisseur d'identité et permet aux utilisateurs de se connecter.

Un SP ne peut pas s'authentifier auprès d'un fournisseur d'identité, sauf s'il figure dans la liste des services approuvés. La configuration d'un SP avec une liste de fournisseurs d'identité approuvés fait partie du processus de configuration.

SSO

Single Sign-On

Single Sign-On est un système d'authentification dans lequel un utilisateur n'est pas obligé de se connecter à un second service, car les informations sur l'utilisateur authentifié sont transmises au service.

SLO

Single Logout

Lorsqu'un utilisateur se déconnecte d'un service, certains fournisseurs d'identité peuvent ensuite déconnecter l'utilisateur de tous les autres services dans lesquels il s'est authentifié.

SaltStack Config ne prend actuellement pas en charge SLO.

RBAC

Contrôle d'accès basé sur les rôles

Le contrôle d'accès basé sur les rôles, également appelé sécurité basée sur les rôles, est une mesure de contrôle d'accès avancé qui limite l'accès au réseau en fonction du rôle d'une personne dans une organisation. Les rôles du RBAC font référence aux niveaux d'accès dont les employés ont besoin pour accéder au réseau.

Les employés sont uniquement autorisés à accéder aux ressources réseau ou à effectuer des tâches nécessaires pour effectuer efficacement leur travail. Par exemple, les employés de niveau inférieur n'ont généralement pas accès aux données sensibles ou aux ressources réseau s'ils n'en ont pas besoin pour remplir leurs responsabilités.

SaltStack Config peut prendre en charge le RBAC avec des configurations SAML à l'aide de l'espace de travail Rôles. Toutefois, l'utilisateur doit d'abord se connecter à SaltStack Config pour être ajouté en tant qu'utilisateur dans la base de données d'utilisateurs locale et géré par l'espace de travail Rôles.

Conditions requises Okta

Mises en garde et éléments à savoir lors de la configuration d'Okta pour SSO :
  • Le champ URL Single Sign-On lors de la configuration nécessite l'URL du service client d'assertion SAML (ACS). Il s'agit de l'URL de SSC avec /autho/complete/saml à la fin. Par exemple, http://xxx.x.x.x:8080/auth/complete/saml.
  • L'intégration SAML nécessite que l'interface utilisateur soit traitéegérée par SSC. L'intégration échoue, car l'interface utilisateur est desservie gérée par un CDN ou tout autre site Web en plus de SSC.
  • Toutes les réponses SAML doivent être signées. Dans Okta, vous pouvez activer ce paramètre sous Paramètres avancés.
  • Chaque attribut SAML configuré dans SSC doit exister et être transmis dans la réponse SAML.

Conditions préalables

Avant de configurer SAML dans SaltStack Config :

  • Installez le fournisseur d'identité SAML et assurez-vous qu'il est en cours d'exécution.
  • Assurez-vous d'avoir accès aux informations d'identification et aux données de configuration fournies par le fournisseur d'identité.
  • Générez un certificat pour ajouter SaltStack Config en tant que fournisseur de services approuvé dans votre fournisseur d'identité. Le fournisseur de services SaltStack Config a besoin d'une paire de clés RSA. Lorsque vous configurez SAML pour SaltStack Config, vous entrez les valeurs de clé privée et publique à plusieurs endroits.
    Note : Cette paire de clés peut être générée sur n'importe quel système. Il n'est pas nécessaire de la créer sur le serveur SSE. Ces commandes s'exécutent sur n'importe quel système avec des utilitaires openssl installés. Vous pouvez également utiliser Salt pour générer le certificat auto-signé. Pour plus d'informations, reportez-vous à la section Certificats auto-signés avec le module Salt TLS.
    Pour créer le certificat, générez une clé privée, appelée cert.perm, à l'aide de la commande openssl genrsa -out cert.pem 2048. Ensuite, créez la clé publique associée à la clé privée à l'aide de la commande openssl req -new -x509 -key cert.pem -out cert.pub -days 1825 et en suivant les invites. Enregistrez ces paires de clés publiques et privées pour un accès facile lors de l’utilisation du reste du processus de configuration.

Définition d'une configuration SAML

  1. Dans le menu latéral, cliquez sur Administration > Authentification.
  2. Cliquez sur Créer.
  3. Dans le menu Type de configuration, sélectionnez SAML.

    L'espace de travail affiche les paramètres pris en charge pour le type de configuration SAML.

  4. Dans l'onglet Paramètres, configurez les champs suivants avec les informations sur votre installation de SaltStack Config :
    • Nom
    • URI de base
    • ID de l'entité
    • Nom de la société
    • Nom complet
    • Site Web
  5. Dans le champ Clé privée, copiez la clé privée que vous avez générée lorsque vous avez créé le certificat du fournisseur de services pour SaltStack Config.
  6. Dans le champ Clé publique, copiez la clé publique que vous avez générée lorsque vous avez créé le certificat du fournisseur de services pour SaltStack Config.
  7. Renseignez les champs avec les informations de contact pertinentes pour votre :
    • Contact technique
    • Contact du support
  8. Dans la section Informations sur le fournisseur, configurez les champs suivants avec les métadonnées sur votre fournisseur d'identité :
    • ID de l'entité
    • ID d'utilisateur : nom de l'attribut que le SAML reçoit du fournisseur d'identité qui représente l'identification de l'utilisateur utilisée dans SSC.
    • E-mail : nom de l'attribut que le SAML reçoit du fournisseur d'identité qui représente l'adresse e-mail de l'utilisateur. SSC nécessite une adresse e-mail valide pour l'utilisateur.
    • Nom d'utilisateur : nom de l'attribut que le SAML reçoit du fournisseur d'identité qui représente le nom d'utilisateur de l'utilisateur. Cela dernier doit être différent de l'ID d'utilisateur afin que vous puissiez facilement reconnaître l'utilisateur qu'il représente.
    • URL
    • Certificat x509
    Note : ADFS, Azure AD et Google SAML sont des exemples de fournisseur d'identité courants. Ces informations sont fournies par votre fournisseur d'identité.
  9. (Facultatif) Cochez la case Contrôle de l'instruction d'attribut afin que SaltStack Config vérifie les instructions d'attribut SAML pour les profils d'utilisateur. Cette option est cochée par défaut.
  10. Cliquez sur Enregistrer.

Étape suivante

Après avoir configuré l'authentification Single Sign-On SAML, vous pouvez effectuer les actions suivantes :
  • Fournissez l'URL AssertionCustomerService (par exemple : https://<your-sse-hostname>/auth/complete/saml), ainsi que le certificat public (x509) et la clé que vous avez générés pour SaltStack Config à votre fournisseur d'identité.
  • Créez des mappages d'attributs pour les utilisateurs, en particulier pour l'ID d'utilisateur, l'e-mail et le nom d'utilisateur. De nombreuses organisations mappent ces trois valeurs à l'adresse e-mail de l'utilisateur en tant qu'attribut unique, car elle est généralement unique dans une organisation. Le processus de mappage de ces attributs est spécifique de chaque fournisseur d'identité SAML. Pour obtenir de l'aide sur la création de ces mappages d'attributs, reportez-vous à la documentation de votre fournisseur d'identité ou contactez votre administrateur.
  • Ajoutez des utilisateurs à SaltStack Config. Par défaut, les nouveaux utilisateurs sont enregistrés dans SaltStack Config uniquement après la première connexion réussie d'un utilisateur avec SAML. Vous pouvez également ajouter manuellement des utilisateurs pour les préenregistrer dans SaltStack Config. Pour ajouter manuellement des utilisateurs depuis l'espace de travail Authentification, sélectionnez votre configuration SAML dans la liste Configurations d'authentification et cliquez sur l'onglet Utilisateur dans les paramètres de configuration. Cliquez sur Créer et entrez les informations d'identification de l'utilisateur, puis sélectionnez Rôles.
    Note : Assurez-vous que ce nom d'utilisateur est correct. Une fois qu'un utilisateur a été créé, son nom d'utilisateur ne peut être ni modifié ni renommé. Une fois qu'un utilisateur a été créé manuellement, il peut uniquement être supprimé avant sa première connexion. Une fois que l'utilisateur s'est connecté pour la première fois, le bouton Supprimer est toujours disponible dans l'espace de travail, mais il ne fonctionne plus.
  • Validez votre configuration SAML en vous connectant en tant qu'utilisateur classique pour vous assurer que le processus de connexion fonctionne comme prévu et que les rôles et les autorisations sont corrects. Résolvez les erreurs potentielles à l'aide de l'outil de suivi SAML, qui est disponible pour les navigateurs Web Firefox et Chrome, et en affichant les messages de journaux /var/log/raas/raas.
    Note : Les utilisateurs ne peuvent pas être supprimés via l'interface utilisateurs de SaltStack Config ou à l'aide de l'API après le provisionnement initial avec une authentification SAML réussie.