Azure Files mit Active Directory Join

Wenn man ein lokales Active Directory oder Domain Controller in Azure verwendet, dann kann man Azure Files mit Active Directory Join verwenden.

Azure Files Konfiguration

Azure Files kann wie folgt eingerichtet werden:

  • Active Directory Domain muss bereits vorhanden sein und per VPN Gateway im Hub oder Spoke (alternativ als Server direkt im Spoke) erreichbar sein
  • Im Azure muss ein Storage Konto eingerichtet sein
    • es muss eine Freigabe eingerichtet sein
    • es muss ein Private Endpoint eingerichtet sein (Achtung - den DNS Namen des Private Endpoints niemals zum Zugriff auf den Share verwenden - man verwendet immer den Share Namen, da sonst Kerberos nicht funktioniert)
  • es muss eine privatelink.file.core.windows.net interne DNS Zone erstellt werden
    • es muss für jedes Storage Konto ein DNS A Eintrag auf den jeweiligen Private Endpoint erstellt werden
    • alternativ keins von beiden und ‘privatelink.file.core.windows.net’ als Bedingte Weiterleitung auf den Azure DNS - siehe im Script unten
  • es muss ‘file.core.windows.net’ mit Conditional Forward auf den Azure DNS zeigen - siehe im Script unten
  • Ablauf des Computerkonto Kennworts (eigene OU für die Storage Account Computerkonten) muss per GPO deaktiviert worden sein (Computerkonfiguration/Richtlinien/Windows Einstellungen/Sicherheitsoptionen/Lokale Richtlinien/Kennwortänderungen des Computerkontos deaktivieren = Aktiviert)

DNS Anfrage Schema

graph LR;
  A[DNS Anfrage auf den Storage Account] --> |Azure DNS| B(Storage Account A or CNAME)
  B -->|A| C[externe Service Endpoint IP Addresse - was wir nicht wollen!]
  B -->|CNAME| D(Storage Account CNAME)
  D --> |Anfrage an internen DNS| F[interne Service Endpoint IP Addresse - was wir wollen]

DNS Konfiguration

Der Azure DNS Server [168.63.129.16] wird im Active Directory eigenen DNS Server als Conditional Forwarder (Bedingte Weiterleitung) für die Domain ‘file.core.windows.net’ eingerichtet.

Script

Mit den folgenden Befehlen kann man den DNS anpassen und testen:

# Hier anpassen - Speicher Konto eintragen
$sa = "StorageAccount"
$storageAccountEndpoint = "$sa.privatelink.file.core.windows.net"

# Bedingte Weiterleitungen im DNS eintragen
Add-DnsServerConditionalForwarderZone -Name 'file.core.windows.net' -MasterServers "168.63.129.16"
Add-DnsServerConditionalForwarderZone -Name $storageAccountEndpoint -MasterServers "168.63.129.16"

# Testen der Namensauflösung
Resolve-DnsName -Name "$sa.file.core.windows.net"

# Testen des SMB Zugangs
Test-NetConnection -ComputerName "$sa.file.core.windows.net" -CommonTCPPort SMB