Azure dosya paylaşımları için AD DS kimlik doğrulamasını etkinleştirme

Bu makalede, Azure dosya paylaşımlarında kimlik doğrulaması için şirket içi Active Directory (AD) kimlik bilgilerini kullanmak üzere depolama hesabınızda Active Directory Etki Alanı Hizmetleri (AD DS) kimlik doğrulamasını etkinleştirme işlemi açıklanmaktadır.

Önemli

AD DS kimlik doğrulamasını etkinleştirmeden önce, genel bakış makalesindeki desteklenen senaryoları ve gereksinimleri anladığınızdan ve gerekli önkoşulları tamamladığınızdan emin olun. Active Directory ortamınız birden çok ormana yayıyorsa bkz. Birden çok Active Directory ormanıyla Azure Dosyalar kullanma.

Azure dosya paylaşımları için SMB üzerinden AD DS kimlik doğrulamasını etkinleştirmek için Azure depolama hesabınızı şirket içi AD DS'nize kaydetmeniz ve ardından depolama hesabında gerekli etki alanı özelliklerini ayarlamanız gerekir. Depolama hesabınızı AD DS'ye kaydetmek için AD DS'nizde bunu temsil eden bir bilgisayar hesabı (veya hizmet oturum açma hesabı) oluşturursunuz. Bu işlemi, AD DS'nizdeki bir şirket içi Windows dosya sunucusunu temsil eden bir hesap oluşturmak gibi düşünün. Özellik depolama hesabında etkinleştirildiğinde, hesaptaki tüm yeni ve mevcut dosya paylaşımları için geçerlidir.

Şunlara uygulanır

Dosya paylaşımı türü SMB NFS
Standart dosya paylaşımları (GPv2), LRS/ZRS Yes No
Standart dosya paylaşımları (GPv2), GRS/GZRS Yes No
Premium dosya paylaşımları (filestorage), LRS/ZRS Yes No

AzFilesHybrid PowerShell modülü, Azure Dosyalar dağıtmak ve yapılandırmak için cmdlet'ler sağlar. Depolama hesaplarını şirket içi Active Directory etki alanına katmak ve DNS sunucularınızı yapılandırmak için cmdlet'leri içerir. Cmdlet'ler gerekli değişiklikleri yapar ve özelliği sizin için etkinleştirir. Cmdlet'lerin bazı bölümleri şirket içi AD DS'nizle etkileşimde olduğundan, cmdlet'lerin ne yaptığını açıklarız, böylece değişikliklerin uyumluluk ve güvenlik ilkelerinizle uyumlu olup olmadığını belirleyebilir ve cmdlet'leri yürütmek için uygun izinlere sahip olduğunuzdan emin olabilirsiniz. AzFilesHybrid modülünü kullanmanızı önersek de, bunu yapamıyorsanız el ile adımlar sağlarız.

Önemli

AES-256 Kerberos şifrelemesi artık AzFilesHybrid modülü tarafından desteklenen tek şifreleme yöntemidir. RC4 şifrelemesini kullanmayı tercih ediyorsanız bkz . Seçenek iki: Etkinleştirme eylemlerini el ile gerçekleştirme. Daha önce varsayılan şifreleme yöntemi olarak RC4 kullanan eski bir AzFilesHybrid sürümüyle (v0.2.2'nin altında) özelliği etkinleştirdiyseniz ve AES-256'yı destekleyecek şekilde güncelleştirmek istiyorsanız bkz. SMB kimlik doğrulaması Azure Dosyalar sorunlarını giderme.

Önkoşullar

AzFilesHybrid modülünü indirin

AzFilesHybrid modülünün en son sürümünü indirin ve sıkıştırmasını açın.

Join-Az Depolama Account komutunu çalıştırın

Cmdlet, Join-AzStorageAccount belirtilen depolama hesabı adına çevrimdışı etki alanı katılımının eşdeğerini gerçekleştirir. Aşağıdaki betik, AD etki alanınızda bir bilgisayar hesabı oluşturmak için bu cmdlet'i kullanır. Bilgisayar hesabı kullanamıyorsanız, bunun yerine bir hizmet oturum açma hesabı oluşturmak için betiği değiştirebilirsiniz. Hizmet oturum açma hesaplarıyla AES-256 şifrelemesi kullanılması, AzFilesHybrid 0.2.5 sürümünden itibaren desteklenir.

cmdlet'i tarafından oluşturulan AD DS hesabı, depolama hesabını temsil eder. AD DS hesabı, parola süresinin dolmasını zorunlu kılan bir kuruluş birimi (OU) altında oluşturulduysa, parolayı en uzun parola geçerlilik süresinden önce güncelleştirmeniz gerekir. Hesap parolasının bu tarihten önce güncelleştirilememesi, Azure dosya paylaşımlarına erişilirken kimlik doğrulama hatalarına neden olur. Parolanın nasıl güncelleştirileceğini öğrenmek için bkz . AD DS hesabı parolasını güncelleştirme.

Önemli

Cmdlet, Join-AzStorageAccount AD'deki depolama hesabını (dosya paylaşımı) temsil eden bir AD hesabı oluşturur. Bilgisayar hesabı veya hizmet oturum açma hesabı olarak kaydolmayı seçebilirsiniz, ayrıntılar için bkz . SSS . AD etki alanında veya OU'da varsayılan parola süre sonu süresi ayarlanmışsa, AD'de hizmet oturum açma hesabı parolalarının süresi dolabilir. Bilgisayar hesabı parola değişiklikleri AD değil istemci makine tarafından yönlendirildiğinden, ad'de süresi dolmaz, ancak istemci bilgisayarlar parolalarını varsayılan olarak her 30 günde bir değiştirir. Her iki hesap türü için de yapılandırılan parola süre sonu yaşını denetlemenizi ve ad hesabının depolama hesabı kimliğinizin parolasını en yüksek parola geçerlilik süresinden önce güncelleştirmeyi planlamanızı öneririz. AD'de yeni bir AD Kuruluş Birimi oluşturmayı ve buna göre bilgisayar hesaplarında veya hizmet oturum açma hesaplarındaparola süre sonu ilkesini devre dışı bırakmayı düşünebilirsiniz.

Aşağıdaki betiği PowerShell 5.1'de, etki alanına şirket içi AD DS'nize katılmış bir cihazda, hedef AD'de bir bilgisayar hesabı veya hizmet oturum açma hesabı oluşturma izinlerine sahip şirket içi AD DS kimlik bilgilerini kullanarak (etki alanı yöneticisi gibi) çalıştırmanız gerekir. En az ayrıcalık ilkesini izlemek için şirket içi AD DS kimlik bilgilerinin aşağıdaki Azure rollerine sahip olması gerekir:

  • Hedef depolama hesabının bulunduğu kaynak grubunda Okuyucu .
  • AD DS'ye eklenecek depolama hesabında katkıda bulunan .

AD DS'de depolama hesabına katılmak için kullanılan hesap, hedef kaynakların bulunduğu Azure aboneliğinde Sahip veya Katkıda Bulunan ise, bu hesap birleştirmeyi gerçekleştirmek için zaten etkindir ve başka atama gerekmez.

AD DS kimlik bilgilerinin hedef AD'de bir bilgisayar hesabı veya hizmet oturum açma hesabı oluşturma izinleri de olmalıdır. Betiği yürütmeden önce yer tutucu değerlerini kendi değerlerinizle değiştirin.

# 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

İkinci seçenek: Etkinleştirme eylemlerini el ile gerçekleştirme

Müşterilerin çoğu yukarıdaki Seçenek bir'i seçmeli ve Azure Dosyalar ile AD DS kimlik doğrulamasını etkinleştirmek için AzFilesHybrid PowerShell modülünü kullanmalıdır. Ancak, Adımları Active Directory PowerShell kullanarak el ile yürütmeyi tercih ederseniz, adımlar burada özetlenmiştir.

Önemli

Yukarıdaki betiği zaten başarıyla çalıştırdıysanız Join-AzStorageAccount doğrudan Özelliğin etkinleştirildiğini onaylayın bölümüne gidin. Aşağıdaki el ile adımları gerçekleştirmeniz gerekmez.

Ortamı denetleme

İlk olarak ortamınızın durumunu denetleyin.

  • Active Directory PowerShell'in yüklü olup olmadığını ve kabuğun yönetici ayrıcalıklarıyla yürütülüyor olup olmadığını denetleyin.
  • Az.Depolama modülünün yüklü olduğundan emin olun ve yüklü değilse yükleyin. En az 2.0 sürümü gerekir.
  • Bu denetimleri tamamladıktan sonra, "cifs/your-storage-account-name-here.file.core.windows.net" gibi SPN/UPN ile oluşturulmuş bir bilgisayar hesabı (varsayılan) veya hizmet oturum açma hesabı olup olmadığını görmek için AD DS'nizi denetleyin. Hesap yoksa, aşağıdaki bölümde açıklandığı gibi bir hesap oluşturun.

Önemli

Bu bölümdeki Windows Server Active Directory PowerShell cmdlet'leri Windows PowerShell 5.1'de çalıştırılmalıdır. PowerShell 7.x ve Azure Cloud Shell bu senaryoda çalışmaz.

AD'nizde depolama hesabını el ile temsil eden bir kimlik oluşturma

Bu hesabı el ile oluşturmak için önce depolama hesabınız için yeni bir Kerberos anahtarı oluşturun ve aşağıdaki PowerShell cmdlet'lerini kullanarak erişim anahtarını alın. Bu anahtar yalnızca kurulum sırasında kullanılır. Depolama hesabına yönelik denetim veya veri düzlemi işlemleri için kullanılamaz.

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

Cmdlet'ler anahtar değerini döndürmelidir. Kerb1 anahtarını aldıktan sonra, OU'nuzun altında AD'de bir bilgisayar hesabı veya hizmet hesabı oluşturun ve anahtarı AD kimliğinin parolası olarak kullanın.

  1. SPN'yi AD GUI'de veya Windows komut satırından yönetici olarak komutunu çalıştırarak Setspn cifs/your-storage-account-name-here.file.core.windows.net olarak ayarlayın (örnek metni depolama hesabı adınızla ve <ADAccountName> AD hesap adınızla değiştirmeyi unutmayın).

    Setspn -S cifs/your-storage-account-name-here.file.core.windows.net <ADAccountName>
    
  2. Kullanıcı hesabınız varsa, UPN'yi AD nesnesinin SPN'siyle eşleşecek şekilde değiştirin (YÜKLÜ AD PowerShell cmdlet'leriniz olmalı ve cmdlet'leri yükseltilmiş ayrıcalıklarla PowerShell 5.1'de yürütmelisiniz).

    Set-ADUser -Identity $UserSamAccountName -UserPrincipalName cifs/<StorageAccountName>.file.core.windows.net@<DNSRoot>
    
  3. AD hesabı parolasını kerb1 anahtarının değerine ayarlayın.

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

OU'nuz parola süresinin dolmasını zorunlu kılarsa, Azure dosya paylaşımlarına erişirken kimlik doğrulaması hatalarını önlemek için parolayı en yüksek parola süresinden önce güncelleştirmeniz gerekir. Ayrıntılar için bkz . AD'de depolama hesabı kimliğinizin parolasını güncelleştirme.

Yeni oluşturulan kimliğin SID'sini koruyun; sonraki adım için buna ihtiyacınız olacak. Depolama hesabını temsil eden oluşturduğunuz kimliğin Microsoft Entra Id ile eşitlenmesi gerekmez.

Depolama hesabınızda özelliği etkinleştirme

Aşağıdaki komutu, aşağıdaki komutta etki alanı özelliklerinin yapılandırma ayrıntılarını içerecek şekilde değiştirin ve ardından özelliği etkinleştirmek için çalıştırın. Aşağıdaki komutta gereken depolama hesabı SID'i, önceki bölümde AD DS'nizde oluşturduğunuz kimliğin SID'sini oluşturur. ActiveDirectorySamAccountName özelliğini sondaki '$' işareti olmadan sağladığından emin olun.

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

AES-256 şifrelemesini etkinleştirmek için bu bölümdeki adımları izleyin. RC4 şifrelemesi kullanmayı planlıyorsanız bu bölümü atlayın.

Önemli

AES-256 şifrelemesini etkinleştirmek için, depolama hesabınızı temsil eden etki alanı nesnesinin şirket içi AD etki alanında bir bilgisayar hesabı (varsayılan) veya hizmet oturum açma hesabı olması gerekir. Etki alanı nesneniz bu gereksinimi karşılamıyorsa silin ve bunu yapabilen yeni bir etki alanı nesnesi oluşturun. Ayrıca, nesnesinin msDS-SupportedEncryptionTypes özniteliğine yazma erişiminiz olmalıdır.

AES-256 desteğini yapılandırmak için çalıştırabileceğiniz cmdlet, depolama hesabınızı temsil eden etki alanı nesnesinin bir bilgisayar hesabı mı yoksa hizmet oturum açma hesabı mı (kullanıcı hesabı) olduğuna bağlıdır. Her iki durumda da, AD PowerShell cmdlet'lerinin yüklü olması ve cmdlet'i yükseltilmiş ayrıcalıklarla PowerShell 5.1'de yürütmeniz gerekir.

Bir bilgisayar hesabında AES-256 şifrelemesini etkinleştirmek için aşağıdaki komutu çalıştırın. ve <domain-name> değerlerini değerlerinizle değiştirin<domain-object-identity>.

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

Hizmet oturum açma hesabında AES-256 şifrelemesini etkinleştirmek için aşağıdaki komutu çalıştırın. ve <domain-name> değerlerini değerlerinizle değiştirin<domain-object-identity>.

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

Yukarıdaki cmdlet'i çalıştırdıktan sonra aşağıdaki betikteki değerini değerinizle değiştirin <domain-object-identity> ve ardından etki alanı nesne parolanızı yenilemek için betiği çalıştırın:

$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

Önemli

Daha önce RC4 şifrelemesi kullandıysanız ve depolama hesabını AES-256 kullanacak şekilde güncelleştirdiyseniz, istemcide çalıştırıp klist purge AES-256 ile yeni Kerberos biletleri almak için dosya paylaşımını yeniden bağlamanız gerekir.

Hata ayıklama

Gerekirse, oturum açmış AD kullanıcısıyla Debug-AzStorageAccountAuth AD yapılandırmanızda bir dizi temel denetim gerçekleştirmek için cmdlet'ini çalıştırabilirsiniz. Bu cmdlet AzFilesHybrid v0.1.2+ ve üzeri sürümlerde desteklenir. Bu cmdlet yalnızca AD DS kimlik doğrulaması için geçerlidir. Microsoft Entra Domain Services veya Microsoft Entra Kerberos özellikli depolama hesapları için çalışmaz. Bu cmdlet'te gerçekleştirilen denetimler hakkında daha fazla bilgi için bkz . Ad kimlik bilgileriyle Azure dosya paylaşımları bağlanamıyor.

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

Özelliğin etkinleştirildiğini onaylayın

Aşağıdaki betikle depolama hesabınızda Active Directory'nin etkinleştirilip etkinleştirilmediğini denetleyebilirsiniz:

# 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

Başarılı olursa çıkış şu şekilde görünmelidir:

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

Sonraki adımlar

Artık depolama hesabınızda AD DS'i başarıyla etkinleştirdiniz. Özelliği kullanmak için paylaşım düzeyi izinleri atamanız gerekir.