Şirket İçi AD Kimlik Doğrulaması ile Azure Dosya Paylaşımı Nasıl Kurulur
Windows yöneticisiyseniz, muhtemelen bir Active Directory (AD) etki alanındasınız ve çok fazla düşünmeden her gün birden fazla SMB dosya paylaşımına sorunsuz bir şekilde bağlanıyorsunuz. Bunun nedeni, AD'nin, oturum açmış olduğunuz kimlik bilgilerini paylaşıma aktarmak için tek oturum açma (SSO) yeteneklerini sağlamasıdır. Peki Azure Dosya paylaşımları ne olacak?
Azure Dosyaları hizmeti, bulutta bir Azure depolama hesabı tarafından desteklenen SMB paylaşımları oluşturmanıza olanak tanır. Varsayılan olarak Azure dosya paylaşımları, kullanıcıların kimliğini Azure Active Directory (AAD) temel alarak doğrulayacak şekilde ayarlanmıştır. Ancak belki de AAD kullanmıyorsunuz ve kullanıcıların kimliklerini mevcut şirket içi AD'nize göre doğrulamayı tercih ediyorsunuz.
Bu öğreticide, şirket içi AD kullanıcı hesaplarına dayalı olarak paylaşıma kullanıcı erişiminin kimliğini doğrulayabilen bir depolama hesabı tarafından desteklenen bir Azure dosya paylaşımının nasıl kurulacağını öğreneceksiniz. Tüm bunları PowerShell kullanarak yapacaksınız.
Haydi gidelim!
Önkoşullar
Bu yazının çoğunluğu bir öğretici olacaktır. Takip etmeyi düşünüyorsanız aşağıdakilere sahip olduğunuzdan emin olun:
- Bir Active Directory etki alanı.
- Tek bir Active Directory grubu ve kullanıcısı - Bu eğitimde test-group-1 adlı bir AD grubu ve test-user-1 adlı bir kullanıcı hesabı ve < parolası kullanılacaktır. Dosya paylaşımına erişimi test etmek içinp@$$w0rd12.
- Etki alanına katılmış bir Windows 10 bilgisayarda, bilgisayar nesneleri oluşturma izinlerine sahip bir kullanıcıyla oturum açıldı.
- Windows PowerShell v5.1 veya üzeri. Eğitimde PowerShell 7.1 kullanılacaktır.
-
Az, ActiveDirectory ve AzFilesHybrid PowerShell modülleri yüklü. Bu eğitimde aşağıdaki sürümler kullanılacaktır:
- Az v5.8.0
- ActiveDirectory v1.0.1.0
- AzFilesHybrid v0.2.3
Connect-AzAccount cmdlet'i kullanılarak PowerShell'de Azure'da kimlik doğrulaması yapıldı.- Depolama hesapları oluşturma iznine sahip bir Azure AD hesabı.
- İçinde demo kaynakları oluşturulacak bir Azure kaynak grubu. Öğreticide ATAAzureFileDemo adlı bir kaynak grubu kullanılacaktır.
Eğitim Özeti
Bu eğitim altı adıma ayrılmıştır. Şirket içi AD ortamınızdan erişimin kimliğini doğrulayan, tam işlevli bir Azure dosya paylaşımı kurulumuna sahip oluncaya kadar her adım bir öncekinin üzerine inşa edilecektir!
- Yeni bir depolama hesabı oluşturma
- Azure dosya paylaşımı oluşturuluyor.
- Depolama hesabını şirket içi Active Directory etki alanınıza ekleme.
- Depolama hesabı erişim anahtarını kullanarak dosya paylaşımını bağlama.
- Paylaşım izinlerini atama.
- Depolama hesabına atanan bilgisayar hesabı parolasının yenilenmesi.
Artık neyle karşı karşıya olduğunuza dair bir fikriniz olduğuna göre PowerShell konsolunuzu açın ve demolara geçelim!
Depolama Hesabı Oluşturma
Şirket içi AD kimlik doğrulaması için bir Azure dosya paylaşımı ayarlamak üzere öncelikle Azure dosya paylaşımının kullanacağı depolama hesabını oluşturmanız gerekir. Bunu yapmak için, Ad, kaynak grubu (ResourceGroupName), Azure bölgesi (Konum) ve SKU'yu (SkuName) aşağıda gösterildiği gibi belirtin.
Depolama hesabı adının 15 karakter veya daha az olduğundan emin olun. Öğreticinin ilerleyen kısımlarında depolama hesabını temsil edecek bir AD bilgisayar hesabı oluşturacaksınız. AD bilgisayar hesapları 15 karakterle sınırlıdır.
Aşağıdaki örnek, UKWest bölgesinde Standard_LRS SKU'ya sahip ataazurefiledemo adında genel olarak benzersiz bir depolama hesabı oluşturur. Aşağıdaki komut Standard_LRS SKU'yu kullanır çünkü dayanıklılık bu demo için bir sorun değildir.
Depolama hesabından daha fazla performans istiyorsanız ve katı hal tabanlı donanıma ihtiyacınız varsa,
FileStoragebağımsız değişkeniyleKindparametresini belirtin.
New-AzStorageAccount -ResourceGroupName "ATAAzureFileDemo" -Name "ataazurefile" -Location "ukwest" -SkuName "Standard_LRS"Microsoft, Azure dosya paylaşımlarının yalnızca diğer Azure dosya paylaşımlarıyla birlikte depolama hesaplarına dağıtılmasını önerir. Bu depolama hesabında bloblar, tablolar vb. başka kaynaklar oluşturmayın.
Azure Dosya Paylaşımı Oluşturma
Depolama hesabını oluşturduktan sonra Azure dosya paylaşımını oluşturmanın zamanı geldi. Bunu yapmak için aşağıda gösterildiği gibi New-AzRmStorageShare PowerShell komutunu çağırın.
Aşağıdaki komut, ataazurefile adlı bir depolama hesabı tarafından desteklenen ATAAzureFileDemo kaynak grubunda atafileshare adlı bir Azure dosya paylaşımı oluşturur.
Bu Azure dosya paylaşımını bir üretim ortamında kuruyorsanız Premium veya Sıcak erişim katmanlarını tercih edebilirsiniz.
New-AzRmStorageShare -ResourceGroupName "ATAAzureFileDemo" -StorageAccountName "ataazurefile" -Name "atafileshare"Depolama Hesabını Active Directory'ye Katma
Artık bir depolama hesabı ve dosya paylaşımı oluşturduğunuza göre, depolama hesabının kendisini hedef etki alanınızın bir üyesi yapmanız gerekir.
Şirket içi Active Directory etki alanının üyesi olarak bir Azure depolama hesabı eklemek için şunları yapmanız gerekir:
- Kimlik doğrulamayla kullanmak üzere iki depolama hesabı anahtarı oluşturun (biri paylaşımı başlangıçta yapılandırmak için, diğeri ise yakında depolama hesabının kullanacağı AD bilgisayar hesabını döndürmek ve yenilemek için).
- Depolama hesabının kimlik doğrulama için kullanacağı depolama hesabı için şirket içi bir AD bilgisayar hesabı nesnesi oluşturun.
- Etki alanında depolama hesabının kimliğini doğrulamak için Kerberos anahtarlarından birini bilgisayar nesnesinin parolası olarak atayın.
- Depolama hesabının bilgisayar nesnesine bir CIFS hizmet asıl adı (SPN) atayın. Kerberos kimlik doğrulama işlemi bu SPN'yi gerektirir.
- Depolama hesabına "etki alanına katılmak" için depolama hesabındaki Active Directory Etki Alanı Hizmetleri özelliğini etkinleştirin.
Kerberos tokenlarını oluşturarak başlayalım.
Azure Depolama Hesabı Anahtarlarını Oluşturma
Diğer tüm bilgisayar hesapları gibi, depolama hesabının da AD'de kimlik doğrulaması yapmak için bir parola kullanması gerekir. Ancak Azure depolama hesabı otomatik olarak bir AD parolası almadığından bir tane oluşturmanız gerekir. Bunu yapmak için parola olarak kullanılacak birkaç Azure Depolama Hesabı anahtarı oluşturmanız gerekir.
Depolama hesabı anahtarları, dosya paylaşımını ilk kez yapılandırırken ve gelecekte AD bilgisayar nesnesi parola yenilemelerinde kullanılacak parola görevi görecek.
Depolama hesabının anahtarlarını oluşturmak için New-AzStorageAccountKey PowerShell komutunu yürütün ve şunları sağlayın:
- Depolama hesabının bulunduğu kaynak grubunun adı (
ResourceGroupName) - Depolama hesabının adı (
Ad) - Her jeton için bir
KeyName.
Aşağıdaki örnek, bu depolama hesabında kimlik doğrulama için hangi anahtarların kullanılacağını kolayca belirlemek amacıyla kerb1 ve kerb2'yi KeyName olarak belirtir.
New-AzStorageAccountKey -ResourceGroupName "ATAAzureFileDemo" -Name "ataazurefile" -KeyName "kerb1"
New-AzStorageAccountKey -ResourceGroupName "ATAAzureFileDemo" -Name "ataazurefile" -KeyName "kerb2"
Active Directory Bilgisayar Hesabını Oluşturma
Azure depolama hesabı anahtarlarını oluşturduktan sonra depolama hesabı için AD bilgisayar nesnesini oluşturmanın zamanı geldi.
Depolama hesabında ormanlar arası kimlik doğrulamasına izin vermeniz gerekiyorsa bazı ek yapılandırmalar yapmanız gerekir. Basit olması açısından, depolama hesabının AD bilgisayar nesnesini, ona erişecek kullanıcıları içeren aynı etki alanında oluşturun.
Öncelikle bilgisayar nesnesini oluşturun, ilk belirtecin değerini sorgulayın (bu eğitimde kerb1) ve onu bir değişkene ($Token) kaydedin. Daha sonra, bu belirteci kullanarak, aşağıda gösterildiği gibi, belirtecin değerini bilgisayar hesabının parolası olarak atayan New-ADComputer komutunu kullanarak bilgisayar nesnesini oluşturun.
## Find the value of the key you just created by finding all of the storage account keys using Get-AzStorageAccountKey (ListKerbKey) and filter all results for only those matching the key name of kerb1
$Token = (Get-AzStorageAccountKey -ResourceGroupName "ATAAzureFileDemo" -Name "ataazurefile" -ListKerbKey | Where-Object {$_.KeyName -eq "kerb1"}).Value
## Create the AD computer object called ataazurefile assigning the password as the value of the storage account key. The computer account MUST be the exact same name as the storage account.
New-ADComputer -Name "ataazurefile" -AccountPassword (ConvertTo-SecureString -AsPlainText $Token -Force)Bilgisayar hesabını başka bir kuruluş biriminde oluşturmak istiyorsanız
Yeni-AdComputer'ınPathparametresini belirtin.
Depolama Hesabının Bilgisayar Nesnesine CIFS SPN Atama
Artık depolama hesabının bilgisayar nesnesini oluşturduğunuza göre, ona bir CIFS SPN atamanız gerekir. AD'deki Kerberos kimlik doğrulaması, CIFS hizmetini bilgisayar hesabıyla ilişkilendirmek için bu SPN'yi kullanır.
Aşağıda gösterildiği gibi Set-ADComputer PowerShell komutunu kullanarak SPN'yi bilgisayar nesnesine atayın. Aşağıdaki komut, depolama hesabının tam etki alanı adını (FQDN) temsil eden ataazurefile.file.core.windows.net CIFS SPN'sini bir AD bilgisayar nesnesinin ataazurefile adlı samAccountName'ine ekler. .
Depolama hesabınızın FQDN'sini bilmiyorsanız,
([uri](Get-AzStorageAccount -ResourceGroupName "ATAAzureFileDemo" -Name "ataazurefile").PrimaryEndpoints.File).Hostkomutunu çalıştırın.
Set-ADComputer -Identity "ataazurefile$" -ServicePrincipalNames @{Add="cifs/ataazurefile.file.core.windows.net"}Depolama Hesabında Active Directory Etki Alanı Hizmetlerini Etkinleştirme
Depolama hesabını şirket içi AD etki alanınıza eklemenin son adımı olarak artık depolama hesabında AD etki alanı hizmetlerini etkinleştirmeniz gerekir. Bir depolama hesabında AD Etki Alanı hizmetlerinin etkinleştirilmesi, önceden yapılandırılmışsa Azure AD kimlik doğrulamasını devre dışı bırakır ve depolama hesabı için şirket içi Active Directory özelliğini etkinleştirir.
Azure depolama hesabında AD etki alanı hizmetlerini etkinleştirmek için Set-AzStorageAccount PowerShell komutunu kullanın. Ancak önce AD etki alanınızın GUID'ini, SID'sini ve Azure depolama hesabına ait bilgisayar hesabının SID'sini bulmanız gerekir.
Aşağıdaki kod parçacığı, Set-AzStorageAccount'a iletilecek gerekli tüm GUID'leri ve SID'leri sorgulamak için Get-ADDomain ve Get-ADComputer'ı kullanır. Daha sonra, depolama hesabında AD Etki Alanı Hizmetlerini etkinleştirmek üzere Set-AzStorageAccount cmdlet'ine parametreleri iletmek için PowerShell sıçramasını kullanır.
Parametre sıçraması kavramı hakkında daha fazla bilgiyi burada bulabilirsiniz!
## Find the on-prem AD domain's GUID
$DomainGuid = (Get-ADDomain -Identity "ata_domain").ObjectGuid.Guid
## Find the on-prem AD domain's SID
$DomainSid = (Get-ADDomain -Identity "ata_domain").DomainSID.Value
## Find the storage account's AD computer account's SID
$StorAccountSid = (Get-ADComputer -Identity "ataazurefile").SID.Value
## Provide Set-AzStorageAccount with all appropriate GUIDs and SIDs
## along with the AD domain it should be a part of
$Splat = @{
ResourceGroupName = "ATAAzureFileDemo"
Name = "ataazurefile"
EnableActiveDirectoryDomainServicesForFile = $true
ActiveDirectoryDomainName = "ata_domain.local"
ActiveDirectoryNetBiosDomainName = "ata_domain"
ActiveDirectoryForestName = "ata_domain"
ActiveDirectoryDomainGuid = $DomainGuid
ActiveDirectoryDomainsid = $DomainSid
ActiveDirectoryAzureStorageSid = $StorAccountSid
}
Set-AzStorageAccount @SplatAzure Dosya Paylaşımını Bağlama
Artık dosya paylaşımı için Azure dosya paylaşımını ve AD bilgisayar hesabını kurduğunuza göre, dosya paylaşımına bağlanıp erişemeyeceğinizi görmenin zamanı geldi. Şu anda Azure dosya paylaşımına erişim izni olan tek AD hesabı, depolama hesabının kendi AD bilgisayar hesabıdır.
Öncelikle, dosya paylaşımını bağlamak için Get-AzStorageAccountKey komutunu kullanarak ilk depolama hesabı anahtarının değerini bulun ve bunu Active Directory Bilgisayar Hesabını Oluşturma 'de gerçekleştirildiği gibi bir değişkene atayın. bölümü.
Değeri bir değişkene atamanız gerekmez ancak paylaşımı bağlamaya çalıştığınızda sonraki komuta geçmek daha kolay olacaktır.
$Key = (Get-AzStorageAccountKey -ResourceGroupName "ATAAzureFileDemo" -Name "ataazurefile" | Where-Object {$_.KeyName -eq "key1"}).ValueDaha sonra, paylaşımı Windows'ta bir sürücü harfine bağlamak için net use komutunu çalıştırın. Aşağıdaki komut, ataazurefile depolama hesabında barındırılan ve depolama hesabı anahtarını kullanarak ataazurefile AD bilgisayar hesabı olarak kimlik doğrulaması yapan atafileshare adlı bir Azure dosya paylaşımını bağlar.
net use S: \\ataazurefile.file.core.windows.net\atafileshare /user:ata_demo\ataazurefile $KeyDepolama hesabı erişim anahtarı, depolama hesabına ve dosya paylaşımına tam yönetici erişimi sağlar. Gerekmedikçe erişim anahtarını kullanmayın, ancak dosya paylaşımını ilk kez yapılandırırken, size yeterli erişim sağlayacak tek hesap olduğundan paylaşımdaki NTFS izinlerini yapılandırmak için depolama hesabı anahtarını kullanmanız gerekir.
Paylaşım İzinlerini Yapılandırma
Bu noktada, depolama hesabı anahtarını kullanarak kimliği doğrulanmış Windows Gezgini'ndeki paylaşıma göz atabilirsiniz. Ama henüz işiniz bitmedi. Artık uygun AD kullanıcı hesaplarının Azure dosya paylaşımına erişmesine izin vermelisiniz.
Paylaşım iznini birkaç farklı yolla ayarlayabilirsiniz ancak sonuçta AD kullanıcı haklarını üç Azure rolünden birine atamanız gerekir.
- Depolama Dosyası Verileri SMB Paylaşım Okuyucusu - SMB üzerinden Azure Depolama dosya paylaşımlarında okuma erişimine izin verir
- Depolama Dosyası Verileri SMB Paylaşımına Katkıda Bulunan - SMB üzerinden Azure Depolama dosya paylaşımlarında okuma, yazma ve silme erişimine izin verir.
- Depolama Dosyası Verileri SMB Paylaşımı Yükseltilmiş Katılımcı - SMB üzerinden Azure Depolama dosya paylaşımlarındaki Windows ACL'lerinin okunmasına, yazılmasına, silinmesine ve değiştirilmesine olanak tanır.
Gelecekte kullanıcı erişimini kolayca eklemek ve kaldırmak için, bu öğretici bir AD grubunu (test-group-1) bir role atayacaktır; böylece grup içindeki tüm kullanıcılar (test- gibi) user-1), bu rol tarafından atanan izinleri devralır.
Rol ataması, depolama hesabı nesnesi düzeyinde gerçekleşecektir; bu, dosya paylaşımı nesnesi düzeyinde açık bir reddetme ataması yapılandırılmadığı sürece, bu depolama hesabında oluşturulan tüm dosya paylaşım nesnelerinin varsayılan olarak bu rol atamasını devralacağı anlamına gelir.
AD grubu haklarını gerekli Azure rolüne atamak için rolü atamak üzere New-AzRoleAssignment PowerShell komutunu çağırın. Aşağıdaki komut AD grubunun SID'sini, Azure rol tanımını ve depolama hesabının kimliğini bulur. Daha sonra bu değerleri, grubu role atamak üzere New-AzRoleAssignment komutuna geçirmek için kullanır.
## Find the AD group you'd like to assign the role
$AdGroup = Get-AzADGroup -DisplayName "test-group-1"
## Find the Azure role definition you'd like to assign to the share
$AzRole = Get-AzRoleDefinition -Name "Storage File Data SMB Share Contributor"
## Find the storage account's ID
$StorAccId = (Get-AzStorageAccount -ResourceGroupName "ATAAzureFileDemo" -StorageAccountName "ataazurefile").Id
## Assign the AD group to the role limiting the scope to the storage account
New-AzRoleAssignment -ObjectId $AdGroup.Id -RoleDefinitionName $AzRole.Name -Scope $StorAccIdArtık net use komutunu kullanarak test kullanıcısının AD kimlik bilgilerini kullanarak paylaşımı bağlayabilirsiniz.
Önceki adımdaki depolama hesabı anahtarını kullanarak hâlâ bağlıysanız, önce
net use /deletekomutunu kullanarak paylaşım bağlantısını kesmeniz gerekir.
net use S: \\ataazurefile.file.core.windows.net\atafileshare /user:ata_demo\\test-user-1 p@$$w0rd12Paylaşımı bağladıktan sonra Windows Gezgini'ni kullanarak ona göz atabilmeniz gerekir, ancak bu sefer bir etki alanı hesabı kullanarak bağlandınız!
Varsayılan olarak,
NT AUTHORITY\Authenticated Usersgrubunun Azure dosya paylaşımının kökünde değişiklik izni vardır; bu, kimliği doğrulanmış herhangi bir AD kullanıcı hesabının paylaşımdaki herhangi bir şeyi değiştirebileceği anlamına gelir. Bu nedenle, bundan sonra NTFS izinlerini kilitlediğinizden emin olun!
İsteğe bağlı: Bilgisayar Hesabı Parolasını Yenileme
Kurulumu bitirmiş olsanız bile, AD etki alanınız bilgisayar hesapları için parola süresinin sona ermesini zorunlu kılıyorsa hâlâ devam eden bir sorunla karşılaşabilirsiniz.
Güvende olmak için, depolama hesabının bilgisayar hesabını süresi dolmadan önce düzenli olarak değiştirmek en iyisidir. Bunu yapmak için AzFilesHybrid PowerShell modülünde Update-AzStorageAccountADObjectPassword komutunu kullanın. Bu komut, depolama hesabı anahtar rotasyonuna benzer eylemler gerçekleştirir.
Aşağıdaki komut ilk önce AD bilgisayar nesnesi parolasını daha önce oluşturduğunuz kerb2 Kerberos belirtecine döndürür. Daha sonra kerb1 belirtecini yeniden oluşturur ve AD bilgisayar nesnesini yeniden bu yeni belirtece döndürür. Bu eylem, kerb1 belirtecinin yenilenmesi sırasında olası hizmet kaybını önler.
$Splat = @{
RotateToKerbKey = "kerb2"
ResourceGroupName = "ATAAzureFileDemo"
StorageAccountName = "ataazurefile"
}
Update-AzStorageAccountADObjectPassword @SplatYukarıdaki komutu kullanarak, AD Etki Alanı hizmetlerinin etkin olduğu tüm Azure depolama hesaplarını bulmak için bir PowerShell foreach döngüsü oluşturabilir ve aşağıdaki PowerShell betiği aracılığıyla tümünün parolasını güncelleyebilirsiniz.
## Find all storage accounts in the subscription that have AD Domain
## services enabled
$AdStrAccs = Get-AzStorageAccount | Where-Object {$_.AzureFilesIdentityBasedAuth.DirectoryServiceOptions -eq "AD"}
## Process each storage account found and update their password with the storage
## account key (kerb2) created earlier.
foreach ($StrAcc in $AdStrAccs) {
$Splat = @{
RotateToKerbKey = "kerb2"
ResourceGroupName = $StrAcc.ResourceGroupName
StorageAccountName = $StrAcc.StorageAccountName
}
Update-AzStorageAccountADObjectPassword @Splat
}
Sonuç
Bu öğreticide, kimlik doğrulama ve yetkilendirme için şirket içi Active Directory kullanacak şekilde bir Azure Dosya paylaşımının nasıl yapılandırılacağını öğrendiniz. Bu yapılandırmanın kullanılması, eski şirket içi SMB dosya sunucularını geçirmenize yardımcı olacaktır.
Azure dosya paylaşımını şirket içi AD kimlik doğrulamasını kullanacak şekilde yapılandırmak için başka hangi kullanım örneklerini görebilirsiniz?


