Usa l'autenticazione basata solo sull'app

Questo articolo illustra come autenticare in modo sicuro le applicazioni per automatizzare le attività usando il modulo di PowerShell Microsoft Entra. Tratta l'autenticazione basata su certificati, le credenziali del segreto client e le identità gestite.

Queste conoscenze consentono l'accesso efficiente e sicuro alle risorse Microsoft Entra e Azure senza gestire manualmente le credenziali sensibili. È fondamentale per mantenere procedure di sicurezza affidabili e semplificarne la gestione negli ambienti cloud.

Importante

L'accesso solo app concede le autorizzazioni direttamente a un'applicazione e richiede a un amministratore di fornire il consenso agli ambiti di autorizzazione necessari. Per altre informazioni sull'accesso tramite sola app, vedi Microsoft Identity Platform e il flusso delle credenziali client di OAuth 2.0.

Prerequisiti

Per usare l'accesso solo app con il modulo di PowerShell Microsoft Entra, è necessario:

Usare l'autenticazione basata su certificato

Queste informazioni devono essere disponibili per l'autenticazione tramite un certificato.

  • Oggetto del certificato o impronta digitale del certificato caricato nella registrazione dell'app Microsoft Entra.
  • ID applicazione per la registrazione dell'app. Se non si ha già una registrazione dell'app, vedere Creare un'applicazione personalizzata.
  • ID del tenant.

In questa sezione viene illustrato come usare un certificato per l'autenticazione con il modulo di PowerShell Microsoft Entra. È possibile usare l'identificazione personale del certificato, il nome del certificato o il certificato stesso per l'autenticazione. Per eseguire l'autenticazione usando gli esempi specificati, è necessario accedere con almeno un ruolo di amministratore del ruolo con privilegi .

Usare l'impronta digitale del certificato

$params = @{
    ClientId = 'YOUR_APP_ID'
    TenantId = 'YOUR_TENANT_ID'
    CertificateThumbprint = 'YOUR_CERT_THUMBPRINT'
}

Connect-Entra @params

Per trovare l'impronta digitale del certificato nel Interfaccia di amministrazione di Microsoft Entra, passa a Identity>Registrazioni app>Certificates & secrets>Certificates. Selezionare il certificato e copiarne l'impronta digitale.

In alternativa, è possibile usare il comando di PowerShell seguente per ottenere il certificato autofirmato:

Get-ChildItem Cert:\CurrentUser\My

Usa il nome del certificato

$params = @{
    ClientId = 'YOUR_APP_ID'
    TenantId = 'YOUR_TENANT_ID'
    CertificateName = 'YOUR_CERT_SUBJECT'
}

Connect-Entra @params

È possibile trovare l'oggetto del certificato eseguendo il comando :

Get-ChildItem Cert:\CurrentUser\My\$CertThumbprint | Select Subject

Usare un certificato

$cert = Get-ChildItem Cert:\CurrentUser\My\$CertThumbprint
Connect-Entra -ClientId 'YOUR_APP_ID' -TenantId 'YOUR_TENANT_ID' -Certificate $cert

Per usare un certificato archiviato nell'archivio certificati del computer o in un altro percorso durante la connessione a Microsoft Entra PowerShell, specificare il percorso del certificato.

Se l'autenticazione ha esito positivo, viene visualizzato il messaggio Welcome To Microsoft Graph!. Esegui Get-EntraContext per verificare che l'autenticazione sia stata eseguita tramite il metodo di autenticazione solo app. L'output sarà simile al seguente.

ClientId              : YOUR_APP_ID
TenantId              : YOUR_TENANT_ID
CertificateThumbprint :
Scopes                : {Group.Read.All, User.Read.All}
AuthType              : AppOnly
CertificateName       : YOUR_CERT_SUBJECT
Account               :
AppName               : {Your Awesome Application Name Here}
ContextScope          : Process
Environment           : Global

Usare le credenziali del segreto del client

La concessione delle credenziali client viene usata per autenticare e autorizzare l'app ad accedere alle risorse per proprio conto. Il supporto per le credenziali dei segreti client viene aggiunto aggiungendo il parametro -ClientSecretCredential a Connect-Entra.

# Define the Application (Client) ID and Secret
$applicationClientId = '<application(client)ID>' # Application (Client) ID
$applicationClientSecret = '<secret.value>' # Application Secret Value
$tenantId = 'Tenant_Id' # Tenant ID

# Convert the Client Secret to a Secure String
$secureClientSecret = ConvertTo-SecureString -String $applicationClientSecret -AsPlainText -Force

# Create a PSCredential Object Using the Client ID and Secure Client Secret
$clientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $applicationClientId, $secureClientSecret

# Connect to Microsoft Graph Using the Tenant ID and Client Secret Credential
Connect-Entra -TenantId $tenantId -ClientSecretCredential $clientSecretCredential

Per creare o aggiungere un segreto client, usare il comando New-EntraServicePrincipalPasswordCredential oppure vedere Aggiungere un segreto client in Interfaccia di amministrazione di Microsoft Entra.

Note

È consigliabile usare PowerShell 7 o versione successiva quando si usa il metodo di autenticazione delle credenziali del segreto client.

Usare l'identità gestita

Una sfida comune quando si scrivono script di automazione è la gestione di segreti, credenziali, certificati e chiavi usati per proteggere la comunicazione tra i servizi. Eliminare la necessità di gestire le credenziali consentendo al modulo di ottenere i token di accesso per Azure risorse protette da Microsoft Entra ID. La piattaforma Azure gestisce l'identità e non richiede la creazione o la rotazione di segreti.

  • Identità gestita assegnata dal sistema : usa un'identità gestita automaticamente in un'istanza del servizio. L'identità è associata al ciclo di vita di un'istanza del servizio.

    Connect-Entra -Identity
    
  • Identità gestita assegnata dall'utente: usa un'identità gestita creata dall'utente come risorsa Azure autonoma.

    Connect-Entra -Identity -ClientId 'User_Assigned_Managed_identity_Client_Id'