Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Archiviazione BLOB di Azure SFTP supporta l'accesso basato su Microsoft Entra ID. In precedenza, Archiviazione BLOB di Azure SFTP supportava solo l'accesso locale basato sull'utente, richiedeva l'autenticazione tramite password o chiave privata SSH. Usando questa funzionalità, gli utenti possono applicare i propri Microsoft Entra ID per connettersi agli account di archiviazione Azure tramite SFTP senza dover creare e gestire gli utenti locali.
L'accesso basato su ID di Microsoft Entra offre molti vantaggi al SFTP di Archiviazione BLOB di Azure, tra cui il controllo degli accessi in base al ruolo (RBAC), l'autenticazione a più fattori (MFA) e le liste di controllo degli accessi (ACL) di Microsoft Entra ID.
Vantaggi principali
Eliminare la gestione degli utenti locali : usando l'accesso basato su ID Di Microsoft Entra, non è necessario creare, ruotare o gestire gli utenti SFTP locali per ogni account di archiviazione. Microsoft Entra ID gestisce l'autenticazione, riducendo significativamente il sovraccarico operativo e la complessità della configurazione.
Identità e sicurezza di livello aziendale : l'accesso SFTP usa l'ID Microsoft Entra, che abilita:
- Gestione centralizzata del ciclo di vita delle identità
- Autenticazione avanzata, inclusa l'autenticazione a più fattori tramite Microsoft Entra ID
- Comportamento di sicurezza coerente allineato agli standard IAM aziendali
- Questo approccio migliora la sicurezza rispetto alle credenziali locali statiche di lunga durata.
Integrazione nativa di Azure RBAC, ABAC e ACL - L'autorizzazione per SFTP corrisponde al modello di controllo degli accessi esistente di Archiviazione BLOB di Azure:
- Controllo degli accessi in base al ruolo
- Controllo degli accessi in base all'attributo
- Elenchi di controllo di accesso in stile POSIX (ACL)
- Gli utenti possono applicare gli stessi ruoli e autorizzazioni usati per l'accesso REST, SDK e portale a SFTP.
Onboarding SFTP più veloce - Poiché gli account ID di Microsoft Entra sono molto diffusi, gli utenti possono:
- Riutilizzare utenti, gruppi ed entità servizio esistenti
- Evitare la creazione e la distribuzione delle chiavi locali che richiedono molto tempo
- Ottenere SFTP operativo più velocemente con un minor numero di passaggi di configurazione
- Abbreviare significativamente il tempo per realizzare valore per i flussi di lavoro basati su SFTP
Collaborazione esterna sicura : usando identità esterne microsoft Entra ID, i clienti possono concedere in modo sicuro l'accesso SFTP ai partner e ai fornitori senza gestire sistemi di identità separati, mantenendo al contempo controllo completo e controllabilità.
Informazioni generali
La panoramica generale seguente descrive i passaggi chiave coinvolti in questo processo. Prima di tutto si esegue l'autenticazione usando Microsoft Entra ID, quindi si ottiene un certificato OpenSSH e infine si connette a SFTP di Archiviazione BLOB di Azure usando un client o un SDK compatibile. Le sezioni seguenti descrivono in modo più dettagliato ognuno di questi passaggi.
Eseguire l'autenticazione con Microsoft Entra ID tramite l'interfaccia della riga di comando di Azure, PowerShell, SDK e altro ancora.
Ottenere un certificato OpenSSH da Microsoft Entra ID passando una chiave pubblica.
Usare un qualsiasi client SFTP o SDK che supporti i certificati OpenSSH per connettersi ad Archiviazione di Azure utilizzando il certificato OpenSSH e la chiave pubblica del passaggio 2.
Annotazioni
L'autenticazione basata su password non è supportata perché nessun client SFTP dispone dell'integrazione nativa di Microsoft Entra ID per fornire un'esperienza utente di Microsoft Entra ID per l'immissione della password.
Connessione all'archiviazione BLOB di Azure con ID di Microsoft Entra
Generare un certificato OpenSSH
Generare il certificato OpenSSH con il comando az sftp dell'interfaccia della riga di comando di Azure, come illustrato nell'esempio seguente.
az login
az sftp cert --file ~/.ssh/my_cert.pub
Per motivi di sicurezza, il certificato è valido solo per 65 minuti. Dopo la scadenza, è necessario eseguire di nuovo il comando per ottenere un nuovo certificato.
Facoltativamente, è possibile generare la propria coppia di chiavi SSH e usarla durante il download del certificato.
Genera coppia di chiavi SSH: è necessario usare le chiavi RSA, perché Microsoft Entra ID supporta solo i certificati RSA.
ssh-keygen -t rsa
Verranno generati i file di chiave seguenti:
| FileName | Tipo di chiave |
|---|---|
| id_rsa | Chiave privata |
| id_rsa.pub | Chiave pubblica |
Usare il comando seguente per generare il certificato SSH con le chiavi generate:
az login
az sftp cert --public-key-file ~/.ssh/id_rsa.pub --file ~/.ssh/my_cert.pub
Se si sta utilizzando un principal del servizio, è possibile accedere utilizzando un segreto client o un certificato:
Per accedere usando un certificato, usare il comando seguente:
az login --service-principal -u <application_id_or_client_id> --tenant <tenant_id> --certificate <path_to_certificate>
Per accedere usando un segreto client, usare il comando seguente:
az login --service-principal -u <application_id_or_client_id> -p <secret_value> --tenant <tenant_id>
Dopo l'autenticazione, eseguire lo stesso comando per scaricare il certificato:
az sftp cert --public-key-file ~/.ssh/id_rsa.pub --file ~/.ssh/my_cert.pub
Verificare il contenuto del certificato OpenSSH [Facoltativo]
Usare il comando seguente per visualizzare il certificato OpenSSH:
ssh-keygen -L -f ~/.ssh/my_cert.pub
Nell'output la sezione Principals contiene il nome utente.
Per motivi di sicurezza, il certificato OpenSSH è valido per 65 minuti. Dopo questo periodo, è necessario richiedere un nuovo certificato per avviare altre transazioni.
Connettersi all'account di archiviazione usando OpenSSH
Connettersi usando un comando SFTP
sftp -o PubkeyAcceptedKeyTypes="rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-256" -o IdentityFile="~/.ssh/id_rsa" -o CertificateFile="~/.ssh/my_cert.pub" <storageaccountname>.<username>@<storageaccountname>.blob.core.windows.net
Se l'entità usa il formato username@domain.com, assicurarsi di escludere la sezione dominio nel comando e usare solo la parte del nome utente.
Sono supportati sia i principali utente che i principali servizio. Per i principal del servizio, utilizzare l'ID principale del servizio al posto del nome utente nella stringa di connessione.
Annotazioni
L'aggiunta del nome del contenitore direttamente al stringa di connessione o la configurazione tramite home directory non è supportata.
Dopo la connessione, usare il comando seguente per caricare un file in Archiviazione di Azure tramite SFTP:
put <local-file-path>
Se ricevi un errore di permesso negato, assicurati di avere i ruoli di Azure necessari, come Collaboratore ai dati BLOB di archiviazione o Proprietario dei dati BLOB di archiviazione.
Connettersi tramite un client desktop SFTP
I client SFTP, ad esempio WinSCP e PuTTY, supportano l'autenticazione basata su OpenSSH. La procedura seguente illustra come connettersi tramite WinSCP:
WinSCP: il supporto per i certificati OpenSSH per l'autenticazione utente è stato implementato nella versione 6.0 (https://winscp.net/tracker/1873)
Ottenere il certificato OpenSSH dal passaggio precedente (Generare il certificato OpenSSH)
In WinSCP immettere il nome host e il nome utente e quindi selezionare Avanzate
Nella scheda SSH passare alla sezione Autenticazione. Allegare i file di chiave privata e certificato ottenuti dalle sezioni precedenti e quindi selezionare OK.
Selezionare Accedi per accedere usando l'account Microsoft Entra ID e il certificato OpenSSH.
Usare il comando seguente per connettersi usando il certificato OpenSSH ottenuto nei passaggi precedenti:
az sftp connect --storage-account <account_name> --certificate-file ~/.ssh/my_cert.pub
Inoltre, è possibile ottenere il certificato OpenSSH e connettersi a SFTP usando un singolo comando come indicato di seguito:
az sftp connect
az sftp connect --storage-account <account_name>
Per altre informazioni sui comandi, vedere qui.
Modello di controllo degli accessi basato su Microsoft Entra ID in SFTP di Archiviazione BLOB di Azure
| Meccanismo | Stato | Tutorial |
|---|---|---|
| Controllo degli accessi in base al ruolo (Azure RBAC) | Supportato | Modello di controllo di accesso per Azure Data Lake Storage - Archiviazione di Azure | Microsoft Learn |
| Elenchi di controllo di accesso (ACL) | Supportato | Modello di controllo di accesso per Azure Data Lake Storage - Archiviazione di Azure | Microsoft Learn |
| Controllo degli accessi in base all'attributo (ABAC di Azure) | Supportato | Modello di controllo di accesso per Azure Data Lake Storage - Archiviazione di Azure | Microsoft Learn |
Modalità di valutazione delle autorizzazioni
SFTP rispecchia il modello di controllo di accesso di Blob Storage di Azure. Per altre informazioni, vedere Modello di controllo di accesso in Azure Data Lake Storage.
Condivisione dell'accesso agli utenti esterni al tenant principale di Microsoft Entra ID
Le organizzazioni spesso devono condividere l'accesso SFTP di Archiviazione BLOB di Azure con partner e clienti esterni. Le identità esterne di Microsoft Entra possono soddisfare questo requisito abilitando SFTP di Archiviazione BLOB di Azure per fornire l'accesso sicuro ai collaboratori esterni. Questa funzionalità consente connessioni e interazioni efficienti e sicure con le risorse di archiviazione. Usando le funzionalità di identità esterna di Microsoft Entra ID, le organizzazioni possono mantenere misure di sicurezza e controllo di accesso avanzate, abilitando al contempo la collaborazione con entità esterne. Altre informazioni sull'aggiunta di utenti guest.
Problemi noti e limitazioni
L'autorizzazione dell'identità gestita non è supportata per SFTP con Microsoft Entra ID.
Il supporto di Microsoft Entra ID è limitato ai certificati SSH e all'autenticazione con chiave pubblica.
Sono supportati solo i certificati RSA. ECDSA non è supportato.
L'impostazione di una home directory non è supportata.
La stringa di connessione non può includere il nome del contenitore. L'utente si connette alla radice dell'account di archiviazione e quindi passa al contenitore di destinazione e alle directory usando i comandi 'change directory' (cd).
chownechgrprichiedono autorizzazioni di gestione della proprietà o autorizzazioni di superutente.chmodrichiede autorizzazioni di modifica o autorizzazioni con privilegi avanzati.
Risoluzione dei problemi
L'apertura di ogni contenitore fallisce con "Accesso negato"
Un Access denied errore può verificarsi anche se è possibile connettersi agli account di archiviazione tramite WinSCP ed è possibile visualizzare l'elenco dei contenitori dopo l'accesso.
Questo errore può verificarsi perché WinSCP tenta automaticamente di canonizzare ogni directory immessa. Ciò significa che per ognicd elenco di directory, invia una o più richieste di protocollo aggiuntive per individuare il percorso assoluto "vero".
- La directory radice mostra container.
- Ogni contenitore funge da chroot virtuale. Una volta che sei dentro di esso, non puoi andare sopra o fuori di esso.
- I percorsi sono virtuali, non fisici. Azure non supporta l'attraversamento assoluto sopra i contenitori basato su
/.
Risolvere il problema usando una delle opzioni seguenti:
Disabilitare Risolvi collegamenti simbolici. Passare a Advanced->Environment->Directories e deselezionare Risolvi collegamenti simbolici.
Impostare la directory remota. Passa a Advanced->Environment->Directories e imposta Remote Directory su "\<container-name>". Impostando questo valore, accedi direttamente al contenitore specificato dopo aver effettuato l'accesso.