Partilhar via


Ativar a autenticação do Active Directory Domain Services para partilhas de ficheiros Azure

Aplica-se a: ✔️ partilhas de ficheiros SMB Azure

Este artigo descreve o processo para ativar a autenticação do Active Directory Domain Services (AD DS) na sua conta de armazenamento. Ao ativar este método de autenticação, pode usar credenciais do Active Directory no local (AD) para autenticar em partilhas de ficheiros do Azure.

Importante

Antes de habilitar a autenticação do AD DS, entenda os cenários e requisitos suportados no artigo de visão geral e conclua os pré-requisitos necessários. Se o seu ambiente Active Directory abrange várias florestas, veja Use Ficheiros do Azure com múltiplas florestas Active Directory.

Para ativar a autenticação AD DS sobre SMB para partilhas de ficheiros Azure, regista a tua conta de armazenamento Azure no teu AD DS local e depois define as propriedades de domínio necessárias na conta de armazenamento. Para registar a sua conta de armazenamento no AD DS, crie uma conta de computador (ou conta de login de serviço) que a represente no seu AD DS. Pensa neste processo como se fosse como criar uma conta que representa um servidor de ficheiros Windows local no teu AD DS. Quando ativas a funcionalidade na conta de armazenamento, aplica-se a todas as partilhas de ficheiros novas e existentes na conta.

O módulo AzFilesHybrid PowerShell fornece cmdlets para implementar e configurar Ficheiros do Azure. Inclui cmdlets para ligar contas de armazenamento de domínio aos seus Active Directory Domain Services locais e configurar os seus servidores DNS. Os cmdlets fazem as modificações necessárias e habilitam o recurso para você. Como algumas partes dos cmdlets interagem com o seu AD DS local, reveja a explicação do que os cmdlets fazem. Pode então determinar se as alterações estão alinhadas com as suas políticas de conformidade e segurança, e garantir que tem as permissões adequadas para executar os cmdlets. Embora recomendemos usar o módulo AzFilesHybrid, se não conseguir usá-lo, consulte os passos manuais.

Importante

A encriptação AES-256 Kerberos é o único método de encriptação suportado pelo módulo AzFilesHybrid. Se anteriormente ativaste a funcionalidade usando uma versão mais antiga do AzFilesHybrid (abaixo da v0.2.2) que usava o RC4 como método de encriptação predefinido, atualiza imediatamente para o AES-256. Para mais informações, consulte Troubleshoot Ficheiros do Azure SMB authentication.

Pré-requisitos

Baixar AzFilesHybrid module

Descarregue e descompacte a versão mais recente do módulo AzFilesHybrid.

Execute o comando Join-AzStorageAccount

O cmdlet realiza o equivalente a uma junção de domínio offline para a conta de armazenamento especificada. O script seguinte utiliza este cmdlet para criar uma conta de computador no seu domínio AD. Se não conseguires usar uma conta de computador, podes alterar o script para criar uma conta de login de serviço . A utilização de encriptação AES-256 com contas de login de serviço é suportada a partir da versão 0.2.5 do AzFilesHybrid.

A conta AD DS que o cmdlet cria representa a conta de armazenamento. Se criar a conta AD DS numa unidade organizacional (OU) que impõe a expiração da palavra-passe, deve atualizar a palavra-passe antes da idade máxima da palavra-passe. Se não atualizares a palavra-passe da conta antes dessa data, a autenticação falha ao aceder às partilhas de ficheiros do Azure. Para mais informações sobre como atualizar a palavra-passe, consulte Atualizar a palavra-passe da conta AD DS.

Importante

O cmdlet cria uma conta AD para representar a conta de armazenamento (partilha de ficheiros) no AD. Pode escolher registar-se como uma conta de computador ou conta de início de sessão de serviço. Para obter mais informações, consulte Perguntas frequentes. As palavras-passe das contas de serviço podem expirar no AD se tiverem uma idade de expiração de palavra-passe predefinida no domínio ou na OU (Unidade Organizacional) do AD. Como as alterações de senha da conta de computador são conduzidas pela máquina cliente e não pelo AD, elas não expiram no AD, embora os computadores clientes alterem suas senhas por padrão a cada 30 dias. Para ambos os tipos de conta, verifique a idade de expiração da palavra-passe e planeie atualizar a palavra-passe da identidade da sua conta de armazenamento da conta AD antes da idade máxima da palavra-passe. Você pode considerar a criação de uma nova Unidade Organizacional do AD no AD e desativar a diretiva de expiração de senha nas contas de computador ou nas contas de logon de serviço conforme necessário.

Executa o seguinte script em PowerShell 5.1 num dispositivo que esteja ligado ao teu AD DS local. Use credenciais AD DS on-premises que tenham permissões para criar uma conta de computador ou de login de serviço no AD alvo (como administrador de domínio). Para cumprir o princípio Menor privilégio, a credencial AD DS on-premises deve ter as seguintes funções Azure:

  • Leitor no grupo de recursos onde a conta de armazenamento de destino está localizada.
  • Colaborador na conta de armazenamento a ser associada ao AD DS.

Se a conta usada para associar-se à conta de armazenamento no AD DS for Proprietário ou Contribuidor na subscrição do Azure onde estão localizados os recursos-alvo, a conta já está habilitada para efetuar a associação e não precisa de mais atribuições.

A credencial do AD DS também deve ter permissões para criar uma conta de computador ou uma conta de logon de serviço no AD de destino. Substitui os valores provisórios pelos teus próprios antes de executares o script.

# 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 20 characters or less and has certain character restrictions.
# Certain NETBIOS restrictions might require a $SamAccountName of 15 characters or less.
# 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

Opção dois: Executar manualmente as ações de ativação

A maioria dos clientes deve escolher Opção um e usar o módulo PowerShell AzFilesHybrid para ativar a autenticação AD DS com Ficheiros do Azure. No entanto, se preferir executar os passos manualmente usando o Active Directory PowerShell, os passos estão aqui detalhados.

Importante

Se já executou o script com sucesso, vá à secção Confirmar que a funcionalidade está ativada . Não é necessário executar as seguintes etapas manuais.

Verifique o ambiente

Primeiro, verifique o estado do seu ambiente.

  • Verifica se Active Directory PowerShell está instalado e se o shell está a correr com privilégios de administrador.
  • Certifique-se de que a versão mais recente do módulo Az.Storage está instalada e instale-a se não estiver.
  • Depois de completares essas verificações, verifica o teu AD DS para ver se existe uma conta de computador (por defeito) ou uma conta de login de serviço que criaste com SPN/UPN, como "cifs/your-storage-account-name-here.file.core.windows.net". Se a conta não existir, crie uma conforme descrito na seção a seguir.

Importante

Deve executar os Windows Server Active Directory cmdlets PowerShell nesta secção do PowerShell 5.1. PowerShell 7.x e Azure Cloud Shell não funcionam neste cenário.

Crie uma identidade que represente a conta de armazenamento no AD manualmente

Para criar esta conta manualmente, primeiro crie uma nova chave Kerberos para a sua conta de armazenamento e obtenha a chave de acesso usando os seguintes cmdlets do PowerShell. Use esta tecla apenas durante a configuração. Não podes usá-lo para operações de controlo ou de plano de dados contra a conta de armazenamento.

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

Os cmdlets devolvem o valor chave. Depois de ter a chave kerb1, crie uma conta de computador ou conta de serviço no AD na sua UO e use a chave como a senha para a identidade do AD.

  1. Defina o SPN para cifs/your-storage-account-name-here.file.core. windows.net seja na interface gráfica Active Directory ou executando o comando Setspn da linha de comandos Windows como administrador (substitui o texto de exemplo pelo nome da tua conta de armazenamento e <ADAccountName> pelo nome da tua conta AD).

    Setspn -S cifs/your-storage-account-name-here.file.core.windows.net <ADAccountName>
    
  2. Se você tiver uma conta de usuário, modifique o UPN para corresponder ao SPN do objeto AD (você deve ter cmdlets do AD PowerShell instalados e executar os cmdlets no PowerShell 5.1 com privilégios elevados).

    Set-ADUser -Identity $UserSamAccountName -UserPrincipalName cifs/<StorageAccountName>.file.core.windows.net@<DNSRoot>
    

    Importante

    Não sincronize usuários com valores UPN (userPrincipalName) inválidos. Os UPNs não devem conter caracteres especiais, como , espaços ou outros símbolos sem suporte. Tentar sincronizar utilizadores com UPNs inválidos (como usar / no nome de utilizador) resulta em erros de Microsoft Entra Connect. Se tais identidades existirem no seu diretório local, faça uma das seguintes ações:

    • Atualize o UPN para um formato válido (por exemplo, ).
    • Exclua o utilizador da sincronização usando regras de filtragem no Microsoft Entra Connect.
  3. Defina a senha da conta do AD com o valor da chave kerb1.

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

Se a sua OU impor a expiração da palavra-passe, deve atualizá-la antes da idade máxima da palavra-passe para evitar falhas de autenticação ao aceder a partilhas de ficheiros do Azure. Para mais informações, consulte Atualizar a palavra-passe da identidade da sua conta de armazenamento no AD.

Mantenha o SID da identidade recém-criada, você precisará dele para a próxima etapa. A identidade que criaste, que representa a conta de armazenamento, não precisa de ser sincronizada com o Microsoft Entra ID.

Ativar o recurso em sua conta de armazenamento

Modifique o comando seguinte para incluir detalhes de configuração para as propriedades do domínio e execute para ativar a funcionalidade. O SID da conta de armazenamento necessário no comando a seguir é o SID da identidade criada no AD DS na seção anterior. Certifique-se de fornecer a propriedade ActiveDirectorySamAccountName sem o sinal '$' no final.

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

Para ativar a encriptação AES-256, siga os passos nesta secção.

Importante

Para ativar a encriptação AES-256, o objeto de domínio que representa a sua conta de armazenamento deve ser uma conta de computador (por defeito) ou uma conta de login de serviço no domínio Active Directory. Se o objeto de domínio não atender a esse requisito, exclua-o e crie um novo objeto de domínio que atenda. Além disso, você deve ter acesso de gravação ao atributo do objeto.

O cmdlet que executa para configurar o suporte AES-256 depende se o objeto de domínio que representa a sua conta de armazenamento é uma conta de computador ou de login de serviço (conta de utilizador). De qualquer forma, deves ter os cmdlets do PowerShell para AD instalados e executar o cmdlet no PowerShell 5.1 com privilégios elevados.

Para ativar a encriptação AES-256 numa conta de computador, execute o seguinte comando. Substitua e pelos seus valores.

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

Para habilitar a encriptação AES-256 numa conta de logon de serviço, execute o seguinte comando. Substitua e pelos seus valores.

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

Depois de executar o cmdlet anterior, substitua no script seguinte pelo seu valor e depois execute o script para atualizar a palavra-passe do seu objeto de domínio:

$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

Importante

Se anteriormente usou encriptação RC4 e atualizou a conta de armazenamento para usar AES-256 (recomendado), execute no cliente e depois volte a montar a partilha de ficheiros para obter novos tickets Kerberos com AES-256.

Depuração

Se necessário, executa o cmdlet para verificar a configuração do AD usando o utilizador AD com sessão iniciada. Este cmdlet é suportado na versão AzFilesHybrid v0.1.2+ e superior. Este cmdlet funciona para autenticação AD DS e Microsoft Entra Kerberos. Não funciona para contas de armazenamento ativadas com Microsoft Entra Domain Services. Para mais informações sobre as verificações que este cmdlet realiza, veja Não é possível montar Azure partilhas de ficheiros com credenciais AD.

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

Confirme se o recurso está ativado

Verifique se o AD DS está ativado na sua conta de armazenamento usando o seguinte script. Substitua e pelos seus valores.

# Get the target storage account
$storageaccount = Get-AzStorageAccount `
        -ResourceGroupName "<resource-group-name>" `
        -Name "<storage-account-name>"

# 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 for bem-sucedido, o resultado é o seguinte:

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

Importante

Antes de poder autenticar utilizadores, deve atribuir permissões ao nível de partilha.

Desative a autenticação AD DS na sua conta de armazenamento

Se quiser usar outro método de autenticação, desative a autenticação AD DS na sua conta de armazenamento usando o portal Azure, PowerShell ou CLI do Azure.

Se desativares esta funcionalidade, as partilhas de ficheiros na tua conta de armazenamento não terão acesso baseado em identidade até ativares e configurares uma das outras fontes de identidade.

Importante

Depois de desativar a autenticação AD DS na conta de armazenamento, considere eliminar a identidade AD DS (conta de computador ou conta de login de serviço) que criou para representar a conta de armazenamento no seu AD local. Se deixares a identidade em AD DS, ela permanece como um objeto órfão. Removê-lo não é automático.

Para desativar a autenticação AD DS na sua conta de armazenamento usando o portal Azure, siga estes passos.

  1. Inicia sessão no portal do Azure e seleciona a conta de armazenamento para a qual queres desativar a autenticação AD DS.
  2. Em Armazenamento de dados, selecione Compartilhamentos de arquivos.
  3. Ao lado de Acesso baseado em Identidade, selecione o estado de configuração, que deve ser Configurado.
  4. Em Active Directory Domain Services (AD DS), selecione Configure.
  5. Assinala a caixa Desativar Active Directory para esta conta de armazenamento.
  6. Selecione Guardar.

Próximo passo

  • Atribuir permissões ao nível de partilha