Aktivera Active Directory-domän Services-autentisering för Azure-filresurser
I den här artikeln beskrivs processen för att aktivera Active Directory-domän Services-autentisering (AD DS) på ditt lagringskonto för att använda autentiseringsuppgifter för lokal Active Directory (AD) för autentisering till Azure-filresurser.
Viktigt!
Innan du aktiverar AD DS-autentisering måste du förstå de scenarier och krav som stöds i översiktsartikeln och slutföra de nödvändiga förutsättningarna. Om din Active Directory-miljö omfattar flera skogar kan du läsa Använda Azure Files med flera Active Directory-skogar.
Om du vill aktivera AD DS-autentisering via SMB för Azure-filresurser måste du registrera ditt Azure Storage-konto med din lokala AD DS och sedan ange de nödvändiga domänegenskaperna för lagringskontot. Om du vill registrera ditt lagringskonto med AD DS skapar du ett datorkonto (eller tjänstinloggningskonto) som representerar det i din AD DS. Tänk på den här processen som om det vore som att skapa ett konto som representerar en lokal Windows-filserver i din AD DS. När funktionen är aktiverad på lagringskontot gäller den för alla nya och befintliga filresurser i kontot.
Gäller för
Typ av filresurs | SMB | NFS |
---|---|---|
Standardfilresurser (GPv2), LRS/ZRS | ||
Standardfilresurser (GPv2), GRS/GZRS | ||
Premiumfilresurser (FileStorage), LRS/ZRS |
Alternativ ett (rekommenderas): Använd AzFilesHybrid PowerShell-modulen
AzFilesHybrid PowerShell-modulen innehåller cmdletar för att distribuera och konfigurera Azure Files. Den innehåller cmdletar för domänanslutning av lagringskonton till din lokal Active Directory och konfiguration av DNS-servrar. Cmdletarna gör nödvändiga ändringar och aktiverar funktionen åt dig. Eftersom vissa delar av cmdletarna interagerar med din lokala AD DS förklarar vi vad cmdletarna gör, så att du kan avgöra om ändringarna överensstämmer med dina efterlevnads- och säkerhetsprinciper och se till att du har rätt behörighet att köra cmdletarna. Även om vi rekommenderar att du använder AzFilesHybrid-modulen tillhandahåller vi manuella steg om du inte kan göra det.
Viktigt!
AES-256 Kerberos-kryptering är nu den enda krypteringsmetod som stöds av AzFilesHybrid-modulen. Om du föredrar att använda RC4-kryptering läser du Alternativ två: Utför aktiveringsåtgärderna manuellt. Om du tidigare har aktiverat funktionen med en gammal AzFilesHybrid-version (nedan v0.2.2) som använde RC4 som standardkrypteringsmetod och vill uppdatera för att stödja AES-256 läser du felsöka Azure Files SMB-autentisering.
Förutsättningar
- Om du inte har .NET Framework 4.7.2 eller senare installerat bör du installera det nu. Det krävs för att AzFilesHybrid-modulen ska kunna importeras.
- Kontrollera att du har Azure PowerShell (Az-modul) och Az.Storage installerat. Du måste ha minst Az.PowerShell 2.8.0+ och Az.Storage 4.3.0+ för att kunna använda AzFilesHybrid.
- Installera Active Directory PowerShell-modulen.
Ladda ned AzFilesHybrid-modulen
Ladda ned och packa upp den senaste versionen av AzFilesHybrid-modulen.
Kör Join-AzStorageAccount
Cmdleten Join-AzStorageAccount
utför motsvarande en offlinedomänanslutning för det angivna lagringskontots räkning. Skriptet nedan använder den här cmdleten för att skapa ett datorkonto i din AD-domän. Om du av någon anledning inte kan använda ett datorkonto kan du ändra skriptet för att skapa ett konto för tjänstinloggning i stället. Användning av AES-256-kryptering med tjänstinloggningskonton stöds från och med AzFilesHybrid version 0.2.5.
AD DS-kontot som skapats av cmdleten representerar lagringskontot. Om AD DS-kontot skapas under en organisationsenhet (OU) som framtvingar att lösenordet upphör att gälla måste du uppdatera lösenordet före den maximala lösenordsåldern. Om du inte uppdaterar kontolösenordet före det datumet resulterar det i autentiseringsfel vid åtkomst till Azure-filresurser. Information om hur du uppdaterar lösenordet finns i Uppdatera AD DS-kontolösenord.
Viktigt!
Cmdleten Join-AzStorageAccount
skapar ett AD-konto som representerar lagringskontot (filresursen) i AD. Du kan välja att registrera dig som ett datorkonto eller tjänstinloggningskonto. Mer information finns i Vanliga frågor och svar . Lösenord för tjänstinloggningskonto kan upphöra att gälla i AD om de har en standardålder för lösenordsförfallotid inställd på AD-domänen eller organisationsenheten. Eftersom lösenordsändringar för datorkonton drivs av klientdatorn och inte AD upphör de inte att gälla i AD, även om klientdatorer ändrar sina lösenord som standard var 30:e dag.
För båda kontotyperna rekommenderar vi att du kontrollerar lösenordets förfalloålder som konfigurerats och planerar att uppdatera lösenordet för ditt lagringskontos identitet för AD-kontot före den maximala lösenordsåldern. Du kan överväga att skapa en ny AD-organisationsenhet i AD och inaktivera principen för förfallodatum för lösenord på datorkonton eller konton för tjänstinloggning i enlighet med detta.
Du måste köra skriptet nedan i PowerShell 5.1 på en enhet som är domänansluten till din lokala AD DS med lokala AD DS-autentiseringsuppgifter som har behörighet att skapa ett datorkonto eller tjänstinloggningskonto i mål-AD (till exempel domänadministratör). Om du vill följa principen Lägsta behörighet måste de lokala AD DS-autentiseringsuppgifterna ha följande Azure-roller:
- Läsare i resursgruppen där mållagringskontot finns.
- Deltagare på lagringskontot som ska anslutas till AD DS.
Om det konto som används för att ansluta till lagringskontot i AD DS är ägare eller deltagare i Azure-prenumerationen där målresurserna finns, är det kontot redan aktiverat för att utföra kopplingen och inga ytterligare tilldelningar krävs.
AD DS-autentiseringsuppgifterna måste också ha behörighet att skapa ett datorkonto eller tjänstinloggningskonto i mål-AD. Ersätt platshållarvärdena med dina egna innan du kör skriptet.
# 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
Alternativ två: Utför aktiveringsåtgärderna manuellt
De flesta kunder bör välja Alternativ ett ovan och använda AzFilesHybrid PowerShell-modulen för att aktivera AD DS-autentisering med Azure Files. Men om du föredrar att köra stegen manuellt med Hjälp av Active Directory PowerShell beskrivs stegen här.
Viktigt!
Om du redan har kört skriptet Join-AzStorageAccount
ovan går du direkt till avsnittet Bekräfta att funktionen är aktiverad . Du behöver inte utföra följande manuella steg.
Kontrollera miljön
Kontrollera först miljöns tillstånd.
- Kontrollera om Active Directory PowerShell är installerat och om gränssnittet körs med administratörsbehörighet.
- Kontrollera att Az.Storage-modulen är installerad och installera den om den inte är det. Du behöver minst version 2.0.
- När du har slutfört dessa kontroller kontrollerar du din AD DS för att se om det finns ett datorkonto (standard) eller ett konto för tjänstinloggning som redan har skapats med SPN/UPN, till exempel "cifs/your-storage-account-name-here.file.core.windows.net". Om kontot inte finns skapar du ett enligt beskrivningen i följande avsnitt.
Viktigt!
Windows Server Active Directory PowerShell-cmdletar i det här avsnittet måste köras i Windows PowerShell 5.1. PowerShell 7.x och Azure Cloud Shell fungerar inte i det här scenariot.
Skapa en identitet som representerar lagringskontot i din AD manuellt
Skapa det här kontot manuellt genom att först skapa en ny Kerberos-nyckel för ditt lagringskonto och hämta åtkomstnyckeln med hjälp av PowerShell-cmdletarna nedan. Den här nyckeln används endast under installationen. Den kan inte användas för kontroll- eller dataplansåtgärder mot lagringskontot.
# 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"}
Cmdletarna ska returnera nyckelvärdet. När du har kerb1-nyckeln skapar du antingen ett datorkonto eller tjänstkonto i AD under din organisationsenhet och använder nyckeln som lösenord för AD-identiteten.
Ange SPN till cifs/your-storage-account-name-here.file.core.windows.net antingen i AD GUI eller genom att köra
Setspn
kommandot från Windows-kommandoraden som administratör (kom ihåg att ersätta exempeltexten med ditt lagringskontonamn och<ADAccountName>
med ditt AD-kontonamn).Setspn -S cifs/your-storage-account-name-here.file.core.windows.net <ADAccountName>
Om du har ett användarkonto ändrar du UPN så att det matchar SPN för AD-objektet (du måste ha AD PowerShell-cmdletar installerade och köra cmdletarna i PowerShell 5.1 med förhöjd behörighet).
Set-ADUser -Identity $UserSamAccountName -UserPrincipalName cifs/<StorageAccountName>.file.core.windows.net@<DNSRoot>
Ange AD-kontolösenordet till värdet för kerb1-nyckeln.
Set-ADAccountPassword -Identity servername$ -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "kerb1_key_value_here" -Force)
Om din organisationsenhet framtvingar att lösenordet upphör att gälla måste du uppdatera lösenordet före den maximala lösenordsåldern för att förhindra autentiseringsfel vid åtkomst till Azure-filresurser. Mer information finns i Uppdatera lösenordet för din lagringskontoidentitet i AD .
Behåll SID för den nyligen skapade identiteten. Du behöver den i nästa steg. Den identitet som du har skapat som representerar lagringskontot behöver inte synkroniseras med Microsoft Entra-ID.
Aktivera funktionen på ditt lagringskonto
Ändra följande kommando för att inkludera konfigurationsinformation för domänegenskaperna i följande kommando och kör det sedan för att aktivera funktionen. Det lagringskonto-SID som krävs i följande kommando är SID för den identitet som du skapade i din AD DS i föregående avsnitt. Kontrollera att du anger egenskapen ActiveDirectorySamAccountName utan det avslutande $-tecknet.
# 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'>"
Aktivera AES-256-kryptering (rekommenderas)
Om du vill aktivera AES-256-kryptering följer du stegen i det här avsnittet. Om du planerar att använda RC4-kryptering hoppar du över det här avsnittet.
Viktigt!
För att kunna aktivera AES-256-kryptering måste domänobjektet som representerar ditt lagringskonto vara ett datorkonto (standard) eller tjänstinloggningskonto i den lokala AD-domänen. Om domänobjektet inte uppfyller det här kravet tar du bort det och skapar ett nytt domänobjekt som gör det. Du måste också ha skrivåtkomst till msDS-SupportedEncryptionTypes
objektets attribut.
Vilken cmdlet du ska köra för att konfigurera AES-256-stöd beror på om domänobjektet som representerar ditt lagringskonto är ett datorkonto eller tjänstinloggningskonto (användarkonto). Hur som helst måste du ha AD PowerShell-cmdletar installerade och köra cmdleten i PowerShell 5.1 med förhöjd behörighet.
Om du vill aktivera AES-256-kryptering på ett datorkonto kör du följande kommando. Ersätt <domain-object-identity>
och <domain-name>
med dina värden.
Set-ADComputer -Identity <domain-object-identity> -Server <domain-name> -KerberosEncryptionType "AES256"
Om du vill aktivera AES-256-kryptering på ett tjänstinloggningskonto kör du följande kommando. Ersätt <domain-object-identity>
och <domain-name>
med dina värden.
Set-ADUser -Identity <domain-object-identity> -Server <domain-name> -KerberosEncryptionType "AES256"
När du har kört ovanstående cmdlet ersätter <domain-object-identity>
du i följande skript med ditt värde och kör sedan skriptet för att uppdatera lösenordet för domänobjektet:
$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
Viktigt!
Om du tidigare använde RC4-kryptering och uppdaterade lagringskontot för att använda AES-256 bör du köra klist purge
på klienten och sedan montera om filresursen för att hämta nya Kerberos-biljetter med AES-256.
Felsökning
Om det behövs kan du köra cmdleten Debug-AzStorageAccountAuth
för att utföra en uppsättning grundläggande kontroller av AD-konfigurationen med den inloggade AD-användaren. Den här cmdleten stöds på AzFilesHybrid v0.1.2+-versionen och senare. Den här cmdleten gäller endast för AD DS-autentisering. Det fungerar inte för Microsoft Entra Domain Services eller Microsoft Entra Kerberos-aktiverade lagringskonton. Mer information om de kontroller som utförs i den här cmdleten finns i Det går inte att montera Azure-filresurser med AD-autentiseringsuppgifter.
Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose
Bekräfta att funktionen är aktiverad
Du kan kontrollera om Active Directory är aktiverat på ditt lagringskonto med följande skript:
# 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
Om det lyckas bör utdata se ut så här:
DomainName:<yourDomainHere>
NetBiosDomainName:<yourNetBiosDomainNameHere>
ForestName:<yourForestNameHere>
DomainGuid:<yourGUIDHere>
DomainSid:<yourSIDHere>
AzureStorageID:<yourStorageSIDHere>
Gå vidare
Nu har du aktiverat AD DS på ditt lagringskonto. Om du vill använda funktionen måste du tilldela behörigheter på resursnivå.