20 Dec 2024, 00:00

Notes sur Azure

Portail Azure

https://portal.azure.com

La colonne de gauche inclut Accueil, Tableau de bord et Tous les services.
Ensuite viennent les services favoris. On peut supprimer ces favoris dans “Tous les services -> Favoris”.
On peut ajouter des services aux favoris dans “Tous les services -> Tout” (ou Récent) en cochant l’étoile.

Facturation

L’organisation de la facturation dépend du type de contrat. Par exemple :
Microsoft Online Services Program
Enterprise Agreement
Microsoft Customer Agreement
etc…

Pour voir le type de contrat :

Portail Azure -> Cost Management + billing -> Billing Scopes
Le type de contrat est listé pour chaque billing scope (étendue de facturation)

https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/view-all-accounts

MCA

Le point de départ est le compte de facturation (billing account). C’est ici qu’est conclu le contrat de licence (MCA).
Un compte contient 1 ou plusieurs profils de facturation.

Chaque profil (Billing Profile) correspond à une facture. Il comprend notamment :

  • des informations de paiement (numéro CB)
  • 1 ou plusieurs sections de facturation (invoice section)

Un profil doit avoir un plan Azure pour utiliser des ressources Azure.
Si pas de plan Azure dans le profil, il sera impossible d’y créer un abonnement (subscription) Azure. Le plan est visible dans les Propriétés du profil de facturation.
Lorsque l’on crée un profil de facturation via Azure, il me semble que ça crée automatiquement un plan Azure (probablement Pas-as-you-go ?).
Pour ajouter un plan Azure à un profil pré-existant qui n’en a pas, essayer avec cette URL :
https://portal.azure.com/?createAzurePlan=true#view/Microsoft_Azure_SubscriptionManagement/SubscriptionCreateBlade

Chaque section de facturation contient 1 ou plusieurs “Subscriptions” (abonnements) et/ou autres produits d’azure marketplace

On peut facilement transférer une abonnement vers une autre section de facturation au sein du même profil.
Pour ceci, il faut rentrer dans l’aperçu (Overview) d’un abonnement en passant par le menu “All billing subscriptions”. Si on passe par le menu “Azure subscriptions” l’option ne sera pas disponible.
Une fois ouvert l’aperçu, on a, dans le menu en haut, l’option “Change -> Invoice section” qui permet de choisir une autre section de facturation au sein du même profil.

Un abonnement contient des groupes de ressources ;
qui contiennent eux-mêmes des ressources.

Le nom du “billing profile” sera visible sur la facture.
Les noms des “invoice sections” seront visible également

Il me semble que le nom du “billing account” n’est pas visible sur la facture.

On peut prendre un abonnement de support ; sinon, seulement un support pour la facturation mais pas de support technique.

Groupe de ressources

Un Groupe de ressources est un conteneur “logique” qui a pour but de réunir toutes le ressources qui peuvent être utilisées par un “projet”, une “solution”. Par exemple des VMs, du stockage, etc.

À la création, on l’associe à un abonnement, qui sera utilisé pour la facturation. On lui donne un nom, et on choisit sa localisation géographique.
On peut ensuite lui donner des “étiquettes”, avec chacune une valeur, qui sont des catégories.

Entra

Voir https://memo.raphaelguetta.fr/post/azure-entra

Azure files

Voir https://memo.raphaelguetta.fr/post/azure-files

GPO

Pour faire littéralement des GPO, il faut nécessairement un serveur virtuel !

https://learn.microsoft.com/fr-fr/entra/identity/domain-services/manage-group-policy

Sinon nous pouvons ne pas avoir de DC, et gérer les appareils avec Intune (endpoint manager ; Mobile Device management, soit MDM)
https://memo.raphaelguetta.fr/post/azure-intune

RBAC

Role-based Access Control
https://learn.microsoft.com/en-us/azure/role-based-access-control/overview
Un rôle contient 3 éléments :

  • le “security principal”, l’élement concerné par l’attribution de rôle (user/group/service principal/managed identity)
  • la définition de rôle, qui est un ensemble de permissions (R/W/delete/mofify/grant etc)
  • l’étendue (scope), qui définit l’ensemble de resosurces auxquelles s’applique ce rôle (groupe de gestion/abonnement/groupe de ressource/ressource)

L’assignation d’un rôle (role assignment) est l’action d’attacher une définition de rôle à un security principal .

ABAC

Attribute-based Access Control
https://learn.microsoft.com/en-us/azure/role-based-access-control/conditions-overview

12 Dec 2024, 00:00

Azure Files : authentification par Entra Kerberos

Généralités

L’authentification via Entra kerberos permet à un poste de s’authentifier sur Azure Files (ou autre application hébergée sur Azure) en ayant uniquement besoin d’être en lien avec internet (nécessité de pouvoir contacter certains noms de domaine publics appartenant à Microsoft).
Cette authentification passe par un ticket Kerberos émis par Azure, qui doit être récupéré par le poste client lors de la connexion utilisateur.

Elle repose sur une architecture hybride (utilisateurs existants sur un AD local qui sont synchronisés sur Entra via Entra Connect Sync).
Les postes utilisés pour accéder aux ressources Azure doivent également être en jonction hybride à Azure (donc joints au domaine local, puis joints à MS Entra). Une jonction simple à Entra, ou une jonction simple au domaine local, ne permettront pas l’authentification auprès des ressources cloud.

Il est nécessaire d’avoir une connectivité au DC local pour définir les autorisations NTFS sur les fichiers/dossiers du partage Azure Files.

Il est également nécessaire d’avoir une connectivité au DC local pour établir la jonction hybride d’un poste.
Il est aussi nécessaire d’avoir une connectivité au domaine local pour paramétrer le poste pour récupérer toutes les informations nécessaires à l’établissement de la connexion au partage réseau Azure Files.
Une fois cette connexion établie, on peut accéder au partage Azure Files sans connectivité au DC (à voir s’il faut renouveler le ticket Kerberos de temps en temps avec un dialogue avec le DC ?)

Présentation générale chez MS

Prérequis

  • il faut une synchronisation des utilisateurs locaux vers Entra via Entra Connect Sync (utilisateurs hybrides)
  • il faut une jointure hybride des postes à Entra
  • le compte de stockage Azure ne doit pas avoir d’autre méthode d’auth déjà activée (la désactiver si c’est le cas)
  • les services WinHttpAutoProxySvc et iphlpsvc doivent être en cours d’exécution (sur le poste client je suppose ? Ça devrait être le cas par défaut)
  • l’authentification multifacteurs (MFA) doit être désactivée pour l’appli Azure représentant le compte de stockage
  • l’OS client doit être Win 10 Pro/Entreprise v2004 ou ultérieure, ou Win Server 2022, complètement à jour (note : pour un serveur qui définit les droits, synchronise vers Entra, mais n’accède pas à des partages Azure, un Server 2016 est OK)

Activation de l’auth

Via le portail Azure

Comptes de stockage -> sélectionner le compte -> Stockage des données -> Partages de fichiers
À côté de “Accès basé sur l’identité”, choisir “Configurer” puis choisir “Microsoft Entra Kerberos”.

J’ai personnellement eu une erreur lors de l’activation en passant par le portail Azure (error : is not available with June21 api version alors je suis passé par Powershell.

Via Powershell

Si besoin :
Install-Module -Name Az.Storage
puis
Connect-AzAccount

Pour activer l’auth :

$rgname = "myressourcegroup"
$saname = "mystorageaccount"
Set-AzStorageAccount -ResourceGroupName $rgname -StorageAccountName $saname -EnableAzureActiveDirectoryKerberosForFile $true 

Si on fait ceci depuis un DC local, on peut extraire le nom de domaine local et le GUID de domaine local avec ces commandes :

$domainInformation = Get-ADDomain
$domainGuid = $domainInformation.ObjectGUID.ToString()
$domainName = $domainInformation.DnsRoot

et on peut alors ajouter ces arguments à la commande précédente :
-ActiveDirectoryDomainName $domainName -ActiveDirectoryDomainGuid $domainGuid

Autorisation de l’application

Étape indispensable

Aller sur Entra ID -> Identité -> Applications -> Inscription des applications
et choisir Toutes les applications

On doit y retrouver une application nommée “[Storage Account] mystorageaccount.file.core.windows.net”
On la sélectionne, puis on ouvre le menu “API autorisées”, et on y coche “Accorder un consentement d’administrateur pour Ma Super Entreprise”

Note : autorisations par défaut :
Microsoft Graph -> Autorisations déléguées :

  • openid
  • profile
  • User.Read

Configuration des clients

Pour rappel, le client doit être hybrid-joined à Entra après avoir été joint au domaine.

Il faut activer un paramètre autorisant la récupération des tickets Kerberos lors du login.
Ceci peut se faire via GPO, mais uniquement sur Server 2019 et ultérieur, via :
Config Ordi -> Stratégies -> Modèles d'administration -> Système -> Kerberos -> Autoriser la récupération du ticket Kerberos cloud lors de la connexion
Je suppose qu’il est possible d’importer le modèle kerberos.admx mais je ne l’ai pas fait.

Si on n’a pas de Server 2019+ dans le domaine, on peut le faire par une entrée de registre ; manuellement via :
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1
ou via une GPO qui ajoute une entrée de registre :
Config ordi -> Préférences -> Paramètres Windows -> Registre -> Nouvel Élément registre :

  • Update
  • HKLM
  • Chemin : SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
  • Nom : CloudKerberosTicketRetrievalEnabled
  • REG_DWORD
  • Valeur : 1

C’est également faisable via intune (voir doc MS).

Il est nécessaire de redémarrer pour appliquer ce paramètre.

une fois ceci fait (et un lecteur connecté ?), on devrait pouvoir voir le ticket Kerberos via la commande klist (à lancer en simple utilisteur et non admin).

Accès à des comptes de stockage Azure via une authentification AD locale

L’activation du paramètre pour Kerberos empêche l’accès par ces postes à un autre compte de stockage Azure, qui serait configuré avec l’authentification via AD locale.
S’il était nécessaire de faire cohabiter les 2, il faudra suivre ces étapes

10 Dec 2024, 00:00

Gestion des appareils avec Entra

Jonction avec Entra

Les appareils peuvent être enregistrés (Entra registered), joints (Entra joined) ou en jonction hybride (Entra hybrid-joined).

https://www.it-connect.fr/inscription-machines-entra-id-registered-joined-hybrid-joined/
https://learn.microsoft.com/en-us/entra/identity/devices/faq
https://learn.microsoft.com/en-us/entra/identity/devices/manage-stale-devices

Registered

https://learn.microsoft.com/en-us/entra/identity/devices/concept-device-registration

Si on ajoute un “Compte professionnel ou scolaire”, même sur un appareil perso, alors l’appareil apparaît dans Entra en tant que Registered. Il reste la “propriété” du son propriétaire de base.
Dans Entra ID, on voit la personne qui a ajouté le Compte pro ou scolaire. Si cette personne est supprimée d’Entra ID, le propriétaire sera défini à Aucun.

Si on supprime le “Compte professionnel” des paramètres de Windows, l’appareil disparaît d’Entra.

Lors du 1er lancement d’Office, si on refuse la gestion de l’appareil par la société (“Non, se connecter à cette application uniquement”), l’appareil n’apparait pas dans Entra, et le compte n’est pas référencé dans Accès pro ou scolaire.
Si on accepte la gestion, ça ajoute le compte pro/scolaire et inscrit l’appareil dans Entra.

Entra-joined

https://learn.microsoft.com/en-us/entra/identity/devices/concept-directory-join

L’appareil appartient à l’organisation, et est joint à Entra ID par un admin de l’organisation.
L’architecture administrative est complètement sur le cloud.
Ce mode permet l’accès aux ressources cloud, ainsi que locales.
Le paramétrage des appareils se fait avec un MDM, comme Intune.
Il faut Win Pro ou + (ou Server 2019+).

Pour joindre l’appareil à Entra, il faut aller dans “Compte professionnel ou scolaire”, puis au lieu de rentrer l’adresse mail, il faut sélectionner la proposition, en bas de la fenêtre (sous “Actions alternatives”), “Joindre cet appareil à Microsoft Entra ID”
(si cette proposition n’apparaît pas, c’est probablement un Windows Famille, ou alors l’ordi est déconnecté d’internet)

Le choix du compte qui établit la jonction définit si le poste est automatiquement inscrit dans Intune, ou non (par le réglage d’inscription d’Intune).

Il est impossible d’avoir un appareil qui soit Entra-joined et joint à un domaine ! L’application d’un mode de connexion empêche l’application du second (on aura un message d’erreur si on essaye). Pour avoir cette configuration, il faut faire une jonction hybride.

Entra hybrid-joined

Ce sont les appareils qui sont joints au domaine local, et également “joints” à Entra ID.
le point de départ est la connexion au domaine local. Puis ce domaine doit être configuré pour permettre une jonction hybride (plusieurs méthodes possibles).
Une fois ceci fait, les postes concernés récupéreront automatiquement la connexion à Entra ID.

https://memo.raphaelguetta.fr/post/entra-hybrid-joined

dsregcmd

La commande dsregcmd permet de diagnostiquer le statut et les problèmes de connexion à Entra ID.

On peut ajouter le flag /debug à chaque paramètre pour avoir plus d’infos.

Le flag /forcerecovery force à se reconnecter.

dsregcmd /status permet de voir le statut de connexion actuel de l’appareil. Un article chez MS donne des informations sur chacun des champs, mais j’en liste ici quelques-uns qui me semblent importants.

Sous"Device State", tout en haut :

  • AzureAdJoined permet de dire s’il est joint à Entra (si YES, il sera donc joined ou hybrid-joined)
  • EnterpriseJoined correspond à Workplace Joined, je n’explore pas cette possibilité
  • DomainJoined correspond à un domaine local (si YES, il sera donc joint uniquement au domaine, ou bien hybrid-joined)

Sous"User State" :

  • NgcSet correspond à l’utilisation de Windows Hello
  • WorkplaceJoined correspond à la présence d’un Compte Professionnel ou scolaire (et le nombre est en dessous, WorkAccountCount)

Sous “Device Details”, on peut trouver l’ID de l’appareil, que l’on retrouvera dans Entra ID (sous ID de l’appareil, et non ID de l’objet).
“Device Details” n’apparaît que si l’appareil est (hybrid-)joint à Entra.
“DeviceAuthStatus” doit être à SUCCESS, sinon c’est qu’il y a un problème au niveau de son enregistrement sur Entra ID.

Sous “Tenant Details”, on voit les détails du tenant Entra (notamment son ID, que l’on retrouve sur la page d’accueil d’Entra).
On y voit aussi MdmUrl, à voir si c’est utile pour la confguration d’Intune ?

Défaire la jonction

Paramètres -> Comptes -> Accès professionnel ou scolaire -> Connecté par xx@xx -> Déconnecter
Ça exige d’avoir un compte admin local auquel on peut se connecter.

On peut aussi défaire la jonction en invite de commande en admin :
dsregcmd /debug /leave
Attention, il n’y a pas de garde-fou, il faut avoir accès à un compte hors de l’organisation pour ouvrir une session après le redémarrage !
Si il n’y avait pas de compte admin, un identifiant de l’organisation sera proposé au redémarrage, sans possibilité de changer, et le mot de passe ne fonctionnera pas.
En ce cas, on peut essayer de réactiver le compte Administrateur, par exemple avec chntpw.

L’appareil disparaîtra d’Entra et Intune.

Admin locaux des appareils

https://learn.microsoft.com/en-us/entra/identity/devices/assign-local-admin

Selon le paramétrage d’Entra, l’utilisateur effectuant la jonction sera admin local du poste, ou non.
Ceci se paramètre dans
Entra admin center -> Entra ID -> Devices -> Overview -> Manage settings
et activer “Registering user is added as local administrator on the device during Microsoft Entra join (Preview)”.
À noter que l’utilisateur sera supprimé du groupe Local admins si la jonction à Entra est supprimée.

De plus, les utilisateurs avec les rôles Entra suivants :

  • “Global Admin”
  • “Entra Joined Device Local Administrator”
    auront également les droits admin lorsqu’ils ouvrent une session sur un poste (quel que soit le poste, on ne peut pas filtrer par ce mécanisme).
    Les modifications sur les membres de ces groupes seront bien effectives, même sur des postes qui ont été joints auparavant (il y’a bien sûr un délai de synchro nécessaire, qui peut aller jusqu’à 4h selon la doc MS).
    Si on révoque le rôle Local Admin d’un utilisateur, celui-ci le conserve tant que sa session reste ouverte. À sa prochaine ouverture de session, il ne les aura plus (si la révocation a été synchro sur les serveurs Entra)

On peut voir ces affectations dans netplwiz.
On voit l’utilisateur qui a fait la jonction directement dans les utilisateurs de l’ordinateur.
Si on va dans
lusrmgr.msc -> Groupes -> Administrateurs
on voit les SID, qui correspondent aux rôles Entra d’admin.

Vérification des SID

https://niklastinner.medium.com/convert-entra-roles-to-sids-132d93ea21fc
https://blog.piservices.fr/post/2023/10/28/azure-ad-convertir-un-guid-azure-ad-en-sid-en-utilisant-powershell

Le SID que l’on voit dans Windows n’est pas visible dans Entra. Si on veut vérifier les SID, il faut récupérer l’id du rôle Entra, puis le convertir en SID via un script que des personnes merveilleuses ont écrit et mis à dispo.

Pour récupérer l’id du rôle, aller sur MS Graph Explorer
Se connecter avec un compte ayant les droits d’accès corrects
Exécuter la requête GET sur https://graph.microsoft.com/v1.0/directoryRoles/
Dans le résultat, chercher (Ctrl-F) le rôle en question (par exemple en cherchant “device”).

Une fois trouvé, on copie l’ID, et on le colle dans le script suivant, dans la variable $objectId
On exécute le script via Powershell, et ça nous donne le SID Windows correspondant.

function Convert-AzureAdObjectIdToSid {
<#
.SYNOPSIS
Convert an Azure AD Object ID to SID
  
.DESCRIPTION
Converts an Azure AD Object ID to a SID.
Author: Oliver Kieselbach (oliverkieselbach.com)
The script is provided "AS IS" with no warranties.
  
.PARAMETER ObjectID
The Object ID to convert
#>
 
    param([String] $ObjectId)
 
    $bytes = [Guid]::Parse($ObjectId).ToByteArray()
    $array = New-Object 'UInt32[]' 4
 
    [Buffer]::BlockCopy($bytes, 0, $array, 0, 16)
    $sid = "S-1-12-1-$array".Replace(' ', '-')
 
    return $sid
}
 
$objectId = "73d664e4-0886-4a73-b745-c694da45ddb4"
$sid = Convert-AzureAdObjectIdToSid -ObjectId $objectId
Write-Output $sid

05 Dec 2024, 00:00

Faire une jonction hybride à Entra

Généralités

https://learn.microsoft.com/en-us/entra/identity/devices/troubleshoot-hybrid-join-windows-current

La jonction hybride ne peut se faire que lorsque le poste est déjà joint à un domaine.

Plusieurs possibilités existent pour établir cette jonction. Celle décrite en méthode principale par MS va concerner l’ensemble des postes de la forêt. Elle se fait via Entra Connect Sync, avec une configuration complémentaire (facultative pour la synchro des users/passwords, mais obligatoire pour la jonction hybride généralisée).

Prérequis

En tous les cas, il faudra :

  • une synchro des utilisateurs/passwords via Entra Connect Sync
  • les droits Administrateur d’entreprise pour la forêt locale
  • l’autorisation des utilisateurs de joindre leur machine à Entra ID (c’est un paramètre sur l’annuaire Entra)
  • l’accès à certaines URLs Microsoft (voir les détails chez MS ; en l’absence de proxy/firewall/DPI ça ne devrait pas être un souci)

Le paramétrage de la jonction hybride passe par la création d’un point de connection de service (SCP).

Jonction manuelle et contrôlée

Permet de déployer la jonction hybride sur seulement les OU choisies, à fins de test.

https://learn.microsoft.com/en-us/entra/identity/devices/hybrid-join-manual

https://learn.microsoft.com/en-us/entra/identity/devices/hybrid-join-control

Dans mon cas, j’avais déjà activé le SCP via Entra connect Sync avant de le faire manuellement ; si les étapes suivantes ne suffisent pas, peut-être que d’autres étapes, automatisées par Entra Connect Sync sont nécessaires.

Supprimer le SCP si déjà existant

Il faut s’assurer que le SCP est absent de la configuration du DC local.
Pour ceci, lancer la modification ADSI adsiedit.msc et naviguer dans :

  • “Configuration [dcname.domain.com]”
  • “CN=Configuration,DC=domain,DC=com”
  • “CN=Services”
  • “CN=Device Registration Configuration”
  • clic-droit sur “CN=62a0ff2e-97b9-4513-943f-0d221bd30080” -> “Propriétés” -> “Éditeur d’attributs”
  • trouver, si elles existent, les valeurs azureADId et azureADName
  • sur chacune d’elles, si elles existent, Modifier -> Supprimer

Déployer les entrées de registre sur les postes clients

Il est nécessaire de déployer les valeurs “TenantId” et “TenantName” sous la clé “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ\AAD” .

Pour ceci, on passe par une GPO :

  • Config ordi -> Préférences -> Paramètres Windows -> Registre -> Nouvel élément registre (à faire 2 fois)
  • Update
  • HKLM
  • Chemin d’accès : SOFTWARE\Microsoft\Windows\CurrentVersion\CDJ\AAD
  • Nom de valeur : TenantId et TenantName
  • Type : REG_SZ
  • Valeur : l’ID du tenant (trouvable sur la page d’accueil d’Entra) et le nom de tenant (type monentreprise.onmicrosoft.com , ou utiliser un domaine personnalisé qui a été validé sur MS)

Finalisation

Il faut ensuite attendre (ou déclencher) la synchro Entra Connect Sync (après avoir déployé les clés de registre sur le client). Il apparaîtra dans Entra en tant que “En attente” (Pending).
On peut alors redémarrer le poste pour finaliser la jonction hybride, ou le faire manuellement en administrateur avec la commande dsregcmd /debug /join.
Le poste sera alors considéré comme “hybrid-joined” dans Entra ID avec une date d’inscription.
Cette entrée devrait remplacer l’entrée précédente de type “registered” si elle était présente. On perd également l’information sur la personne qui a joint son compte MS (on le voyait en registered, on ne le voit plus en hybrid-joined). Je suppose qu’on peut retrouver cette info avec Intune.

Si ce n’était pas le cas :

  • vérifier que la synchronisation Entra Connect Sync a bien été effectuée récemment, sans erreur
  • attendre suffisamment longtemps pour que l’ensemble serveur/client/Entra soit dans le même état (peut prendre 30 minutes)
  • vérifier dans Entra -> Appareils que l’appareil est bien présent ; si son type de jointure est “hybrid-joined”, vérifier que son état “Inscrit” est bien une date, et non “En attente”
  • s’il est “En attente”, essayer de redémarrer le client, ou lancer dsregcmd /debug /join
  • vérifier avec dsregcmd /status s’il y a d’éventuelles erreurs

Suppression de la jonction

Pour sortir définitivement un poste d’Entra ID, je n’ai pas trouvé d’autre solution que de quitter le domaine puis le joindre à nouveau.

Pour quitter la jonction hybride, il faut entrer dans une invite de commande en administrateur et lancer la commande :
dsregcmd /debug /leave
Cette commande met quelques secondes à aboutir, et l’appareil se retrouve instantanément déconnecté (visible dans le résultat de dsregcmd /status).

Tant que les clés de registre TenantId et TenantName restent présentes, il est toujours possible de re-joindre Entra en entrant dsregcmd /debug /join.
Si on les supprime, la jonction hybride ne fonctionnera plus.

Ceci a également pour effet de supprimer complètement l’appareil de Entra ID. Toutefois, si Entra Connect Sync continue de fonctionner sur le serveur, cet appareil sera re-synchronisé à la prochaine sync en tant que hybrid-join, et en “Pending”. Ça semble être lié à son objectGUID.
Pour qu’il ne soit plus du tout synchronisé, il faut sortir le poste du domaine, puis supprimer le compte Ordinateur sur le DC, puis re-joindre le domaine. La nouvelle entité aura un objectGUID différent, ce qui lui permettra de ne pas être considéré comme hybrid-join lorsqu’il est synchronisé.

Dépannage

https://learn.microsoft.com/en-us/entra/identity/devices/troubleshoot-hybrid-join-windows-current

Suppression accidentelle du poste dans Entra ID

Si un poste est supprimé dans Entra ID sans défaire la jonction avant, celui-ci se pensera toujours hybrid-joined, mais pas Entra ID.
Il réapparaîtra dans Entra ID au cours de la prochaine synchro, mais restera en l’état “Pending”.
Pour être réellmeent ré-enregistré, il est nécessaire de faire dsregcmd /debug /leave puis dsregcmd /debug /join (qui nécessitera une connectivité au DC).
À voir si ça peut être automatisé via GPO ?

20 Nov 2024, 00:00

Azure files - Authentification via AD DS local

Préalables

https://learn.microsoft.com/fr-fr/azure/storage/files/storage-files-identity-ad-ds-enable

Ces paramètres s’activeront sur tous les partages du compte.

Conditions :

  • nécessite un DC (on-prem ou éventuellement en VM ; ici on-prem)
  • nécessite une connectivité permanente des clients au DC
  • supporte uniquement les hybrid-users (donc synchro depuis le DC vers Entra ID)
  • 1 seule forêt
  • accorde des droits uniquement aux Users, pas aux Computers
  • avoir accès à une machine jointe au domaine et sur le même réseau que le DC

Il semble possible de monter le partage depuis une machine non-jointe au domaine.

Il faut vérifier que le compte de stockage n’a pas déjà une source d’AD configurée ; si oui, il faut d’abord la désactiver.

Activation

Il faut inscrire le compte de stockage en tant que Computer (ou service logon account) sur l’AD local.

Installation des modules

On utilise le module AzFilesHybrid qui automatise une partie du processus. Des instructions pour le faire manuellement sont disponibles sur la page chez MS.

Téléchargement du module sur cette page Github

On dézippe les fichiers, et on les installe avec .\CopyToPSPath.ps1 (devrait les mettre dans %username%\Documents\WindowsPowerShell\Modules\ )

Lors de l’import Import-Module AzFilesHybrid , j’ai du installer PowershellGet, et donc lancer la commande en tant qu’admin.
Au lancement suivant, il m’a proposé d’installer 2 autres modules nécessaires, Az et Az.storage.
On peut aussi les installer manuellement avec install-module Az -AllowClobber (AllowClobber permet de forcer l’installation, même si ce module existe déjà dans le système mais en version différente).

Il faut aussi le module “ActiveDirectory” , qui s’installe avec les RSAT (Remote Server Administration Tools).
Pour les installer, on peut les télécharger, ou passer par l’ajout de fonctionnalités Windows dans “Programme et fonctionnalités, ou passer par Powershell.
Pour ceci, en admin, on peut déjà vérifier ce qui est installé :
Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property DisplayName, State
et on regarde la colonne “State”.

On installe :
Add-WindowsCapability –Online –Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0"
puis
Import-Module ActiveDirectory

Activation

Il faut Powershell 5.1 ! Ne semble pas fonctionner avec les versions plus récentes, comme la 7.

Il faut faire les manipulations depuis un poste joint au domaine, et depuis un utilisateur avec au minimum les rôles Azure “Lecteur” sur le groupe de resources (contenant le compte de stockage) et “Contributeur” sur le compte de stockage.
Si on est Owner ou Contributeur sur l’abonnement Azure, ça devrait être OK.
Il faut aussi avoir le droit de créer des objets sur l’AD local.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
Import-Module -Name AzFilesHybrid
Connect-AzAccount
$SubscriptionId = "<your-subscription-id-here>"
$ResourceGroupName = "<resource-group-name-here>"
$StorageAccountName = "<storage-account-name-here>"
$SamAccountName = "<sam-account-name-here>"
(SamAccountName est le nom du “Computer” qui VA être créé sur l’AD ; max 15 caractères)

Select-AzSubscription -SubscriptionId $SubscriptionId

Join-AzStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -SamAccountName $SamAccountName
(pour cette étape, il est nécessaire d’être connecté au DC)

Le compte Computer sur l’AD est désormais créé.

Si besoin de débuguer l’accès, on peut lancer cette commande :
Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose
qui permettra notamment d’avoir l’info du type d’auth actuellement activé sur ce compte de stockage.

Droits sur le partage

Portail Azure -> Partage en question -> IAM -> Ajouter -> une attribution de rôle
Rechercher “SMB” et choisir “Collaborateur de pargae SMB” (pour ceux qui doivent simplement travailler sur les fichiers du partage)
Choisir “Utilisateur, Groupe ou UPN” puis choisir l’utilisateur ou le groupe en question (issu de l’AD)

27 May 2024, 00:00

Azure et Powershell

Ensemble de modules Az

https://learn.microsoft.com/en-us/powershell/azure/install-azps-windows

Install-Module -Name Az -Repository PSGallery -Force

Va installer plein de sous-modules

Module Azure AD

Install-Module -Name AzureAD
Connect-AzureAD

Module Azure Storage

Install-Module -Name Az.Storage
Connect-AzAccount

Gestion des utilisateurs

Désactiver l’expiration du password pour 1 utilisateur

$mail = "testcloud@escda.fr"
Set-AzureADUser -ObjectId $mail -PasswordPolicies DisablePasswordExpiration

27 May 2024, 00:00

Azure Files Sync

Présentation

Présentation chez MS
Planification
Guide de déploiement

Fonctionne par groupe de synchronisation (sync group), qui associe un/plusieurs point(s) de terminaison local (server endpoint : le chemin sur le serveur) et un point de terminaison distant (cloud endpoint : un partage Azure Files).
Pass par l’installation d’un agent sur chaque serveur à configurer (supporté à partir de Server 2016, ou 2012R2 avec Windows Management Framework).

Sur le serveur, il est nécessaire que le lecteur soit en accès direct (propriétaire du filesystem), et en NTFS.
Les liens durs et symboliques seront ignorés.

L’accès par clé doit être activé sur le compte de stockage.

Les données seront synchro en bi-directionnel ; toutefois, la propagation cloud -> serveurs locaux sera plus lente que le sens inverse (“This is because Azure Files today lacks an efficient change detection mechanism like Windows Server has, so changes to the Azure file share directly will take time to propagate back to the server endpoints”).
En gros une tâche planifiée (“change detection job”) est déclenchée toutes les 24h, l’agent va alors scanner tous les fichiers et détecter les changements.

Il faut déployer un “Storage Sync Service”.
Un serveur ne peut faire partie que d’un seul “Storage sync Service”. MS conseille globalement d’utiliser un seul SSS.

Maximum 30 partages par serveur.

Mise en place de l’infrastructure

Préparation du serveur

Sur chaque serveur sur lequel l’agent de sync sera installé, désactiver “Internet Explorer Enhanced Security Configuration”.
Gestionnaire de serveur -> Serveur local -> Section “Proprietés” -> Configuration de sécurité renforcée d’IE -> les 2 à Non

Création du Storage Sync Service (SSS)

Azure portal -> Create ressource
chercher “Azure File Sync” -> Create
Choisir l’abonnement Azure ; choisir le groupe de ressources concerné ; donner un nom ;
Le réseau devrait être ok par défaut; Valider la création.

Installation de l’agent de synchronisation

Télécharger ici le paquet correspondant à la version du serveur.
Install classique.
Sera installé dans le dossier : C:\Program Files\Azure\StorageSyncAgent\
Peut être configuré pour utiliser Windows Update.

Inscription du serveur auprès du service de sync

Il faut avoir les rôles Owner ou Contributor sur le SSS.

Au lancement de l’interface Azure Files Sync, il est demandé d’inscrire le serveur. On choisit “AzureCloud”, on se connecte, et on sélectionne la bonne ressource.
Si l’interface ne se lance pas, lancer C:\Program Files\Azure\StorageSyncAgent\ServerRegistration.exe

On peut alors le voir sur le portail Azure, sur la ressource SSS, dans “Sync -> Registered servers”

Création du groupe de synchro

Un groupe de synchro équivaut à un dossier cloud.
Il faut faire la suite pour chaque nouveau groupe de synchronisation.

Azure Portal -> trouver la ressource (par exemple via le groupe de ressource, ou le menu de service “Storage Sync Services”

Sync -> Sync groups -> Create sync group
On donne un nom, on choisit l’abonnement, le compte de stockage, le partage Azure
Le groupe de synchro est alors créé, mais n’a aucun “server endpoint”

Création du point de terminaison serveur

Il faut maintenant créer un SEP (Server EndPoint).
À faire sur chacun des serveurs qui sera dans le groupe de synchro.
Attention, le choix du lecteur et du chemin sur le serveur est définitif ! Il ne pourra pas être modifié par la suite.

Ouvrir le groupe de synchro -> Add server endpoint
Choisir le serveur
Entrer le chemin local des données à synchroniser (avec la lettre de lecteur)
Activer si besoin le cloud tiering

Initial sync : uniquement disponible pour le 1e serveur que l’on synchronise.
MS conseille de conserver “Merge” dans la majorité des cas, même si la source ou la destination est vide.

Initial download : aucun impact si le partage est vide.
“Namespace first, then content” semble adapté pour avoir toutes les données en local.
Ne pourra pas être changé par la suite !

On peut alors valider ; ça va créer le SEP, et la synchro sera déclenchée quelques temps plus tard.

Forcer la synchro

On peut forcer la synchro depuis le cloud vers le serveur avec la commande Invoke-AzStorageSyncChangeDetection.
https://learn.microsoft.com/en-us/powershell/module/az.storagesync/invoke-azstoragesyncchangedetection

On définit nos ressources :

$rgname = "myressourcegroup"  
$sss = "mysyncservice"  
$sgname = "mysyncgroup"

Ensuite, on récupère le GUID du point de terminaison cloud :

$cep = (Get-AzStorageSyncCloudEndpoint -ResourceGroupName $rgname -StorageSyncServiceName $sss -SyncGroupName $sgname).CloudEndpointName

puis on force la synchro :

Invoke-AzStorageSyncChangeDetection -ResourceGroupName $rgname -StorageSyncServiceName $sss -SyncGroupName $sgname -Name $cep

Dépannage

https://learn.microsoft.com/en-us/troubleshoot/azure/azure-storage/files/file-sync/file-sync-troubleshoot-sync-errors

Décommissioner un serveur

https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-server-endpoint-delete

Si on veut retirer un serveur, il faut d’abord s’assurer que tous ses changements on bien été transférés vers le cloud.
Observateur d'evts -> Journaux des applications et services -> Microsoft -> File Sync -> Agent -> Telemetry
Chercher un evt 9102 récent.

Autres indications sur le portail Azure :
Storage accounts -> file share -> used size
SSS -> Sync group

  • 0 persistent sync error
  • server endpoint -> sync status
  • Upload et Download ont des timestamps récents

Pour être sûrs que des nouvelles données ne soient plus écrites sur le serveur, on désactive le partage réseau du serveur.
ATTENTION, ne pas modifier les droits d’accès sur le serveur pour empêcher l’accès, sinon cette modification sera répliquée sur Azure.
S’il n’est pas possible de supprimer le partage (par exemple plusieurs dossiers partagés sous un seul chemin), il faudra changer le chemin d’accès sur le serveur (par ex. renommer le dossier) à la fin de la manip.

On peut alors supprimer le “server endpoint”, puis le “cloud endpoint”, puis le groupe de synchro.

Powershell

cd 'C:\Program Files\Azure\StorageSyncAgent'
Import-Module -Name .\StorageSync.Management.ServerCmdlets.dll/subscriptions/114f9a3c-73d1-4aa8-bf49-16617988e42a/resourceGroups/GroupeRessourcesESCDA/providers/Microsoft.StorageSync/storageSyncServices/ServiceSynchroFichiers/registeredServers/6a7b6254-cfb5-438e-9189-0f011cbb5b1f