Abonnez-vous au flux

L'année dernière, le rôle Ansible microsoft.sql.server a été ajouté à Red Hat Enterprise Linux (RHEL). À la suite du lancement de RHEL 8.8 et 9.2, ce rôle est mis à jour avec plusieurs nouvelles fonctions :

Cet article présente l'intégration à Active Directory (AD) et vous guide tout au long du processus :

  1. S'assurer de remplir les conditions requises afin de configurer l'authentification AD pour SQL Server
  2. Préparer un fichier d'inventaire Ansible
  3. Découvrir les variables à définir et préparer un fichier de playbook Ansible en utilisant le rôle pour configurer automatiquement l'authentification avec Active Directory
  4. Exécuter le rôle
  5. Terminer la configuration
  6. Vérifier que l'authentification fonctionne comme prévu

Prérequis

Avant de commencer, vous devez vous assurer de remplir les conditions préalables pour le rôle.

  1. Vous devez disposer d'un serveur Active Directory en cours d'exécution auquel votre machine RHEL peut accéder. Les conditions préalables sont indiquées dans la documentation Microsoft : Joindre SQL Server sur un hôte Linux à un domaine Active Directory. Si vous ne parvenez pas à remplir ces conditions, consultez la page de résolution des problèmes liés à Active Directory.
  2. Assurez-vous que la recherche DNS fonctionne. Vous devez pouvoir effectuer un test ping sur le serveur Active Directory en utilisant son adresse IP et son nom DNS abrégé ou complet, à partir de votre machine RHEL.
  3. Assurez-vous que la recherche DNS inversée fonctionne. L'exécution de la commande nslookup pour l'adresse IP du serveur Active Directory doit renvoyer au nom DNS correct et inversement.
  4. Vérifiez que votre profil utilisateur Active Directory dispose des autorisations nécessaires pour créer des comptes et des noms SPN (Service Principal Names) sur le domaine.

Préparation de l'inventaire Ansible

L'inventaire ne doit contenir que les serveurs RHEL que vous souhaitez configurer pour l'authentification Active Directory. Dans cet exemple, le fichier d'inventaire inventory.yml utilisé contient un seul nœud RHEL rhel-sql-server.example.com :

$ cat inventory.yml
---
all:
hosts:
rhel-sql-server.example.com

Utilisation du rôle

Ensuite, vous avez besoin d'un playbook pour configurer l'authentification avec Active Directory. Il est plus facile de le faire sur la base d'un exemple de playbook, en ajustant les variables et les paramètres selon les besoins.

Le rôle implique de définir certains mots de passe avec des variables. Les exemples de cet article fournissent ces variables en texte clair. Mais, notez qu'en production, vous devez utiliser Ansible Vault pour chiffrer les mots de passe.

Exemple de playbook

Voici un exemple de playbook enregistré sous playbook.yml. Il configure l'authentification avec Active Directory :

---
- name: Configure with AD server authentication
hosts: all
vars:
# General variables
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula: true
mssql_accept_microsoft_cli_utilities_for_sql_server_eula: true
mssql_accept_microsoft_sql_server_standard_eula: true
mssql_version: 2022
mssql_password: "p@55w0rD"
mssql_edition: Evaluation
mssql_manage_firewall: true
# AD Integration required variables
mssql_ad_configure: true
mssql_ad_sql_user_name: sqluser
mssql_ad_sql_password: "p@55w0rD1"
ad_integration_realm: domain.com
ad_integration_user: Administrator
ad_integration_password: Secret123
# AD Integration optional variables
mssql_ad_sql_user_dn: "CN=sqluser,CN=Users,DC=DOMAIN,DC=COM"
mssql_ad_netbios_name: domain

Les variables de cet exemple sont divisées en trois sections : générales, obligatoires et facultatives.

Variables générales

Les variables qui acceptent le contrat de licence d'utilisateur final (CLUF) doivent être définies sur true pour confirmer que vous acceptez les conditions du paquet mssql-server. Voici quelques exemples :

  • mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula
  • mssql_accept_microsoft_cli_utilities_for_sql_server_eula
  • mssql_accept_microsoft_sql_server_standard_eula

Autres variables :

  • mssql_version définit la version (2017, 2019 ou 2022) du serveur SQL Server que vous souhaitez gérer.
  • mssql_password définit le mot de passe pour l'utilisateur sa.
  • mssql_edition définit l'édition à configurer pour SQL Server.
  • mssql_manage_firewall active le pare-feu et ouvre les ports requis. Il s'agit d'une variable facultative. Utilisez-la uniquement si vous souhaitez que le rôle gère le pare-feu pour vous.

Variables obligatoires pour l'intégration AD

Les variables suivantes sont obligatoires.

  • mssql_ad_configure : permet de configurer l'authentification Active Directory.
  • mssql_ad_sql_user_name : nom de l'utilisateur à créer sur le serveur Active Directory pour activer l'authentification de SQL Server. Le rôle utilise la commande adutil pour que l'utilisateur soit créé avec une autorisation d'accès en tant qu'utilisateur privilégié.
  • mssql_ad_sql_password : mot de passe de l'utilisateur en cours de création.
  • ad_integration_realm : nom du domaine Active Directory.
  • ad_integration_user : nom de l'utilisateur privilégié dans Active Directory. Cet utilisateur doit déjà exister dans le domaine.
  • ad_integration_password : mot de passe de l'utilisateur.

Variables facultatives pour l'intégration AD

Les variables suivantes sont facultatives.

  • mssql_ad_sql_user_dn : vous devez définir cette variable si votre serveur AD stocke les comptes utilisateur dans une unité organisationnelle personnalisée plutôt que dans l'unité organisationnelle Users par défaut. Par défaut, le rôle crée le nom unique en fonction des valeurs fournies pour les variables mssql_ad_sql_user_name et ad_integration_realm, et utilise l'unité organisationnelle Users (par exemple, CN=sqluser,CN=Users,DC=DOMAIN,DC=COM). Vous pouvez remplacer ce nom unique par un autre.
  • mssql_ad_netbios_name : vous devez définir cette variable lorsque le nom de domaine NetBIOS de votre serveur AD n'est pas le même que celui du premier sous-domaine du nom de domaine fourni avec la variable ad_integration_realm (par exemple, vous avez défini ad_integration_realm sur domain.contoso.com, mais votre nom de domaine NetBIOS n'est pas domain). Cette valeur permet de créer l'identifiant de connexion {{ mssql_ad_netbios_name }}\{ad_integration_user }} dans SQL Server.

Exécution du rôle Ansible

Une fois que vous avez rempli toutes les conditions préalables et que votre inventaire et votre playbook Ansible sont prêts, vous pouvez exécuter le playbook.

$ ansible-playbook -i inventory.yml playbook.yml

Ajout d'utilisateurs de domaine à SQL Server

Avant qu'un utilisateur puisse se connecter, vous devez l'ajouter à SQL Server. Pour ce faire, exécutez la commande T-SQL suivante pour chaque utilisateur de domaine AD :

CREATE LOGIN \[<domain>**<username>*\] FROM WINDOWS;

Activation de types de chiffrement supplémentaires

Après avoir exécuté le rôle pour configurer l'authentification Active Directory, vous devez ajouter les types de chiffrement Kerberos AES 128 et AES 256 à l'utilisateur défini avec la variable mssql_ad_sql_user_name dans Active Directory. Vous pouvez utiliser l'interface utilisateur web d'Active Directory ou PowerShell.

Interface utilisateur web

Ouvrez l'interface utilisateur web de votre serveur AD et connectez-vous.

  1. Accédez à Tools > Active Directory Users and Computers > [domain] > Users > [sqluser] > Account (Outils > Utilisateurs et ordinateurs Active Directory > [domain] > Users > [sqluser] > Compte).
  2. Dans la liste Account options (Options de compte), sélectionnez This account supports Kerberos AES 128 bit encryption (Ce compte prend en charge le chiffrement Kerberos AES 128 bits) et This account supports Kerberos AES 256 bit encryption (Ce compte prend en charge le chiffrement Kerberos AES 256 bits).
  3. Cliquez sur Apply (Appliquer).

PowerShell

Dans PowerShell, utilisez la commande Set-ADUser et remplacez <sqluser> par le nom d'utilisateur que vous avez défini comme variable mssql_ad_sql_user_name variable :

Set-ADUser -Identity <sqluser> -KerberosEncryptionType AES128,AES256

Vérification de l'authentification avec Active Directory

Maintenant que vous avez exécuté le rôle pour configurer l'authentification AD Server et que vous avez ajouté les types de chiffrement requis pour votre utilisateur <sqluser>, vous pouvez vous authentifier à l'aide de l'une des méthodes suivantes.

  • Windows ou RHEL : Azure Data Studio (ADS)
  • Windows : SQL Server Management Studio (SSMS)
  • RHEL : terminal Linux

Azure Data Studio (ADS)

Si vous n'avez pas encore installé le service ADS, suivez la documentation Microsoft pour télécharger et installer Azure Data Studio.

Une fois l'installation effectuée, lancez le service ADS.

  1. Cliquez sur Create a connection (Créer une connexion).
  2. Dans la liste Authentication type (Type d'authentification), sélectionnez Windows Authentication (Authentification Windows).
  3. Remplissez les autres champs, puis cliquez sur Connect (Connecter).

Vous pouvez désormais utiliser SQL Server.

Azure Data Studio user interface

SQL Server Management Studio

Commencez par vous connecter à Windows avec le profil utilisateur que vous souhaitez utiliser pour vous connecter à SQL Server, puis lancez SSMS.

  1. Dans le volet Connect to Server (Se connecter au serveur), sélectionnez Database Engine (Moteur de base de données) dans la liste Server type (Type de serveur).
  2. Dans le champ Server name (Nom du serveur), saisissez le nom de domaine complet de l'instance RHEL pour laquelle vous avez exécuté le rôle.
  3. Dans la liste Authentication (Authentification), sélectionnez Windows Authentication et remplissez les champs suivants.
    • Server type : Database Engine
    • Server name : nom du serveur à saisir
    • Authentication : Windows Authentication
  4. Cliquez sur Connect.
SQL Server Management Studio user interface

Terminal Linux

Pour vérifier l'authentification à l'aide d'un terminal Linux, utilisez SSH pour vous connecter au serveur avec le profil utilisateur créé par le rôle.

$ ssh -l <sqluser>@<domain.com> <client.domain.com>

Récupérez un ticket Kerberos pour l'utilisateur Active Directory que vous souhaitez authentifier :

$ kinit <AD_user_name>@<DOMAIN.COM>

Utilisez la commande sqlcmd afin de vous connecter à SQL Server, par exemple pour exécuter une requête qui permet d'obtenir l'utilisateur actuel :

/opt/mssql-tools/bin/sqlcmd -S. -Q 'SELECT SYSTEM_USER'

Conclusion

Le rôle microsoft.sql.server peut vous aider à automatiser l'intégration à Active Directory pour l'authentification des utilisateurs. Le rôle redhat.rhel_system_roles.ad_integration permet de se connecter à Active Directory et le rôle redhat.rhel_system_roles.firewall de configurer le pare-feu, et ce, de manière cohérente. Red Hat propose davantage de rôles système pour gérer différents services et outils sur RHEL. Si vous souhaitez automatiser vos workflows, consultez la liste des rôles système RHEL disponibles et lisez la documentation ou les articles de blog connexes sur le sujet. De nombreuses informations sont à votre disposition.

Si vous souhaitez connaître les autres avantages du rôle microsoft.sql.server, consultez sa documentation officielle.


À propos de l'auteur

Sergei Petrosian is a technical writer at Red Hat working on Satellite and Foreman documentation.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Parcourir par canal

automation icon

Automatisation

Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements

AI icon

Intelligence artificielle

Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement

open hybrid cloud icon

Cloud hybride ouvert

Découvrez comment créer un avenir flexible grâce au cloud hybride

security icon

Sécurité

Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies

edge icon

Edge computing

Actualité sur les plateformes qui simplifient les opérations en périphérie

Infrastructure icon

Infrastructure

Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde

application development icon

Applications

À l’intérieur de nos solutions aux défis d’application les plus difficiles

Original series icon

Programmes originaux

Histoires passionnantes de créateurs et de leaders de technologies d'entreprise