Mengaktifkan autentikasi AD DS untuk berbagi file Azure

Artikel ini menjelaskan proses untuk mengaktifkan autentikasi Active Directory Domain Services (AD DS) di akun penyimpanan Anda untuk menggunakan kredensial Active Directory lokal (AD) untuk mengautentikasi ke berbagi file Azure.

Penting

Sebelum mengaktifkan autentikasi AD DS, pastikan Anda memahami skenario dan persyaratan yang didukung dalam artikel gambaran umum dan menyelesaikan prasyarat yang diperlukan. Jika lingkungan Direktori Aktif Anda mencakup beberapa forest, lihat Menggunakan Azure Files dengan beberapa forest Direktori Aktif.

Untuk mengaktifkan autentikasi AD DS melalui SMB untuk berbagi file Azure, Anda perlu mendaftarkan akun penyimpanan Azure dengan AD DS lokal Anda lalu mengatur properti domain yang diperlukan di akun penyimpanan. Untuk mendaftarkan akun penyimpanan Anda dengan AD DS, Anda membuat akun komputer (atau akun masuk layanan) yang mewakilinya di AD DS Anda. Anggap proses ini seolah-olah seperti membuat akun yang mewakili server file Windows lokal di AD DS Anda. Ketika fitur diaktifkan di akun penyimpanan, fitur ini berlaku untuk semua berbagi berkas baru dan yang sudah ada di akun.

Berlaku untuk

Jenis berbagi File SMB NFS
Berbagi file standar (GPv2), LRS/ZRS Yes No
Berbagi file standar (GPv2), GRS/GZRS Yes No
Berbagi file premium (FileStorage), LRS/ZRS Yes No

Modul AzFilesHybrid PowerShell menyediakan cmdlet untuk menyebarkan dan mengonfigurasi Azure Files. Ini termasuk cmdlet untuk domain yang bergabung dengan akun penyimpanan ke Active Directory lokal Anda dan mengonfigurasi server DNS Anda. Cmdlet membuat modifikasi yang diperlukan dan mengaktifkan fitur untuk Anda. Karena beberapa bagian cmdlet berinteraksi dengan AD DS lokal Anda, kami menjelaskan apa yang dilakukan cmdlet, sehingga Anda dapat menentukan apakah perubahan selaras dengan kebijakan kepatuhan dan keamanan Anda, dan memastikan Anda memiliki izin yang tepat untuk menjalankan cmdlet. Meskipun sebaiknya gunakan modul AzFilesHybrid, jika Anda tidak dapat melakukannya, kami menyediakan langkah manual.

Penting

Enkripsi AES-256 Kerberos sekarang menjadi satu-satunya metode enkripsi yang didukung oleh modul AzFilesHybrid. Jika Anda lebih suka menggunakan enkripsi RC4, lihat Opsi dua: Melakukan tindakan pengaktifan secara manual. Jika sebelumnya Anda mengaktifkan fitur dengan versi AzFilesHybrid lama (di bawah v0.2.2) yang menggunakan RC4 sebagai metode enkripsi default dan ingin memperbarui untuk mendukung AES-256, lihat memecahkan masalah autentikasi Azure Files SMB.

Prasyarat

Unduh modul AzFilesHybrid

Unduh dan ekstrak modul AzFilesHybrid versi terbaru.

Jalankan Join-AzStorageAccount

Join-AzStorageAccountCmdlet melakukan gabungan domain luring yang setara atas nama akun penyimpanan yang ditentukan. Skrip di bawah ini menggunakan cmdlet ini untuk membuat akun komputer di domain AD Anda. Jika karena alasan apa pun Anda tidak dapat menggunakan akun komputer, Anda dapat mengubah skrip untuk membuat akun masuk layanan sebagai gantinya. Menggunakan enkripsi AES-256 dengan akun masuk layanan didukung dimulai dengan AzFilesHybrid versi 0.2.5.

Akun AD DS yang dibuat oleh cmdlet mewakili akun penyimpanan. Jika akun AD DS dibuat di bawah unit organisasi (OU) yang memberlakukan kedaluwarsa kata sandi, Anda harus memperbarui kata sandi sebelum usia kata sandi maksimum. Gagal memperbarui kata sandi akun sebelum tanggal tersebut mengakibatkan kegagalan autentikasi saat mengakses berbagi berkas Azure. Untuk mempelajari cara memperbarui kata sandi, lihat Memperbarui kata sandi akun AD DS.

Penting

Cmdlet Join-AzStorageAccount akan membuat akun AD untuk mewakili akun penyimpanan (berbagi file) di AD. Anda dapat memilih untuk mendaftar sebagai akun komputer atau akun masuk layanan, lihat TJU untuk rinciannya. Kata sandi akun masuk layanan di AD dapat kedaluwarsa jika masa kedaluwarsa kata sandi default ditetapkan pada domain AD atau unit organisasi. Karena perubahan kata sandi akun komputer didorong oleh komputer klien dan bukan AD, perubahan kata sandi tidak kedaluwarsa di AD meskipun komputer klien mengubah kata sandi mereka secara default setiap 30 hari. Untuk kedua jenis akun, kami menyarankan Anda memeriksa masa kedaluwarsa kata sandi yang sudah dikonfigurasi dan rencanakan untuk memperbarui kata sandi identitas akun penyimpanan Anda dari akun AD sebelum kedaluwarsa. Anda dapat mempertimbangkan untuk membuat Unit Organisasi AD baru di AD dan menonaktifkan kebijakan masa kedaluwarsa kata sandi pada akun komputer atau akun masuk layanan yang sesuai.

Anda harus menjalankan skrip di bawah ini di PowerShell 5.1 pada perangkat yang bergabung dengan domain ke AD DS lokal Anda, menggunakan kredensial AD DS lokal yang memiliki izin untuk membuat akun komputer atau akun masuk layanan di AD target (seperti admin domain). Untuk mengikuti prinsip Hak istimewa terkecil, kredensial AD DS lokal harus memiliki peran Azure berikut:

  • Pembaca di grup sumber daya tempat akun penyimpanan target berada.
  • Kontributor pada akun penyimpanan yang akan digabungkan ke AD DS.

Jika akun yang digunakan untuk bergabung dengan akun penyimpanan di AD DS adalah Pemilik atau Kontributor di langganan Azure tempat sumber daya target berada, akun tersebut sudah diaktifkan untuk melakukan gabungan dan tidak diperlukan penugasan lebih lanjut.

Kredensial AD DS juga harus memiliki izin untuk membuat akun komputer atau akun masuk layanan di AD target. Ganti nilai tempat penampung dengan nilai Anda sendiri sebelum menjalankan skrip.

# 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

Opsi dua: Melakukan tindakan pengaktifan secara manual

Sebagian besar pelanggan harus memilih Opsi satu di atas dan menggunakan modul AzFilesHybrid PowerShell untuk mengaktifkan autentikasi AD DS dengan Azure Files. Namun, jika Anda lebih suka menjalankan langkah-langkah secara manual menggunakan Active Directory PowerShell, langkah-langkahnya diuraikan di sini.

Penting

Jika Anda telah berhasil menjalankan Join-AzStorageAccount skrip di atas, langsung buka bagian Konfirmasi fitur diaktifkan . Anda tidak perlu melakukan langkah-langkah manual berikut.

Memeriksa lingkungan

Pertama, periksa status lingkungan Anda.

  • Periksa apakah Active Directory PowerShell diinstal, dan apakah shell sedang dijalankan dengan hak istimewa administrator.
  • Pastikan modul Az.Storage diinstal, dan instal jika tidak. Anda akan memerlukan setidaknya versi 2.0.
  • Setelah menyelesaikan pemeriksaan tersebut, periksa AD DS Anda untuk melihat apakah ada akun komputer (default) atau akun masuk layanan yang telah dibuat dengan SPN/UPN seperti "cifs/your-storage-account-name-here.file.core.windows.net". Jika akun tidak ada, buat akun seperti yang dijelaskan di bagian berikut.

Penting

Cmdlet PowerShell Active Directory lokal di bagian ini harus dijalankan di Windows PowerShell 5.1. PowerShell 7.x dan Azure Cloud Shell tidak akan berfungsi dalam skenario ini.

Buat identitas yang mewakili akun penyimpanan di AD Anda secara manual

Untuk membuat akun ini secara manual, pertama-tama buat kunci Kerberos baru untuk akun penyimpanan Anda dan dapatkan kunci akses menggunakan cmdlet PowerShell di bawah ini. Kunci ini hanya digunakan selama penyiapan. Kunci tersebut tidak dapat digunakan untuk kontrol atau operasi data plane apa pun terhadap akun penyimpanan.

# 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 harus mengembalikan nilai kunci. Setelah Anda memiliki kunci kerb1, buat akun komputer atau akun layanan di AD di bawah unit organisasi Anda, dan gunakan kunci sebagai kata sandi untuk identitas AD.

  1. Atur SPN ke cifs/your-storage-account-name-here.file.core.windows.net baik di GUI AD atau dengan menjalankan Setspn perintah dari baris perintah Windows sebagai administrator (ingatlah untuk mengganti teks contoh dengan nama akun penyimpanan Anda dan <ADAccountName> dengan nama akun AD Anda).

    Setspn -S cifs/your-storage-account-name-here.file.core.windows.net <ADAccountName>
    
  2. Jika Anda memiliki akun pengguna, ubah UPN agar sesuai dengan SPN untuk objek AD (Anda harus menginstal cmdlet Ad PowerShell dan menjalankan cmdlet di PowerShell 5.1 dengan hak istimewa yang ditingkatkan).

    Set-ADUser -Identity $UserSamAccountName -UserPrincipalName cifs/<StorageAccountName>.file.core.windows.net@<DNSRoot>
    
  3. Atur kata sandi akun AD ke nilai kunci kerb1.

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

Jika OU Anda menerapkan kedaluwarsa kata sandi, Anda harus memperbarui kata sandi sebelum usia maksimum kata sandi untuk mencegah kegagalan autentikasi saat mengakses berbagi berkas Azure. Lihat Perbarui kata sandi identitas akun penyimpanan Anda di AD untuk rinciannya.

Simpan SID identitas yang baru dibuat, Anda akan membutuhkannya untuk langkah berikutnya. Identitas yang Anda buat yang mewakili akun penyimpanan tidak perlu disinkronkan ke ID Microsoft Entra.

Mengaktifkan fitur di akun penyimpanan Anda

Ubah perintah berikut untuk menyertakan detail konfigurasi untuk properti domain dalam perintah berikut, lalu jalankan untuk mengaktifkan fitur tersebut. Akun penyimpanan Sid yang diperlukan dalam perintah berikut adalah SID dari identitas yang Anda buat di AD DS Anda di bagian sebelumnya. Pastikan Anda menyediakan properti ActiveDirectorySamAccountName tanpa tanda '$' berikutnya.

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

Untuk mengaktifkan enkripsi AES-256, ikuti langkah-langkah di bagian ini. Jika Anda berencana menggunakan enkripsi RC4, lewati bagian ini.

Penting

Untuk mengaktifkan enkripsi AES-256, objek domain yang mewakili akun penyimpanan Anda harus merupakan akun komputer (default) atau akun masuk layanan di domain AD lokal. Jika objek domain Anda tidak memenuhi persyaratan tersebut, hapus dan buat objek domain baru yang sesuai persyaratan. Selain itu, Anda harus memiliki akses tulis ke msDS-SupportedEncryptionTypes atribut objek.

Cmdlet yang akan Anda jalankan untuk mengonfigurasi dukungan AES-256 bergantung pada apakah objek domain yang mewakili akun penyimpanan Anda adalah akun komputer atau akun masuk layanan (akun pengguna). Bagaimanapun, Anda harus menginstal cmdlet Ad PowerShell dan menjalankan cmdlet di PowerShell 5.1 dengan hak istimewa yang ditingkatkan.

Untuk mengaktifkan enkripsi AES-256 pada akun komputer, jalankan perintah berikut. Ganti <domain-object-identity> dan <domain-name> dengan nilai Anda.

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

Untuk mengaktifkan enkripsi AES-256 pada akun masuk layanan, jalankan perintah berikut. Ganti <domain-object-identity> dan <domain-name> dengan nilai Anda.

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

Setelah menjalankan cmdlet di atas, ganti <domain-object-identity> di skrip berikut dengan nilai Anda, lalu jalankan skrip untuk menyegarkan kata sandi objek domain:

$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

Penting

Jika sebelumnya Anda menggunakan enkripsi RC4 dan memperbarui akun penyimpanan untuk menggunakan AES-256, Anda harus berjalan klist purge pada klien dan kemudian melepas berbagi file untuk mendapatkan tiket Kerberos baru dengan AES-256.

Awakutu

Jika diperlukan, Anda dapat menjalankan Debug-AzStorageAccountAuth cmdlet untuk melakukan serangkaian pemeriksaan dasar pada konfigurasi AD Anda dengan pengguna AD yang masuk. Cmdlet ini didukung pada versi AzFilesHybrid v0.1.2+ dan yang lebih tinggi. Cmdlet ini hanya berlaku untuk autentikasi AD DS. Ini tidak berfungsi untuk akun penyimpanan yang diaktifkan Microsoft Entra Domain Services atau Microsoft Entra Kerberos. Untuk informasi selengkapnya tentang pemeriksaan yang dilakukan di cmdlet ini, lihat Tidak dapat memasang berbagi file Azure dengan kredensial AD.

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

Konfirmasi fitur diaktifkan

Anda dapat memeriksa untuk mengonfirmasi apakah Direktori Aktif diaktifkan di akun penyimpanan Anda dengan skrip berikut:

# 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

Jika berhasil, output akan terlihat seperti ini:

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

Langkah berikutnya

Anda sekarang telah berhasil mengaktifkan AD DS di akun penyimpanan Anda. Untuk menggunakan fitur ini, Anda harus menetapkan izin tingkat berbagi.