Parte 1: abilitare l'autenticazione di servizi di dominio Active Directory per le condivisioni file di AzurePart one: enable AD DS authentication for your Azure file shares

Prima di abilitare l'autenticazione Active Directory Domain Services (AD DS), assicurarsi di aver letto l' articolo introduttivo per comprendere gli scenari e i requisiti supportati.Before you enable Active Directory Domain Services (AD DS) authentication, make sure you've read the overview article to understand the supported scenarios and requirements.

Questo articolo descrive il processo necessario per abilitare l'autenticazione Active Directory Domain Services (AD DS) nell'account di archiviazione.This article describes the process required for enabling Active Directory Domain Services (AD DS) authentication on your storage account. Dopo aver abilitato la funzionalità, è necessario configurare l'account di archiviazione e i servizi di dominio Active Directory per usare le credenziali di servizi di dominio Active Directory per l'autenticazione nella condivisione file di Azure.After enabling the feature, you must configure your storage account and your AD DS, to use AD DS credentials for authenticating to your Azure file share. Per abilitare l'autenticazione di servizi di dominio Active Directory tramite SMB per le condivisioni file di Azure, è necessario registrare l'account di archiviazione con servizi di dominio Active Directory e quindi impostare le proprietà del dominio richieste nell'account di archiviazione.To enable AD DS authentication over SMB for Azure file shares, you need to register your storage account with AD DS and then set the required domain properties on the storage account.

Per registrare l'account di archiviazione con servizi di dominio Active Directory, creare un account che lo rappresenti in servizi di dominio Active Directory.To register your storage account with AD DS, create an account representing it in your AD DS. Questo processo può essere considerato come la creazione di un account che rappresenta un file server Windows locale in servizi di dominio Active Directory.You can think of this process as if it were like creating an account representing an on-premises Windows file server in your AD DS. Quando la funzionalità è abilitata nell'account di archiviazione, viene applicata a tutte le condivisioni file nuove ed esistenti nell'account.When the feature is enabled on the storage account, it applies to all new and existing file shares in the account.

I cmdlet nel modulo AzFilesHybrid di PowerShell effettuano le modifiche necessarie e abilitano la funzionalità.The cmdlets in the AzFilesHybrid PowerShell module make the necessary modifications and enables the feature for you. Poiché alcune parti dei cmdlet interagiscono con Active Directory Domain Services locale, viene illustrato il funzionamento dei cmdlet, pertanto è possibile determinare se le modifiche sono allineate ai criteri di conformità e sicurezza e assicurarsi di disporre delle autorizzazioni appropriate per eseguire i cmdlet.Since some parts of the cmdlets interact with your on-premises AD DS, we explain what the cmdlets do, so you can determine if the changes align with your compliance and security policies, and ensure you have the proper permissions to execute the cmdlets. Sebbene sia consigliabile usare il modulo AzFilesHybrid, se non è possibile eseguire questa operazione, vengono forniti i passaggi necessari per eseguirli manualmente.Though we recommend using AzFilesHybrid module, if you are unable to do so, we provide the steps so that you may perform them manually.

Scaricare il modulo AzFilesHybridDownload AzFilesHybrid module

  • Scaricare e decomprimere il modulo AzFilesHybrid (modulo GA: v 0.2.0 +) Si noti che la crittografia Kerberos AES 256 è supportata in 0.2.2 o versione successiva.Download and unzip the AzFilesHybrid module (GA module: v0.2.0+) Note that AES 256 kerberos encryption is supported on v0.2.2 or above. Se è stata abilitata la funzionalità con una versione di AzFilesHybrid inferiore a v 0.2.2 e si vuole eseguire l'aggiornamento per supportare la crittografia Kerberos AES 256, fare riferimento a questo articolo.If you have enabled the feature with a AzFilesHybrid version below v0.2.2 and want to update to support AES 256 Kerberos encryption, please refer to this article.
  • Installare ed eseguire il modulo in un dispositivo che è aggiunto a un dominio ad DS locale con le credenziali di servizi di dominio Active Directory che dispongono delle autorizzazioni per creare un account di accesso al servizio o un account computer nell'annuncio di destinazione.Install and execute the module in a device that is domain joined to on-premises AD DS with AD DS credentials that have permissions to create a service logon account or a computer account in the target AD.
  • Eseguire lo script con una credenziale AD DS locale sincronizzata con la Azure AD.Run the script using an on-premises AD DS credential that is synced to your Azure AD. Le credenziali di servizi di dominio Active Directory locali devono avere il proprietario dell'account di archiviazione o le autorizzazioni del ruolo di Azure collaboratore.The on-premises AD DS credential must have either the storage account owner or the contributor Azure role permissions.

Esegui Join-AzStorageAccountForAuthRun Join-AzStorageAccountForAuth

Il Join-AzStorageAccountForAuth cmdlet esegue l'equivalente di un join di dominio offline per conto dell'account di archiviazione specificato.The Join-AzStorageAccountForAuth cmdlet performs the equivalent of an offline domain join on behalf of the specified storage account. Lo script usa il cmdlet per creare un account computer nel dominio ad.The script uses the cmdlet to create a computer account in your AD domain. Se per qualsiasi motivo non è possibile utilizzare un account computer, è possibile modificare lo script per creare un account di accesso al servizio .If for whatever reason you cannot use a computer account, you can alter the script to create a service logon account instead. Se si sceglie di eseguire il comando manualmente, è necessario selezionare l'account più appropriato per l'ambiente in uso.If you choose to run the command manually, you should select the account best suited for your environment.

L'account di Active Directory Domain Services creato dal cmdlet rappresenta l'account di archiviazione.The AD DS account created by the cmdlet represents the storage account. Se l'account di servizi di dominio Active Directory viene creato in un'unità organizzativa (OU) che impone la scadenza della password, è necessario aggiornare la password prima della validità massima della password.If the AD DS account is created under an organizational unit (OU) that enforces password expiration, you must update the password before the maximum password age. Se non si aggiorna la password dell'account prima di tale data, si verificano errori di autenticazione durante l'accesso alle condivisioni file di Azure.Failing to update the account password before that date results in authentication failures when accessing Azure file shares. Per informazioni su come aggiornare la password, vedere aggiornare la password dell' account Active DirectoryDomain Services.To learn how to update the password, see Update AD DS account password.

Sostituire i valori segnaposto con quelli personalizzati nei parametri riportati di seguito prima di eseguirli in PowerShell.Replace the placeholder values with your own in the parameters below before executing it in PowerShell.

Importante

Il cmdlet Domain Join creerà un account AD per rappresentare l'account di archiviazione (condivisione file) in Active Directory.The domain join cmdlet will create an AD account to represent the storage account (file share) in AD. È possibile scegliere di eseguire la registrazione come account computer o account di accesso al servizio. per informazioni dettagliate, vedere le domande frequenti .You can choose to register as a computer account or service logon account, see FAQ for details. Per gli account computer, esiste una scadenza della password predefinita impostata in Active Directory a 30 giorni.For computer accounts, there is a default password expiration age set in AD at 30 days. Analogamente, è possibile che l'account di accesso del servizio disponga di una data di scadenza della password predefinita impostata sul dominio AD o sull'unità organizzativa (OU).Similarly, the service logon account may have a default password expiration age set on the AD domain or Organizational Unit (OU). Per entrambi i tipi di account, è consigliabile verificare la scadenza della password configurata nell'ambiente di Active Directory e pianificare l'aggiornamento della password dell'identità dell'account di archiviazione dell'account di Active Directory prima della validità massima della password.For both account types, we recommend you check the password expiration age configured in your AD environment and plan to update the password of your storage account identity of the AD account before the maximum password age. È possibile prendere in considerazione la creazione di una nuova unità organizzativa ad (OU) in Active Directory e la disabilitazione dei criteri di scadenza delle password per account computer o account di accesso del servizio di conseguenza.You can consider creating a new AD Organizational Unit (OU) in AD and disabling password expiration policy on computer accounts or service logon accounts accordingly.

#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 with an Azure AD credential that has either storage account owner or contributer Azure role assignment
Connect-AzAccount

#Define parameters
$SubscriptionId = "<your-subscription-id-here>"
$ResourceGroupName = "<resource-group-name-here>"
$StorageAccountName = "<storage-account-name-here>"

#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 to 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), depends on the AD permission you have and preference. 
# Run Get-Help Join-AzStorageAccountForAuth for more details on this cmdlet.

Join-AzStorageAccountForAuth `
        -ResourceGroupName $ResourceGroupName `
        -StorageAccountName $StorageAccountName `
        -DomainAccountType "<ComputerAccount|ServiceLogonAccount>" <# Default is set as ComputerAccount #> `
        -OrganizationalUnitDistinguishedName "<ou-distinguishedname-here>" <# 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. #> `
        -EncryptionType "<AES256/RC4/AES256,RC4>" <# Specify the encryption agorithm used for Kerberos authentication. Default is configured as "'RC4','AES256'" which supports both 'RC4' and 'AES256' encryption. #>

#Run the command below if you want to enable AES 256 authentication. If you plan to use RC4, you can skip this step.
Update-AzStorageAccountAuthForAES256 -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName

#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

Opzione 2: eseguire manualmente le azioni di abilitazioneOption 2: Manually perform the enablement actions

Se lo script è già stato eseguito Join-AzStorageAccountForAuth correttamente, passare alla sezione verificare che la funzionalità sia abilitata .If you have already executed the Join-AzStorageAccountForAuth script above successfully, go to the Confirm the feature is enabled section. Non è necessario eseguire i passaggi manuali seguenti.You don't need to perform the following manual steps.

Controllo dell'ambienteChecking environment

Prima di tutto, è necessario controllare lo stato dell'ambiente.First, you must check the state of your environment. In particolare, è necessario controllare se Active Directory PowerShell è installato e se la shell viene eseguita con privilegi di amministratore.Specifically, you must check if Active Directory PowerShell is installed, and if the shell is being executed with administrator privileges. Verificare quindi se è installato il modulo Az.Storage 2.0, se non lo è installarlo.Then check to see if the Az.Storage 2.0 module is installed, and install it if it isn't. Al termine di questi controlli, controllare i servizi di dominio Active Directory per verificare se è presente un account computer (impostazione predefinita) o un account di accesso al servizio che è già stato creato con SPN/UPN come "CIFS/your-storage-account-name-here. file. Core. Windows. NET".After completing those checks, check your AD DS to see if there is either a computer account (default) or service logon account that has already been created with SPN/UPN as "cifs/your-storage-account-name-here.file.core.windows.net". Se l'account non esiste, crearne uno come descritto nella sezione seguente.If the account doesn't exist, create one as described in the following section.

Creazione manuale di un'identità che rappresenta l'account di archiviazione nell'annuncioCreating an identity representing the storage account in your AD manually

Per creare questo account manualmente, creare una nuova chiave Kerberos per l'account di archiviazione.To create this account manually, create a new Kerberos key for your storage account. Usare quindi la chiave Kerberos come password per l'account con i cmdlet di PowerShell riportati di seguito.Then, use that Kerberos key as the password for your account with the PowerShell cmdlets below. Questa chiave viene usata solo durante l'installazione e non può essere usata per le operazioni di controllo o di piano dati nell'account di archiviazione.This key is only used during setup and cannot be used for any control or data plane operations against the storage account.

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

Una volta creata la chiave, creare un account del servizio o del computer nell'unità organizzativa.Once you have that key, create either a service or computer account under your OU. Usare la specifica seguente (ricordare di sostituire il testo di esempio con il nome dell'account di archiviazione):Use the following specification (remember to replace the example text with your storage account name):

Nome SPN: "CIFS/your-storage-account-name-here. file. Core. Windows. NET" password: chiave Kerberos per l'account di archiviazione.SPN: "cifs/your-storage-account-name-here.file.core.windows.net" Password: Kerberos key for your storage account.

Se l'unità organizzativa impone la scadenza della password, è necessario aggiornare la password prima della validità massima della password per evitare errori di autenticazione durante l'accesso alle condivisioni file di Azure.If your OU enforces password expiration, you must update the password before the maximum password age to prevent authentication failures when accessing Azure file shares. Per informazioni dettagliate, vedere aggiornare la password dell'identità dell'account di archiviazione in Active Directory .See Update the password of your storage account identity in AD for details.

Conserva il SID dell'identità appena creata, sarà necessario per il passaggio successivo.Keep the SID of the newly created identity, you'll need it for the next step. L'identità creata che rappresenta l'account di archiviazione non deve essere sincronizzata con Azure AD.The identity you've created that represent the storage account doesn't need to be synced to Azure AD.

Abilitare la funzionalità nell'account di archiviazioneEnable the feature on your storage account

A questo punto è possibile abilitare la funzionalità nell'account di archiviazione.Now you can enable the feature on your storage account. Fornire alcuni dettagli di configurazione per le proprietà del dominio nel comando seguente, quindi eseguirlo.Provide some configuration details for the domain properties in the following command, then run it. Il SID dell'account di archiviazione richiesto nel comando seguente è il SID dell'identità creata in servizi di dominio Active Directory nella sezione precedente.The storage account SID required in the following command is the SID of the identity you created in your AD DS in the previous section.

# Set the feature flag on the target storage account and provide the required AD domain information
Set-AzStorageAccount `
        -ResourceGroupName "<your-resource-group-name-here>" `
        -Name "<your-storage-account-name-here>" `
        -EnableActiveDirectoryDomainServicesForFile $true `
        -ActiveDirectoryDomainName "<your-domain-name-here>" `
        -ActiveDirectoryNetBiosDomainName "<your-netbios-domain-name-here>" `
        -ActiveDirectoryForestName "<your-forest-name-here>" `
        -ActiveDirectoryDomainGuid "<your-guid-here>" `
        -ActiveDirectoryDomainsid "<your-domain-sid-here>" `
        -ActiveDirectoryAzureStorageSid "<your-storage-account-sid>"

DebugDebugging

È possibile eseguire il cmdlet Debug-AzStorageAccountAuth per condurre un set di controlli di base sulla configurazione di Active Directory con l'utente di Active Directory connesso.You can run the Debug-AzStorageAccountAuth cmdlet to conduct a set of basic checks on your AD configuration with the logged on AD user. Questo cmdlet è supportato nella versione AzFilesHybrid v 0.1.2+.This cmdlet is supported on AzFilesHybrid v0.1.2+ version. Per ulteriori informazioni sui controlli eseguiti in questo cmdlet, vedere non è possibile montare file di Azure con le credenziali di Active Directory nella Guida alla risoluzione dei problemi di Windows.For more information on the checks performed in this cmdlet, see Unable to mount Azure Files with AD credentials in the troubleshooting guide for Windows.

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

Verificare che la funzionalità sia abilitataConfirm the feature is enabled

È possibile controllare per verificare se la funzionalità è abilitata nell'account di archiviazione con lo script seguente:You can check to confirm whether the feature is enabled on your storage account with the following script:

# 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

Se l'operazione ha esito positivo, l'output dovrebbe essere simile al seguente:If successful, the output should look like this:

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

Passaggi successiviNext steps

A questo punto la funzionalità è stata abilitata nell'account di archiviazione.You've now successfully enabled the feature on your storage account. Per utilizzare questa funzionalità, è necessario assegnare le autorizzazioni a livello di condivisione.To use the feature, you must assign share-level permissions. Passare alla sezione successiva.Continue to the next section.

Parte 2: assegnare autorizzazioni a livello di condivisione a un'identitàPart two: assign share-level permissions to an identity