AD DS-verificatie inschakelen voor Azure-bestandsshares

In dit artikel wordt het proces beschreven voor het inschakelen van ad DS-verificatie (Active Directory-domein Services) voor uw opslagaccount om on-premises Ad-referenties (Active Directory) te gebruiken voor verificatie bij Azure-bestandsshares.

Belangrijk

Voordat u AD DS-verificatie inschakelt, moet u de ondersteunde scenario's en vereisten in het overzichtsartikel begrijpen en de vereiste vereisten voltooien. Als uw Active Directory-omgeving meerdere forests omvat, raadpleegt u Azure Files gebruiken met meerdere Active Directory-forests.

Als u AD DS-verificatie via SMB voor Azure-bestandsshares wilt inschakelen, moet u uw Azure-opslagaccount registreren bij uw on-premises AD DS en vervolgens de vereiste domeineigenschappen voor het opslagaccount instellen. Als u uw opslagaccount wilt registreren bij AD DS, maakt u een computeraccount (of serviceaanmeldingsaccount) dat het vertegenwoordigt in uw AD DS. Denk aan dit proces alsof het lijkt op het maken van een account dat een on-premises Windows-bestandsserver in uw AD DS vertegenwoordigt. Wanneer de functie is ingeschakeld voor het opslagaccount, is deze van toepassing op alle nieuwe en bestaande bestandsshares in het account.

Van toepassing op

Bestands sharetype SMB NFS
Standaardbestandsshares (GPv2), LRS/ZRS Yes No
Standaardbestandsshares (GPv2), GRS/GZRS Yes No
Premium bestandsshares (FileStorage), LRS/ZRS Yes No

De AzFilesHybrid PowerShell-module biedt cmdlets voor het implementeren en configureren van Azure Files. Het bevat cmdlets voor het toevoegen van opslagaccounts aan uw on-premises Active Directory en het configureren van uw DNS-servers. De cmdlets brengen de benodigde wijzigingen aan en schakelen de functie voor u in. Omdat sommige onderdelen van de cmdlets communiceren met uw on-premises AD DS, leggen we uit wat de cmdlets doen, zodat u kunt bepalen of de wijzigingen overeenkomen met uw nalevings- en beveiligingsbeleid en ervoor zorgen dat u over de juiste machtigingen beschikt om de cmdlets uit te voeren. Hoewel we het gebruik van de AzFilesHybrid-module aanbevelen, bieden we handmatige stappen als u dit niet kunt doen.

Belangrijk

AES-256 Kerberos-versleuteling is nu de enige versleutelingsmethode die wordt ondersteund door de AzFilesHybrid-module. Als u liever RC4-versleuteling gebruikt, raadpleegt u Optie 2: Voer de activeringsacties handmatig uit. Als u de functie eerder hebt ingeschakeld met een oude AzFilesHybrid-versie (onder v0.2.2) die RC4 als standaardversleutelingsmethode heeft gebruikt en die AES-256 wilt ondersteunen, raadpleegt u problemen met SMB-verificatie van Azure Files oplossen.

Vereisten

AzFilesHybrid-module downloaden

Download de nieuwste versie van de AzFilesHybrid-module en pak deze uit.

Join-AzStorageAccount uitvoeren

De Join-AzStorageAccount cmdlet voert het equivalent van een offline domeindeelname uit namens het opgegeven opslagaccount. In het onderstaande script wordt deze cmdlet gebruikt om een computeraccount in uw AD-domein te maken. Als u om welke reden dan ook geen computeraccount kunt gebruiken, kunt u het script wijzigen om in plaats daarvan een serviceaanmeldingsaccount te maken. Het gebruik van AES-256-versleuteling met serviceaanmeldingsaccounts wordt ondersteund vanaf AzFilesHybrid versie 0.2.5.

Het AD DS-account dat door de cmdlet is gemaakt, vertegenwoordigt het opslagaccount. Als het AD DS-account wordt gemaakt onder een organisatie-eenheid (OE) die het verlopen van wachtwoorden afdwingt, moet u het wachtwoord bijwerken vóór de maximale wachtwoordduur. Als u het accountwachtwoord vóór die datum niet bijwerkt, treedt er verificatiefouten op bij het openen van Azure-bestandsshares. Zie Het wachtwoord van het AD DS-account bijwerken voor meer informatie over het bijwerken van het wachtwoord.

Belangrijk

Met de Join-AzStorageAccount cmdlet wordt een AD-account gemaakt dat het opslagaccount (bestandsshare) in AD vertegenwoordigt. U kunt ervoor kiezen om u te registreren als computeraccount of serviceaanmeldingsaccount. Zie veelgestelde vragen voor meer informatie . Wachtwoorden voor aanmeldingsaccounts van de service kunnen verlopen in AD als ze een standaardduur voor het verlopen van wachtwoorden hebben ingesteld voor het AD-domein of de organisatie-eenheid. Omdat wachtwoordwijzigingen van het computeraccount worden aangestuurd door de clientcomputer en niet AD, verlopen ze niet in AD, hoewel clientcomputers hun wachtwoorden standaard elke 30 dagen wijzigen. Voor beide accounttypen raden we u aan de geconfigureerde wachtwoordverlooptijd te controleren en het wachtwoord bij te werken van de identiteit van uw opslagaccount van het AD-account vóór de maximale wachtwoordduur. U kunt overwegen om een nieuwe AD-organisatie-eenheid in AD te maken en het verloopbeleid voor wachtwoorden voor computeraccounts of serviceaanmeldingsaccounts dienovereenkomstig uit te schakelen.

U moet het onderstaande script uitvoeren in PowerShell 5.1 op een apparaat dat is gekoppeld aan uw on-premises AD DS, met behulp van on-premises AD DS-referenties met machtigingen voor het maken van een computeraccount of serviceaanmeldingsaccount in de doel-AD (zoals domeinbeheerder). Als u het principe minimale bevoegdheden wilt volgen, moet de on-premises AD DS-referentie de volgende Azure-rollen hebben:

  • Lezer van de resourcegroep waarin het doelopslagaccount zich bevindt.
  • Inzender in het opslagaccount dat moet worden toegevoegd aan AD DS.

Als het account dat wordt gebruikt om lid te worden van het opslagaccount in AD DS een eigenaar of inzender is in het Azure-abonnement waar de doelbronnen zich bevinden, is dat account al ingeschakeld om de join uit te voeren en zijn er geen verdere toewijzingen vereist.

De AD DS-referentie moet ook machtigingen hebben voor het maken van een computeraccount of serviceaanmeldingsaccount in de doel-AD. Vervang de waarden van de tijdelijke aanduiding door uw eigen waarden voordat u het script uitvoert.

# 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

Optie 2: De activeringsacties handmatig uitvoeren

De meeste klanten moeten optie één hierboven kiezen en de AzFilesHybrid PowerShell-module gebruiken om AD DS-verificatie in te schakelen met Azure Files. Als u de stappen echter liever handmatig uitvoert met Active Directory PowerShell, worden de stappen hier beschreven.

Belangrijk

Als u het Join-AzStorageAccount bovenstaande script al hebt uitgevoerd, gaat u rechtstreeks naar de sectie Bevestigen dat de functie is ingeschakeld . U hoeft de volgende handmatige stappen niet uit te voeren.

De omgeving controleren

Controleer eerst de status van uw omgeving.

  • Controleer of Active Directory PowerShell is geïnstalleerd en of de shell wordt uitgevoerd met beheerdersbevoegdheden.
  • Zorg ervoor dat de Az.Storage-module is geïnstalleerd en installeer deze als dat niet het geval is. U hebt ten minste versie 2.0 nodig.
  • Nadat u deze controles hebt voltooid, controleert u uw AD DS om te zien of er een computeraccount (standaard) of serviceaanmeldingsaccount is gemaakt met SPN/UPN, zoals 'cifs/your-storage-account-name-here.file.core.windows.net'. Als het account niet bestaat, maakt u er een zoals beschreven in de volgende sectie.

Belangrijk

De Windows Server Active Directory PowerShell-cmdlets in deze sectie moeten worden uitgevoerd in Windows PowerShell 5.1. PowerShell 7.x en Azure Cloud Shell werken niet in dit scenario.

Een identiteit maken die het opslagaccount in uw AD handmatig vertegenwoordigt

Als u dit account handmatig wilt maken, maakt u eerst een nieuwe Kerberos-sleutel voor uw opslagaccount en haalt u de toegangssleutel op met behulp van de onderstaande PowerShell-cmdlets. Deze sleutel wordt alleen gebruikt tijdens de installatie. Het kan niet worden gebruikt voor besturings- of gegevensvlakbewerkingen voor het opslagaccount.

# 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"}

De cmdlets moeten de sleutelwaarde retourneren. Zodra u de kerb1-sleutel hebt, maakt u een computeraccount of serviceaccount in AD onder uw organisatie-eenheid en gebruikt u de sleutel als het wachtwoord voor de AD-identiteit.

  1. Stel de SPN in op cifs/your-storage-account-name-here.file.core.windows.net in de AD-GUI of door de Setspn opdracht uit te voeren vanaf de Windows-opdrachtregel als beheerder (vergeet niet om de voorbeeldtekst te vervangen door de naam van uw opslagaccount en <ADAccountName> door de naam van uw AD-account).

    Setspn -S cifs/your-storage-account-name-here.file.core.windows.net <ADAccountName>
    
  2. Als u een gebruikersaccount hebt, wijzigt u de UPN zodat deze overeenkomt met de SPN voor het AD-object (u moet AD PowerShell-cmdlets hebben geïnstalleerd en de cmdlets uitvoeren in PowerShell 5.1 met verhoogde bevoegdheden).

    Set-ADUser -Identity $UserSamAccountName -UserPrincipalName cifs/<StorageAccountName>.file.core.windows.net@<DNSRoot>
    
  3. Stel het WACHTWOORD van het AD-account in op de waarde van de kerb1-sleutel.

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

Als uw organisatie-eenheid het verlopen van wachtwoorden afdwingt, moet u het wachtwoord bijwerken vóór de maximale wachtwoordduur om verificatiefouten te voorkomen bij het openen van Azure-bestandsshares. Zie Het wachtwoord van uw opslagaccount-id bijwerken in AD voor meer informatie.

Behoud de SID van de zojuist gemaakte identiteit. U hebt deze nodig voor de volgende stap. De identiteit die u hebt gemaakt die het opslagaccount vertegenwoordigt, hoeft niet te worden gesynchroniseerd met Microsoft Entra-id.

De functie inschakelen in uw opslagaccount

Wijzig de volgende opdracht om configuratiedetails voor de domeineigenschappen op te nemen in de volgende opdracht en voer deze uit om de functie in te schakelen. De SID van het opslagaccount die is vereist in de volgende opdracht, is de SID van de identiteit die u in uw AD DS in de vorige sectie hebt gemaakt. Zorg ervoor dat u de eigenschap ActiveDirectorySamAccountName opgeeft zonder het afsluitende '$'-teken.

# 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'>"

Volg de stappen in deze sectie om AES-256-versleuteling in te schakelen. Als u RC4-versleuteling wilt gebruiken, slaat u deze sectie over.

Belangrijk

Als u AES-256-versleuteling wilt inschakelen, moet het domeinobject dat uw opslagaccount vertegenwoordigt een computeraccount (standaard) of serviceaanmeldingsaccount in het on-premises AD-domein zijn. Als uw domeinobject niet aan deze vereiste voldoet, verwijdert u het en maakt u een nieuw domeinobject dat dat wel doet. U moet ook schrijftoegang hebben tot het msDS-SupportedEncryptionTypes kenmerk van het object.

De cmdlet die u uitvoert om AES-256-ondersteuning te configureren, is afhankelijk van of het domeinobject dat uw opslagaccount vertegenwoordigt een computeraccount of serviceaanmeldingsaccount (gebruikersaccount) is. In beide gevallen moet u AD PowerShell-cmdlets hebben geïnstalleerd en de cmdlet uitvoeren in PowerShell 5.1 met verhoogde bevoegdheden.

Voer de volgende opdracht uit om AES-256-versleuteling in te schakelen voor een computeraccount. Vervang <domain-object-identity> en <domain-name> door uw eigen waarden.

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

Voer de volgende opdracht uit om AES-256-versleuteling in te schakelen voor een serviceaanmeldingsaccount. Vervang <domain-object-identity> en <domain-name> door uw eigen waarden.

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

Nadat u de bovenstaande cmdlet hebt uitgevoerd, vervangt <domain-object-identity> u het volgende script door uw waarde en voert u het script uit om het wachtwoord van het domeinobject te vernieuwen:

$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

Belangrijk

Als u eerder RC4-versleuteling gebruikt en het opslagaccount bijwerkt om AES-256 te gebruiken, moet klist purge u deze uitvoeren op de client en vervolgens de bestandsshare opnieuw koppelen om nieuwe Kerberos-tickets op te halen met AES-256.

Foutopsporing

Indien nodig kunt u de Debug-AzStorageAccountAuth cmdlet uitvoeren om een set basiscontroles uit te voeren op uw AD-configuratie met de aangemelde AD-gebruiker. Deze cmdlet wordt ondersteund op AzFilesHybrid v0.1.2+ versie en hoger. Deze cmdlet is alleen van toepassing op AD DS-verificatie. Het werkt niet voor opslagaccounts met Microsoft Entra Domain Services of Microsoft Entra Kerberos. Zie Unable to mount Azure file shares with AD credentials (Kan Geen Azure-bestandsshares koppelen met AD-referenties) voor meer informatie over de controles die in deze cmdlet worden uitgevoerd.

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

Controleer of de functie is ingeschakeld

U kunt controleren of Active Directory is ingeschakeld voor uw opslagaccount met het volgende script:

# 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

Als dit lukt, ziet de uitvoer er als volgt uit:

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

Volgende stappen

U hebt AD DS nu ingeschakeld voor uw opslagaccount. Als u de functie wilt gebruiken, moet u machtigingen op shareniveau toewijzen.