Aktivieren der AD DS-Authentifizierung für Azure-Dateifreigaben

In diesem Artikel wird der Prozess zum Aktivieren der Active Directory Domain Services-Authentifizierung (AD DS) für Ihr Speicherkonto beschrieben, um lokale AD-Anmeldeinformationen (Active Directory) für die Authentifizierung bei Azure-Dateifreigaben zu verwenden.

Wichtig

Stellen Sie vor der Aktivierung der AD DS-Authentifizierung sicher, dass Sie die unterstützten Szenarien und Anforderungen im Übersichtsartikel verstehen und die erforderlichen Voraussetzungen erfüllen. Wenn Ihre Active Directory-Umgebung mehrere Gesamtstrukturen umfasst, finden Sie weitere Informationen unter Verwenden von Azure Files mit mehreren Active Directory-Gesamtstrukturen.

Sie müssen Ihr Azure-Speicherkonto bei der lokalen AD DS-Instanz registrieren und dann die erforderlichen Domäneneigenschaften für das Speicherkonto festlegen, um die AD DS-Authentifizierung über SMB für Azure-Dateifreigaben zu aktivieren. Zum Registrieren Ihres Speicherkontos bei AD DS erstellen Sie ein Computerkonto (oder Dienstanmeldekonto), durch das es in Ihrer AD DS-Instanz dargestellt wird. Dieser Prozess ähnelt dem Erstellen eines Kontos, das einen lokalen Windows-Dateiserver in Ihrer AD DS-Instanz darstellt. Wenn das Feature für das Speicherkonto aktiviert ist, gilt es für alle neuen und vorhandenen Dateifreigaben im Konto.

Gilt für:

Dateifreigabetyp SMB NFS
Standard-Dateifreigaben (GPv2), LRS/ZRS Yes No
Standard-Dateifreigaben (GPv2), GRS/GZRS Yes No
Premium-Dateifreigaben (FileStorage), LRS/ZRS Yes No

Das PowerShell-Modul „AzFilesHybrid“ bietet Cmdlets zum Bereitstellen und Konfigurieren von Azure Files. Es enthält Cmdlets für den Domänenbeitritt von Speicherkonten zu Ihrem lokalen Active Directory und zum Konfigurieren Ihrer DNS-Server. Die Cmdlets nehmen die erforderlichen Änderungen vor und aktivieren das Feature für Sie. Da einige Teile der Cmdlets mit Ihrer lokalen AD DS-Instanz interagieren, wird hier erläutert, was die Cmdlets genau tun, damit Sie bestimmen können, ob die Änderungen mit Ihren Compliance- und Sicherheitsrichtlinien konform sind, und dafür sorgen können, dass Sie über die erforderlichen Berechtigungen zum Ausführen der Cmdlets verfügen. Obwohl wir die Verwendung des AzFilesHybrid-Moduls empfehlen, bieten wir manuelle Schritte an, wenn Sie dies nicht können.

Wichtig

Die AES-256 Kerberos-Verschlüsselung ist jetzt die einzige Verschlüsselungsmethode, die vom AzFilesHybrid-Modul unterstützt wird. Wenn Sie die RC4-Verschlüsselung bevorzugen, lesen Sie Option zwei: Manuelles Ausführen der Aktivierungsaktionen. Wenn Sie zuvor die Funktion mit einer AzFilesHybrid-Version (unter v0.2.2) aktiviert haben, welche RC4 als Standardverschlüsselungsmethode verwendet hat, und ein Update durchführen möchten, um AES-256 zu unterstützen, lesen Sie bitte die Problembehandlung der Azure Files-Authentifizierung.

Voraussetzungen

  • Wenn .NET Framework 4.7.2 oder höher nicht installiert ist, installieren Sie es jetzt. Dies ist für das AzFilesHybrid-Modul erforderlich, um erfolgreich zu importieren.
  • Stellen Sie sicher, dass bei Ihnen Azure PowerShell (Az-Modul) und Az.Storage installiert sind. Sie benötigen mindestens Az.PowerShell 2.8.0+ und Az.Storage 4.3.0+, um AzFilesHybrid verwenden zu können.
  • Installieren sie das Modul Azure Directory PowerShell.

Herunterladen des AzFilesHybrid-Moduls

Laden Sie die neueste Version des AzFilesHybrid-Moduls herunter und entpacken Sie sie.

Ausführen von „Join-AzStorageAccount“

Mit dem Cmdlet Join-AzStorageAccount wird die Entsprechung eines Offlinedomänenbeitritts im Auftrag des angegebenen Speicherkontos durchgeführt. Im nachstehenden Skript wird dieses Cmdlet verwendet, um ein Computerkonto in Ihrer AD-Domäne zu erstellen. Wenn Sie aus irgendeinem Grund kein Computerkonto verwenden können, können Sie das Skript ändern, um stattdessen ein Dienstanmeldekonto zu erstellen. Die Verwendung der AES-256-Verschlüsselung mit Dienstanmeldekonten wird ab AzFilesHybrid-Version 0.2.5 unterstützt.

Das vom Cmdlet erstellte AD DS-Konto repräsentiert das Speicherkonto. Wenn das AD DS-Konto unter einer AD-Organisationseinheit (OE) erstellt wird, die einen Kennwortablauf erzwingt, müssen Sie das Kennwort vor Erreichen des maximalen Kennwortalters aktualisieren. Wenn Sie das Kontokennwort nicht vor diesem Datum aktualisieren, führt dies beim Zugriff auf Azure-Dateifreigaben zu Authentifizierungsfehlern. Weitere Informationen zum Aktualisieren des Kennworts finden Sie unter Aktualisieren des Kennworts für das AD DS-Konto.

Wichtig

Mit dem Cmdlet Join-AzStorageAccount wird ein AD-Konto erstellt, das das Speicherkonto (die Dateifreigabe) in AD darstellt. Sie können sich wahlweise als Computerkonto oder Dienstanmeldekonto registrieren. Einzelheiten finden Sie unter Häufig gestellte Fragen. Kennwörter für Dienstanmeldekonten können in AD ablaufen, wenn bei ihnen ein standardmäßiges Kennwortablaufalter für die AD-Domäne oder OE festgelegt wurde. Weil Änderungen des Kennworts für das Computerkonto vom Clientcomputer und nicht von AD gesteuert werden, laufen sie in AD nicht ab, obwohl Clientcomputer ihre Kennwörter standardmäßig alle 30 Tage ändern. Für beide Kontotypen empfehlen wir, das konfigurierte Kenntwortablaufalter zu überprüfen und eine Aktualisierung des Kennworts Ihrer Speicherkontoidentität für das AD-Konto zu planen, bevor das maximale Kennwortalter erreicht wird. Sie können in Erwägung ziehen, eine neue AD-Organisationseinheit in AD zu erstellen und die Richtlinie zum Ablauf des Kennworts für Computerkonten oder Dienstanmeldekonten entsprechend zu deaktivieren.

Sie müssen das nachstehende Skript in PowerShell 5.1 auf einem Gerät mit Domäneneinbindung in Ihre lokale AD DS-Umgebung unter Verwendung von lokalen AD DS-Anmeldeinformationen ausführen, die über Berechtigungen zum Erstellen eines Computerkontos oder eines Dienstanmeldekontos im Ziel-AD verfügen (z. B. als Domänenadministrator). Um das Prinzip der geringsten Rechte befolgen zu können, müssen die lokalen AD DS-Anmeldeinformationen über die folgenden Azure-Rollen verfügen:

  • Leser für die Ressourcengruppe, in der sich das Zielspeicherkonto befindet.
  • Mitwirkender für das Speicherkonto, das AD DS hinzugefügt werden soll.

Wenn das zum Hinzufügen des Speicherkontos in AD DS verwendete Konto ein Besitzer oder Mitwirkender in dem Azure-Abonnement ist, in dem sich die Zielressourcen befinden, ist dieses Konto bereits zur Durchführung des Beitritts aktiviert, und weitere Zuweisungen sind nicht erforderlich.

Die AD DS-Anmeldeinformationen müssen auch über Berechtigungen zum Erstellen eines Computerkontos oder eines Dienstanmeldekontos in der AD-Zielumgebung verfügen. Ersetzen Sie die Platzhalterwerte vor dem Ausführen des Skripts durch Ihre eigenen.

# Change the execution policy to unblock importing AzFilesHybrid.psm1 module
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

# Navigate to where AzFilesHybrid is unzipped and stored and run to copy the files into your path
.\CopyToPSPath.ps1 

# Import AzFilesHybrid module
Import-Module -Name AzFilesHybrid

# Login to Azure using a credential that has either storage account owner or contributor Azure role 
# assignment. If you are logging into an Azure environment other than Public (ex. AzureUSGovernment) 
# you will need to specify that.
# See https://learn.microsoft.com/azure/azure-government/documentation-government-get-started-connect-with-ps
# for more information.
Connect-AzAccount

# Define parameters
# $StorageAccountName is the name of an existing storage account that you want to join to AD
# $SamAccountName is the name of the to-be-created AD object, which is used by AD as the logon name 
# for the object. It must be 15 characters or less and has certain character restrictions.
# Make sure that you provide the SamAccountName without the trailing '$' sign.
# See https://learn.microsoft.com/windows/win32/adschema/a-samaccountname for more information.
$SubscriptionId = "<your-subscription-id-here>"
$ResourceGroupName = "<resource-group-name-here>"
$StorageAccountName = "<storage-account-name-here>"
$SamAccountName = "<sam-account-name-here>"
$DomainAccountType = "<ComputerAccount|ServiceLogonAccount>" # Default is set as ComputerAccount
# If you don't provide the OU name as an input parameter, the AD identity that represents the 
# storage account is created under the root directory.
$OuDistinguishedName = "<ou-distinguishedname-here>"
# Encryption method is AES-256 Kerberos.

# Select the target subscription for the current session
Select-AzSubscription -SubscriptionId $SubscriptionId 

# Register the target storage account with your active directory environment under the target OU 
# (for example: specify the OU with Name as "UserAccounts" or DistinguishedName as 
# "OU=UserAccounts,DC=CONTOSO,DC=COM"). You can use this PowerShell cmdlet: Get-ADOrganizationalUnit 
# to find the Name and DistinguishedName of your target OU. If you are using the OU Name, specify it 
# with -OrganizationalUnitName as shown below. If you are using the OU DistinguishedName, you can set it 
# with -OrganizationalUnitDistinguishedName. You can choose to provide one of the two names to specify 
# the target OU. You can choose to create the identity that represents the storage account as either a 
# Service Logon Account or Computer Account (default parameter value), depending on your AD permissions 
# and preference. Run Get-Help Join-AzStorageAccountForAuth for more details on this cmdlet.

Join-AzStorageAccount `
        -ResourceGroupName $ResourceGroupName `
        -StorageAccountName $StorageAccountName `
        -SamAccountName $SamAccountName `
        -DomainAccountType $DomainAccountType `
        -OrganizationalUnitDistinguishedName $OuDistinguishedName

# You can run the Debug-AzStorageAccountAuth cmdlet to conduct a set of basic checks on your AD configuration 
# with the logged on AD user. This cmdlet is supported on AzFilesHybrid v0.1.2+ version. For more details on 
# the checks performed in this cmdlet, see Azure Files Windows troubleshooting guide.
Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose

Option 2: Manuelle Ausführung der Aktivierungsaktionen

Die meisten Kunden müssen oben Option 1 auswählen und das PowerShell-Modul „AzFilesHybrid“ verwenden, um die AD DS-Authentifizierung mit Azure Files zu aktivieren. Wenn Sie die Schritte jedoch lieber manuell mithilfe von Active Directory PowerShell ausführen möchten, sehen Sie sich die unten aufgeführten Schritte an.

Wichtig

Wenn Sie das oben beschriebene Skript Join-AzStorageAccount bereits erfolgreich ausgeführt haben, fahren Sie direkt mit dem nächsten Abschnitt Überprüfen der Aktivierung des Features fort. Die folgenden manuellen Schritte müssen Sie nicht ausführen.

Überprüfung der Umgebung

Überprüfen Sie zunächst den Zustand der Umgebung.

  • Überprüfen Sie, ob Active Directory PowerShell installiert ist, und ob die Shell mit Administratorrechten ausgeführt wird.
  • Stellen Sie sicher, dass das Az.Storage-Modul installiert ist, und installieren Sie es, falls nicht. Sie benötigen mindestens Version 2.0.
  • Wenn Sie diese Überprüfungen durchgeführt haben, überprüfen Sie, ob in Ihrer AD DS-Umgebung entweder ein bereits vorhandenes Computerkonto (Standard) oder ein Dienstanmeldekonto mit einem SPN/UPN wie „cifs/Ihr-Speicherkontoname-hier.file.core.windows.net“ vorhanden ist. Wenn das Konto nicht vorhanden ist, erstellen Sie wie im folgenden Abschnitt beschrieben ein Konto.

Wichtig

Die Windows Server Active Directory PowerShell-Cmdlets in diesem Abschnitt müssen in Windows PowerShell 5.1 ausgeführt werden. PowerShell 7.x und Azure Cloud Shell funktionieren in diesem Szenario nicht.

Manuelles Erstellen einer Identität, die das Speicherkonto in Ihrem AD darstellt

Um dieses Konto manuell zu erstellen, erstellen Sie zunächst einen neuen Kerberos-Schlüssel für Ihr Speicherkonto und rufen Sie den Zugriffsschlüssel mithilfe der unten aufgeführten PowerShell-Cmdlets ab. Dieser Schlüssel wird nur während der Einrichtung verwendet. Er kann nicht für Vorgänge auf Steuerungs- oder Datenebene für das Speicherkonto verwendet werden.

# Create the Kerberos key on the storage account and get the Kerb1 key as the password for the AD identity 
# to represent the storage account
$ResourceGroupName = "<resource-group-name-here>"
$StorageAccountName = "<storage-account-name-here>"

New-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -KeyName kerb1
Get-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -ListKerbKey | where-object{$_.Keyname -contains "kerb1"}

Die Cmdlets sollten den Schlüsselwert zurückgeben. Wenn Sie über den Kerb1-Schlüssel verfügen, erstellen Sie in AD entweder ein Computerkonto oder ein Dienstkonto in Ihrer Organisationseinheit (OE), und verwenden Sie den Schlüssel als Kennwort für die AD-Identität.

  1. Legen Sie den SPN auf cifs/your-storage-account-name-here.file.core.windows.net fest – entweder in der AD-GUI, oder indem Sie den Befehl Setspn über die Windows-Befehlszeile als Administrator ausführen (denken Sie daran, den Beispieltext durch den Namen Ihres Speicherkontos und <ADAccountName> durch Ihren AD-Kontonamen zu ersetzen).

    Setspn -S cifs/your-storage-account-name-here.file.core.windows.net <ADAccountName>
    
  2. Wenn Sie über ein Benutzerkonto verfügen, ändern Sie den UPN so, dass er mit dem SPN für das AD-Objekt übereinstimmt (Sie müssen AD PowerShell-Cmdlets installiert haben und die Cmdlets in PowerShell 5.1 mit erhöhten Rechten ausführen).

    Set-ADUser -Identity $UserSamAccountName -UserPrincipalName cifs/<StorageAccountName>.file.core.windows.net@<DNSRoot>
    
  3. Legen Sie das Kennwort für das AD-Konto auf den Wert des kerb1-Schlüssels fest.

    Set-ADAccountPassword -Identity servername$ -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "kerb1_key_value_here" -Force)
    

Wenn Ihre Organisationseinheit den Ablauf von Kennwörtern erzwingt, müssen Sie das Kennwort vor Erreichen des maximalen Kennwortalters aktualisieren, um Authentifizierungsfehler beim Zugriff auf Azure-Dateifreigaben zu verhindern. Weitere Informationen finden Sie unter Aktualisieren des Kennworts für Ihre Speicherkontoidentität in Active Directory.

Notieren Sie sich die SID für die neu erstellte Identität. Sie benötigen sie im nächsten Schritt. Die soeben erstellte Identität, die das Speicherkonto repräsentiert, muss nicht mit Microsoft Entra ID synchronisiert werden.

Aktivieren des Features für Ihr Speicherkonto

Ändern Sie den folgenden Befehl, um Konfigurationsdetails für die Domäneneigenschaften im folgenden Befehl anzuzeigen, und führen Sie ihn dann aus, um das Feature zu aktivieren. Die im folgenden Befehl erforderliche SID für das Speicherkonto ist die SID der Identität, die Sie im vorherigen Abschnitt in Ihrer AD DS-Umgebung erstellt haben. Stellen Sie sicher, dass Sie die Eigenschaft ActiveDirectorySamAccountName ohne das nachgestellte $-Zeichen angeben.

# Set the feature flag on the target storage account and provide the required AD domain information
Set-AzStorageAccount `
        -ResourceGroupName "<your-resource-group-name>" `
        -Name "<your-storage-account-name>" `
        -EnableActiveDirectoryDomainServicesForFile $true `
        -ActiveDirectoryDomainName "<your-domain-dns-root>" `
        -ActiveDirectoryNetBiosDomainName "<your-domain-dns-root>" `
        -ActiveDirectoryForestName "<your-forest-name>" `
        -ActiveDirectoryDomainGuid "<your-guid>" `
        -ActiveDirectoryDomainsid "<your-domain-sid>" `
        -ActiveDirectoryAzureStorageSid "<your-storage-account-sid>" `
        -ActiveDirectorySamAccountName "<your-domain-object-sam-account-name>" `
        -ActiveDirectoryAccountType "<your-domain-object-account-type, the value could be 'Computer' or 'User'>"

Wenn Sie die AES-256-Verschlüsselung aktivieren möchten, folgen Sie den Schritten in diesem Abschnitt. Wenn Sie RC4-Verschlüsselung verwenden möchten, überspringen Sie diesen Abschnitt.

Wichtig

Um die AES-256-Verschlüsselung aktivieren zu können, muss das Domänenobjekt, das Ihr Speicherkonto darstellt, ein Computerkonto (Standard) oder ein Dienstanmeldekonto in der lokalen AD-Domäne sein. Wenn Ihr Domänenobjekt diese Anforderung nicht erfüllt, löschen Sie es und erstellen ein neues Domänenobjekt, das den Anforderungen entspricht. Sie benötigen außerdem Schreibzugriff auf das msDS-SupportedEncryptionTypes-Attribut des Objekts.

Das Cmdlet, das Sie zum Konfigurieren der AES-256-Unterstützung ausführen, hängt davon ab, ob das Domänenobjekt, das Ihr Speicherkonto darstellt, ein Computerkonto oder ein Dienstanmeldekonto (Benutzerkonto) ist. Sie müssen in jedem Fall AD PowerShell-Cmdlets installiert haben und das Cmdlet in PowerShell 5.1 mit erhöhten Rechten ausführen.

Führen Sie den folgenden Befehl aus, um die AES-256-Verschlüsselung für ein Computerkonto zu aktivieren. Ersetzen Sie <domain-object-identity> und <domain-name> durch Ihre eigenen Werte.

Set-ADComputer -Identity <domain-object-identity> -Server <domain-name> -KerberosEncryptionType "AES256"

Führen Sie den folgenden Befehl aus, um die AES-256-Verschlüsselung für ein Dienstanmeldekonto zu aktivieren. Ersetzen Sie <domain-object-identity> und <domain-name> durch Ihre eigenen Werte.

Set-ADUser -Identity <domain-object-identity> -Server <domain-name> -KerberosEncryptionType "AES256"

Ersetzen Sie – nach dem Ausführen des Cmdlet – <domain-object-identity> im folgenden Skript durch Ihren Wert. Führen Sie dann das Skript aus, um Ihr Kennwort für das Domänenobjekt zu aktualisieren:

$KeyName = "kerb1" # Could be either the first or second kerberos key, this script assumes we're refreshing the first
$KerbKeys = New-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -KeyName $KeyName
$KerbKey = $KerbKeys.keys | Where-Object {$_.KeyName -eq $KeyName} | Select-Object -ExpandProperty Value
$NewPassword = ConvertTo-SecureString -String $KerbKey -AsPlainText -Force

Set-ADAccountPassword -Identity <domain-object-identity> -Reset -NewPassword $NewPassword

Wichtig

Wenn Sie zuvor die RC4-Verschlüsselung verwendet und das Speicherkonto für die Verwendung von AES-256 aktualisiert haben, sollten Sie auf dem Client klist purge ausführen und dann die Dateifreigabe erneut einbinden, um neue Kerberos-Tickets mit AES-256 zu erhalten.

Debuggen

Falls erforderlich, können Sie das Cmdlet Debug-AzStorageAccountAuth ausführen, um eine Reihe grundlegender Überprüfungen Ihrer AD-Konfiguration mit dem angemeldeten AD-Benutzer durchzuführen. Dieses Cmdlet wird von AzFilesHybrid-Version 0.1.2 und höher unterstützt. Dieses Cmdlet gilt nur für die AD DS-Authentifizierung. Es funktioniert nicht für Microsoft Entra Domain Services oder Microsoft Entra Kerberos aktivierte Speicherkonten. Weitere Informationen zu den in diesem Cmdlet ausgeführten Überprüfungen finden Sie unter Azure-Dateifreigaben können mit AD-Anmeldeinformationen nicht eingebunden werden.

Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose

Überprüfen der Aktivierung des Features

Sie können mit dem folgenden Skript überprüfen, ob Active Directory für Ihr Speicherkonto aktiviert ist:

# Get the target storage account
$storageaccount = Get-AzStorageAccount `
        -ResourceGroupName "<your-resource-group-name-here>" `
        -Name "<your-storage-account-name-here>"

# List the directory service of the selected service account
$storageAccount.AzureFilesIdentityBasedAuth.DirectoryServiceOptions

# List the directory domain information if the storage account has enabled AD DS authentication for file shares
$storageAccount.AzureFilesIdentityBasedAuth.ActiveDirectoryProperties

Wurde das Skript erfolgreich ausgeführt, sollte die Ausgabe wie folgt aussehen:

DomainName:<yourDomainHere>
NetBiosDomainName:<yourNetBiosDomainNameHere>
ForestName:<yourForestNameHere>
DomainGuid:<yourGUIDHere>
DomainSid:<yourSIDHere>
AzureStorageID:<yourStorageSIDHere>

Nächste Schritte

Sie haben AD DS nun erfolgreich für Ihr Speicherkonto aktiviert. Zum Verwenden des Features müssen Sie Berechtigungen auf Freigabeebene zuweisen.