Povolení ověřování Doména služby Active Directory Services pro sdílené složky Azure

Tento článek popisuje proces povolení ověřování Doména služby Active Directory Services (AD DS) ve vašem účtu úložiště, aby bylo možné použít přihlašovací údaje místní Active Directory (AD) k ověřování ve sdílených složkách Azure.

Důležité

Než povolíte ověřování služby AD DS, ujistěte se, že rozumíte podporovaným scénářům a požadavkům v článku s přehledem a dokončete nezbytné požadavky. Pokud vaše prostředí Active Directory zahrnuje více doménových struktur, přečtěte si téma Použití služby Azure Files s více doménovými strukturami Active Directory.

Pokud chcete povolit ověřování AD DS přes protokol SMB pro sdílené složky Azure, musíte si zaregistrovat účet úložiště Azure v místní službě AD DS a pak nastavit požadované vlastnosti domény v účtu úložiště. Pokud chcete účet úložiště zaregistrovat ve službě AD DS, vytvoříte účet počítače (nebo účet pro přihlášení služby) představující ho ve službě AD DS. Tento proces si představte, jako by se jednalo o vytvoření účtu představujícího místní souborový server Windows ve službě AD DS. Pokud je u účtu úložiště povolená funkce, platí pro všechny nové a existující sdílené složky v účtu.

Platí pro

Typ sdílené složky SMB NFS
Sdílené složky úrovně Standard (GPv2), LRS/ZRS Yes No
Sdílené složky úrovně Standard (GPv2), GRS/GZRS Yes No
Sdílené složky úrovně Premium (FileStorage), LRS/ZRS Yes No

Modul AzFilesHybrid PowerShell poskytuje rutiny pro nasazení a konfiguraci služby Azure Files. Zahrnuje rutiny pro připojení účtů úložiště k místní Active Directory a konfiguraci serverů DNS. Rutiny proveďte potřebné úpravy a povolte funkci za vás. Vzhledem k tomu, že některé části rutin komunikují s místní službou AD DS, vysvětlujeme, co rutiny dělají, abyste mohli určit, jestli změny odpovídají vašim zásadám dodržování předpisů a zabezpečení, a ujistěte se, že máte správná oprávnění ke spouštění rutin. I když doporučujeme použít modul AzFilesHybrid, pokud to nemůžete udělat, poskytujeme ruční kroky.

Důležité

Šifrování Kerberos AES-256 je teď jedinou metodou šifrování podporovanou modulem AzFilesHybrid. Pokud raději používáte šifrování RC4, přečtěte si téma Dvě možnosti: Ruční provedení akcí povolení. Pokud jste funkci dříve povolili se starou verzí AzFilesHybrid (pod verzí 0.2.2), která používala rc4 jako výchozí metodu šifrování a chcete ji aktualizovat tak, aby podporovala AES-256, přečtěte si téma řešení potíží s ověřováním SMB ve službě Soubory Azure.

Požadavky

Stažení modulu AzFilesHybrid

Stáhněte a rozbalte nejnovější verzi modulu AzFilesHybrid.

Spuštění příkazu Join-AzStorageAccount

Rutina Join-AzStorageAccount provede ekvivalent offline připojení k doméně jménem zadaného účtu úložiště. Následující skript používá tuto rutinu k vytvoření účtu počítače ve vaší doméně AD. Pokud z jakéhokoli důvodu nemůžete použít účet počítače, můžete skript změnit tak, aby místo toho vytvořil přihlašovací účet služby. Použití šifrování AES-256 s přihlašovacími účty služby je podporováno od AzFilesHybrid verze 0.2.5.

Účet služby AD DS vytvořený rutinou představuje účet úložiště. Pokud je účet služby AD DS vytvořen v rámci organizační jednotky (OU), která vynucuje vypršení platnosti hesla, musíte heslo aktualizovat před maximálním stářím hesla. Při přístupu ke sdíleným složkám Azure se nedaří aktualizovat heslo účtu před tímto datem, dojde k selhání ověřování. Informace o aktualizaci hesla najdete v tématu Aktualizace hesla účtu služby AD DS.

Důležité

Rutina Join-AzStorageAccount vytvoří účet AD, který bude představovat účet úložiště (sdílenou složku) ve službě AD. Můžete se rozhodnout, že se zaregistrujete jako účet počítače nebo účet pro přihlášení ke službě. Podrobnosti najdete v nejčastějších dotazech . Platnost hesel přihlašovacích účtů služby může vypršet v AD, pokud mají nastavené výchozí stáří vypršení platnosti hesla v doméně AD nebo organizační jednotky. Vzhledem k tomu, že změny hesel účtu počítače jsou řízeny klientským počítačem a ne AD, nevyprší platnost v AD, i když klientské počítače mění hesla ve výchozím nastavení každých 30 dnů. U obou typů účtů doporučujeme zkontrolovat dobu vypršení platnosti hesla nakonfigurovanou a naplánovat aktualizaci hesla identity účtu úložiště účtu AD před maximálním stářím hesla. Můžete zvážit vytvoření nové organizační jednotky AD v AD a zakázání zásad vypršení platnosti hesla v účtech počítačů nebo přihlašovacích účtech služby odpovídajícím způsobem.

Následující skript musíte spustit v PowerShellu 5.1 na zařízení, které je připojené k místní službě AD DS, pomocí přihlašovacích údajů místní služby AD DS, které mají oprávnění k vytvoření účtu počítače nebo přihlašovacího účtu služby v cílové službě AD (například správce domény). Aby bylo možné dodržovat princip nejnižších oprávnění, musí mít místní přihlašovací údaje služby AD DS následující role Azure:

  • Čtenář ve skupině prostředků, ve které se nachází cílový účet úložiště.
  • Přispěvatel účtu úložiště, který se má připojit ke službě AD DS.

Pokud je účet použitý k připojení k účtu úložiště ve službě AD DS vlastníkem nebo přispěvatelem v předplatném Azure, ve kterém jsou umístěné cílové prostředky, je tento účet již povolený k provedení připojení a nevyžaduje se žádná další přiřazení.

Přihlašovací údaje služby AD DS musí mít také oprávnění k vytvoření účtu počítače nebo přihlašovacího účtu služby v cílové službě AD. Před spuštěním skriptu nahraďte zástupné hodnoty vlastními hodnotami.

# 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

Možnost 2: Ruční provedení akcí povolení

Většina zákazníků by měla zvolit možnost výše a pomocí modulu AzFilesHybrid PowerShell povolit ověřování AD DS pomocí služby Azure Files. Pokud ale dáváte přednost ručnímu provedení kroků pomocí Active Directory PowerShellu, jsou zde uvedené kroky.

Důležité

Pokud jste už výše uvedený skript úspěšně spustili Join-AzStorageAccount , přejděte přímo do části Potvrzení, že je funkce povolená . Nemusíte provádět následující ruční kroky.

Kontrola prostředí

Nejprve zkontrolujte stav vašeho prostředí.

  • Zkontrolujte, jestli je nainstalovaný Active Directory PowerShell a jestli se prostředí spouští s oprávněními správce.
  • Ujistěte se, že je nainstalovaný modul Az.Storage, a pokud ne, nainstalujte ho. Budete potřebovat aspoň verzi 2.0.
  • Po dokončení těchto kontrol zkontrolujte, jestli ve službě AD DS existuje účet počítače (výchozí) nebo přihlašovací účet služby, který už je vytvořený pomocí hlavního názvu uživatele (SPN) nebo hlavního názvu uživatele (UPN), například cifs/your-storage-account-name-here.file.core.windows.net. Pokud účet neexistuje, vytvořte ho podle popisu v následující části.

Důležité

Rutiny prostředí Windows Server Active Directory PowerShell v této části musí být spuštěny v prostředí Windows PowerShell 5.1. PowerShell 7.x a Azure Cloud Shell v tomto scénáři nebudou fungovat.

Ruční vytvoření identity představující účet úložiště ve službě AD

Pokud chcete tento účet vytvořit ručně, nejprve vytvořte nový klíč Kerberos pro účet úložiště a získejte přístupový klíč pomocí následujících rutin PowerShellu. Tento klíč se používá pouze během instalace. Nejde ho použít pro žádné operace řídicí roviny ani roviny dat s účtem úložiště.

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

Rutiny by měly vrátit hodnotu klíče. Jakmile budete mít klíč kerb1, vytvořte účet počítače nebo účet služby ve službě AD v rámci organizační jednotky a klíč použijte jako heslo pro identitu AD.

  1. Hlavní název služby (SPN) nastavte na cifs/your-storage-account-name-here.file.core.windows.net buď v grafickém uživatelském rozhraní AD, nebo spuštěním Setspn příkazu z příkazového řádku Windows jako správce (nezapomeňte nahradit ukázkový text názvem účtu úložiště a <ADAccountName> názvem účtu AD).

    Setspn -S cifs/your-storage-account-name-here.file.core.windows.net <ADAccountName>
    
  2. Pokud máte uživatelský účet, upravte hlavní název uživatele tak, aby odpovídal hlavnímu názvu služby pro objekt AD (musíte mít nainstalované rutiny AD PowerShellu a spouštět rutiny v PowerShellu 5.1 se zvýšenými oprávněními).

    Set-ADUser -Identity $UserSamAccountName -UserPrincipalName cifs/<StorageAccountName>.file.core.windows.net@<DNSRoot>
    
  3. Nastavte heslo účtu AD na hodnotu klíče kerb1.

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

Pokud vaše organizační jednotky vynucuje vypršení platnosti hesla, musíte heslo aktualizovat před maximálním stářím hesla, aby se zabránilo selhání ověřování při přístupu ke sdíleným složkám Azure. Podrobnosti najdete v tématu Aktualizace hesla identity účtu úložiště ve službě AD .

Ponechte si IDENTIFIKÁTOR SID nově vytvořené identity, budete ho potřebovat pro další krok. Identita, kterou jste vytvořili, která představuje účet úložiště, se nemusí synchronizovat s ID Microsoft Entra.

Povolení funkce v účtu úložiště

Upravte následující příkaz tak, aby zahrnoval podrobnosti o konfiguraci vlastností domény v následujícím příkazu a potom ji spusťte, aby funkci povolila. Identifikátor SID účtu úložiště vyžadovaný v následujícím příkazu je identifikátor SID identity, kterou jste vytvořili ve službě AD DS v předchozí části. Ujistěte se, že jste zadali vlastnost ActiveDirectorySamAccountName bez koncového znaku $.

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

Pokud chcete povolit šifrování AES-256, postupujte podle kroků v této části. Pokud plánujete používat šifrování RC4, přeskočte tuto část.

Důležité

Aby bylo možné povolit šifrování AES-256, musí být objekt domény, který představuje váš účet úložiště, účtem počítače (výchozí) nebo přihlašovacím účtem služby v místní doméně AD. Pokud objekt domény nesplňuje tento požadavek, odstraňte ho a vytvořte nový objekt domény, který to dělá. Musíte mít také přístup k zápisu msDS-SupportedEncryptionTypes k atributu objektu.

Rutina, kterou spustíte pro konfiguraci podpory AES-256, závisí na tom, jestli je objekt domény, který představuje váš účet úložiště, počítačový účet nebo přihlašovací účet služby (uživatelský účet). V obou směrech musíte mít nainstalované rutiny AD PowerShellu a spouštět tuto rutinu v PowerShellu 5.1 se zvýšenými oprávněními.

Pokud chcete povolit šifrování AES-256 v účtu počítače, spusťte následující příkaz. Nahraďte <domain-object-identity> hodnoty a <domain-name> nahraďte je.

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

Pokud chcete pro přihlašovací účet služby povolit šifrování AES-256, spusťte následující příkaz. Nahraďte <domain-object-identity> hodnoty a <domain-name> nahraďte je.

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

Po spuštění výše uvedené rutiny nahraďte <domain-object-identity> hodnotu následujícím skriptem a pak spusťte skript pro aktualizaci hesla objektu domény:

$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

Důležité

Pokud jste dříve používali šifrování RC4 a aktualizovali účet úložiště tak, aby používal AES-256, měli byste spustit klist purge na klientovi a pak sdílenou složku znovu připojit, abyste získali nové lístky Kerberos s AES-256.

Ladění

V případě potřeby můžete spuštěním rutiny Debug-AzStorageAccountAuth provést sadu základních kontrol konfigurace AD s přihlášeným uživatelem AD. Tato rutina se podporuje ve verzi AzFilesHybrid verze 0.1.2 nebo novější. Tato rutina se vztahuje pouze na ověřování AD DS. Nefunguje pro účty úložiště s podporou Microsoft Entra Domain Services nebo Microsoft Entra Kerberos. Další informace o kontrolách provedených v této rutině najdete v tématu Nejde připojit sdílené složky Azure s přihlašovacími údaji AD.

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

Ověřte, že je funkce povolená.

Pomocí následujícího skriptu můžete zkontrolovat, jestli je ve vašem účtu úložiště povolená služba Active Directory:

# 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

Pokud je výstup úspěšný, měl by vypadat takto:

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

Další krok

Teď jste ve svém účtu úložiště úspěšně povolili službu AD DS. Pokud chcete tuto funkci používat, musíte přiřadit oprávnění na úrovni sdílené složky.