Télécharger
Transcription
Télécharger
GSB Annuaire AD Version <1.0> Mise en place de rôle sur le serveur gsb GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> Historique des révisions Date 29/02/2016 Version <1.0> Description Installation et configuration d'un annuaire Active Directory Auteur Robin Viscaïno et Alexis Redais Page 2 sur 10 GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> Table des matières Table des matières Introduction Contexte du projet Objectifs du document Portée Définitions, Acronymes et Abréviations Références Éléments de configuration Configuration d'un annuaire Active Directory Script d’automatisation Serveur d'envoi de mail Script d'automatisation pour la création d'utilisateurs issu d'une base de donnée Conclusion 4 4 4 4 4 5 5 5 6 7 9 11 Page 3 sur 10 GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> Mise en place de rôles sur le serveur GSB 1. Introduction 1.1 Contexte du projet Le projet consiste à mettre en place un annuaire Active directory pour améliorer la gestions des bases de données et ainsi éviter une trop grandes accumulations des bases de données. L'annuaire sera centralisé pour permettre aux applications d'y accéder. Nous nous trouvons toujours au sein de l'entreprise GSB qui est organisé avec de multiples services. C'est d'ailleurs pourquoi le domaine Active Directory est indispensable au bon fonctionnement de l'entreprise. Une entreprise avec une activité assez importante comme doit impérativement avoir son propre domaine si l'on veut que la gestion du parc informatique soit faite de manière optimisée. 1.2 Objectifs du document Le document a pour objectif de mettre à disposition une documentation détaillé concernant la configuration d'un annuaire active directory et la création d'un script PowerShell, qui devra quant à lui automatiser la création de comptes utilisateurs et les intégrer dans un domaine. 1.3 Portée 1.4 Définitions, Acronymes et Abréviations Listes de commandes scripting : dsadd est un outil de ligne de commande intégré a windows server 2008 et 2008R2. On peut l'utiliser si nous avons au préalable installé le service de domaine active directory (AD), ainsi on peut ouvrir un terminal et exécuter la commande. Plusieurs attributs existent pour cette commande : - dsadd computer - dsadd contact - dsadd group - dsadd ou - dsadd user - dsquota Ajoute un seul ordinateur à l'annuaire Ajoute un contact unique pour le répertoire Ajoute un groupe unique à l'annuaire Ajoute une unité d'organisation à l'annuaire Ajoute un tilisateur unique dans le répertoire Ajoute une spécification de quota à une partition d'annuaire. dsmod dsdel : Page 4 sur 10 GSB Annuaire Active Directory 1.5 Références 2. Éléments de configuration 2.1 Configuration d'un annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> Pour cette tâche qui nous a été confié nous avons dû utiliser le travail effectué par nos camarades SLAM. En effet, nous allons utiliser un script permettant d'importer à partir d'un fichier .csv les informations qu'ils ont stocké dans leur base de donnée. Architecture de la forêt Tout d'abord on se rend sur notre serveur windows 2008R2 qui est prédisposé pour servir de serveur Active directory. La machine virtuelle du serveur se trouvant sous Vmware je me connecte à distance à l'aide de la connection de bureau à distance. Je préfère ce choix qu'à la console intégré à Vmware car j'ai l'impression que l'on a de meilleures performances et les lag sont moins fréquents. Nous allons utiliser Windows server 2008R2 et y installer les services d'active directory ainsi que celui du DNS, car il faut savoir qu'on peut pas installer AD sans DNS. L’installation de ces services et assez simple : Ouvrir le gestionnaire de serveur. Ajouter un rôle. Installer les services de domaine Active Directory. On va devoir éxécuter l’assistant des services de domaine Active directory (on peut également le lancer en tapant : dcpromo.exe, dans la barre de recherche). Créer un domaine dans une nouvelle forêt. Nommer notre domaine racine, ici : GSB-PITCHOU.LOCAL. Il ne reste plus qu’à choisir le niveau fonctionnel de notre forêt. Page 5 sur 10 GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> Après avoir installé les rôles nécessaire à active directory j'ai réalisé l’architecture des services de GSB ainsi qu'une UO « Visiteurs » où seront créées les OU et les comptes visiteurs par secteurs grâce au script PowerShell. Avant de s'attaquer au script pour importer les utilisateurs dans notre AD, il va falloir se rendre sous phpmyadmin et sur notre base de donnée de GSB. On sélectionnera la table « visiteurs » et on exportera les données depuis la base de données « gsb ». Script d’automatisation Les scripts ont pour but d’améliorer la productivité et de « simplifier » des tâches qui demanderaient normalement un temps considérable pour être réalisées. Dans notre cas plusieurs solutions pouvaient nous apporter les réponses à notre problématique de départ, qui est d’automatiser le transfert de données depuis une base de donnée vers des comptes (c’est-à-dire vers les comptes et les unité d’organisations de l’AD). Page 6 sur 10 GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> Il existe donc plusieurs moyen d’y répondre comme par exemple utiliser le script Batch ou PowerShell, de mon côté j’ai opté pour la solution de PowerShell. L’interface est accessible depuis le menu « rechercher » de Windows en tapant « PowerShell ». Précédemment nous avions exporter les données de « gsb » dans un fichier .csv, cependant le fichier tel quel n'est pas encore exploitable, quelques modifications manuelles vont être nécessaires afin de le rendre usuel. Des précautions sont à prendre quand on doit utiliser des scripts à l'aide de PowerShell. La syntaxe est très importante et les quelques fautes qui peuvent subsister dans notre code ainsi que dans notre fichier .csv peut apporter des erreurs. Comme on peut le constater ci-dessus, le prénom « Valérie » utilise l'accent aiguë qui n'est donc pas correctement transformé lors de l’importation du fichier de la base de donnée. 2.2 Serveur d'envoi de mail Pour réaliser l'installation du serveur d'envoi de mail, il faut se rendre sur le Windows Server, puis dans Fonctionnalités > Ajouter des fonctionnalités et choisir “Service SMTP”. Il suffit ensuite de le configurer en suivant les instructions présentent sur le site Microsoft et de les adapter à son environnement : https://msdn.microsoft.com/fr-fr/library/dn292550.aspx Pour tester le fonctionnement du serveur mail, j'ai décidé de simuler l'envoi de mail depuis Telnet. Après avoir regardé la syntaxe sur le web, j'ai préformaté le texte suivant pour réussir à envoyer un e-mail : MAIL FROM: [email protected] RCPT TO: [email protected] Page 7 sur 10 GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> DATA SUBJECT: TEST Ceci est un message de test envoyé depuis Windows Server 2008 Une fois cela réalisé, je suis aller dans le dossier inetpub > mailroot > Drop, puis j'ai ouvert le fichier avec le logiciel de messagerie Thunderbird. On y retrouve bien le contenu du message écrit ci-dessus : Page 8 sur 10 GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> Script d'automatisation pour la création d'utilisateurs issu d'une base de donnée Import-Module ActiveDirectory #---------------------------------------------#Ajouter des utilisateurs #---------------------------------------------- #On se synchronise avec le domaine de gsb-pitchou set-location $pathDev $csvImport = Import-Csv -Path ".\visiteurs.csv" -delimiter ";" foreach ($item in $csvImport) # début de la boucle : on lit chaque lignes de notre fichier CSV { if($item.secteurs -eq "NULL") { $secteur=$item.nomsec } else { { $secteur=item.secteur switch($secteur) "P"{$secteur="Paris centre"} "O"{$secteur="Ouest"} "S"{$secteur="Sud"} "E"{$secteur="Est"} "N"{$secteur="Nord"} } } } # Les variable prennent la valeur des lignes correspondantes dans le ficher csv $nom=$item.nom $prenom=$item.prenom $adresse=$item.adresse $codepostal=$item.codepostal $ville=$item.ville $dateembauche=$item.dateembauche $secteur=$item.secteur $codelabo=$item.codelabo $login=$prenom.substring(0,1)+$nom $init=$prenom.substring(0,1)+$nom.substring(0,1) $server="\\SRV-AD1\"#Création de la variable contenant le nom NetBios du serveur de fichier $HomeDirectory= $server + "home\" + $login# création d'une variable qui renvoie sur le chemin du répertoir personnel d'un utilisateur $profilePath=$server + "profils\" + $login# création d'une variable contenant le chemin d'accès à l'utilisateur # on test l'existence de l'OU visiteurs Page 9 sur 10 GSB Annuaire Active Directory Version: <1.0> Date: <jj/mm/aaaa> $domaine = "dc=gsb-pitchou,dc=local" $myADSI=[ADSI]"LDAP://$domaine" if(!([ADSI]::Exists("LDAP://OU=Visiteurs_GSB,OU=Services_GSB,$domaine"))) { # Creation de l'OU "visiteurs" si elle n'existe pas $myOU=$myADSI.Create("organizationalUnit","Visiteurs_GSB") $myOU.SetInfo() } if((Get-ADOrganizationalUnit -Filter {Name -eq $secteurs})-eq $null) { New-ADOrganizationalUnit -Name $secteurs -Path "OU=Visiteurs_GSB,OU=Services_GSB, $domaine" Write-Host "L'unité d'organisation "+$secteurs+" a été créée" } else { Write-Host "L'unité d'organisation "+$secteurs+" est déjà présente dans l'arborescence" } if((Get-ADGroup -Filter {Name -eq $secteurs}) -eq $null) { New-ADGroup $secteurs -GroupScope Global # Créer un nouveau groupe avec comme nom la variable } If((Get-ADUser -Filter {sAMAccountame -eq $nom +"."+ $prenom}) -eq $null) { New-ADUser -name $displayname -ChangePasswordAtLogon 1 -Path "OU=secteurs,OU=Visiteurs_GSB,OU=Services_GSB,DC=gsb-pitchou,DC=local" -Description $secteur -DisplayName $prenom" "$nom -Enabled $true -GivenName $prenom -SamAccountName $prenom"."$nom -Surname $nom -UserPrincipalName $prenom"."$nom"@gsb-pitchou.local" -AccountPassword (ConvertTo-SecureString "P@sww0rd" -AsPlainText -force) # Créer un compte utilisateur dans le domaine active directory dans la sous-OU secteurs et dans notre domaine gsb-pitchou Write-Host "l'utilisateur "$prenom"."$nom " a été créé" } else #sinon faire.. { Write-Host "l'utilisateur "$prenom"."$nom " est déjà créé" } #fin du if Add-ADGroupMember $secteur $prenom"."$nom Add-ADGroupMember -Identity "G_$secteur" -Member $prenom"."$nom Write-Host "intégration de "$prenom"."$nom" dans le groupe "$secteur"" } #Note : il faut bien que le script ci-contre soit dans le même dossier que le fichier csv des visiteurs Page 10 sur 10