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.

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 Ja Nein
Standard-Dateifreigaben (GPv2), GRS/GZRS Ja Nein
Premium-Dateifreigaben (FileStorage), LRS/ZRS Ja Nein

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.

Herunterladen des AzFilesHybrid-Moduls

  • Wenn .NET Framework 4.7.2 oder höher nicht installiert ist, installieren Sie es jetzt. Dies ist für das erfolgreiche Importieren des Moduls erforderlich.
  • Laden Sie die neueste Version des AzFilesHybrid-Moduls herunter und entpacken Sie sie. Beachten Sie, dass die AES-256 Kerberos-Verschlüsselung in v0.2.2 und höheren Versionen unterstützt wird und ab v0.2.5 als Standardverschlüsselungsmethode verwendet wird. Wenn Sie das Feature mit einer älteren AzFilesHybrid-Version als v0.2.2 aktiviert haben und aktualisieren möchten, um AES-256-Kerberos-Verschlüsselung zu unterstützen, lesen Sie diesen Artikel.
  • Installieren Sie das Modul auf einem Gerät mit Domäneneinbindung in die lokale AD DS-Umgebung unter Verwendung von AD DS-Anmeldeinformationen, die über Berechtigungen zum Erstellen eines Computerkontos oder eines Dienstanmeldekontos in der AD-Zielumgebung verfügen (z. B. als Domänenadministrator), und führen Sie dann das Modul aus.

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 folgende Skript in PowerShell 5.1 auf einem Gerät ausführen, dessen Domäne mit Ihrem lokalen AD DS verbunden ist, und dabei lokale AD DS-Anmeldeinformationen verwenden, die mit Ihrem Azure AD synchronisiert sind. 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.

Hinweis

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 with an Azure AD 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 20 characters or less and has certain character restrictions. 
# 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>"
# Specify the encryption algorithm used for Kerberos authentication. Using AES256 is recommended.
$EncryptionType = "<AES256|RC4|AES256,RC4>"

# 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 `
        -EncryptionType $EncryptionType

# 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. Insbesondere müssen Sie überprüfen, ob Active Directory PowerShell installiert ist und die Shell mit Administratorrechten ausgeführt wird. Überprüfen Sie dann, ob das Modul „Az.Storage 2.0“ (oder höher) installiert ist. Ist dies nicht der Fall, installieren Sie das Modul. Wenn Sie diese Überprüfungen durchgeführt haben, überprüfen Sie, ob Ihre AD DS-Umgebung ein bereits vorhandenes Computerkonto (Standardwert) oder ein Dienstanmeldekonto mit einem SPN/UPN wie „cifs/ihr-speicherkontoname.file.core.windows.net“ aufweist. 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 obigen Cmdlets sollten den Schlüsselwert zurückgeben. Wenn Sie über den Kerb1-Schlüssel verfügen, erstellen Sie entweder ein Dienstkonto oder ein Computerkonto in AD unter Ihrer OU 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 entweder auf der AD-GUI fest 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. Verwenden Sie PowerShell, um das AD-Kontokennwort auf den Wert des Kerb1-Schlüssels festzulegen (Sie müssen AD PowerShell-Cmdlets installiert haben und das Cmdlet in PowerShell 5.1 mit erhöhten Rechten ausführen):

    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 Azure AD 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-here>" `
        -Name "<your-storage-account-name-here>" `
        -EnableActiveDirectoryDomainServicesForFile $true `
        -ActiveDirectoryDomainName "<your-domain-dns-root-here>" `
        -ActiveDirectoryNetBiosDomainName "<your-domain-dns-root-here>" `
        -ActiveDirectoryForestName "<your-forest-name-here>" `
        -ActiveDirectoryDomainGuid "<your-guid-here>" `
        -ActiveDirectoryDomainsid "<your-domain-sid-here>" `
        -ActiveDirectoryAzureStorageSid "<your-storage-account-sid>" `
        -ActiveDirectorySamAccountName "<your-domain-object-sam-account-name>" `
        -ActiveDirectoryAccountType "<you-domain-object-account-type, the value could be 'Computer' or 'User', for AES256 must be 'Computer'>"

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 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.

Ersetzen Sie <domain-object-identity> und <domain-name> durch Ihre Werte, und führen Sie dann das folgende Cmdlet zum Konfigurieren der AES256-Unterstützung aus. Sie müssen AD PowerShell-Cmdlets installiert haben und das Cmdlet in PowerShell 5.1 mit erhöhten Rechten ausführen.

Set-ADComputer -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

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. Weitere Informationen zu den in diesem Cmdlet ausgeführten Überprüfungen finden Sie unter Azure Files mit AD-Anmeldeinformationen kann 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.