Använd endast appautentisering

I den här artikeln får du lära dig hur du på ett säkert sätt autentiserar program för att automatisera uppgifter med hjälp av Microsoft Entra PowerShell-modulen. Den omfattar certifikatbaserad autentisering, autentiseringsuppgifter för klienthemligheter och hanterade identiteter.

Den här kunskapen ger effektiv och säker åtkomst till Microsoft Entra och Azure resurser utan att manuellt hantera känsliga autentiseringsuppgifter. Det är viktigt för att upprätthålla robusta säkerhetsrutiner och effektivisera åtkomsthanteringen i molnmiljöer.

Important

Endast appåtkomst beviljar behörigheter direkt till ett program och kräver att en administratör godkänner de behörighetsomfång som krävs. Mer information om åtkomst endast för appar finns i Microsofts identitetsplattform och autentiseringsuppgifterna för OAuth 2.0-klienten.

Förutsättningar

Om du vill använda endast appåtkomst med Microsoft Entra PowerShell-modulen behöver du:

Använda certifikatbaserad autentisering

Du bör ha den här informationen för att autentisera med hjälp av ett certifikat.

  • Certifikatets ämne eller tumavtrycket för certifikatet som har laddats upp till din appregistrering i Microsoft Entra.
  • Program-ID för din appregistrering. Om du inte redan har en appregistrering kan du läsa Skapa ett anpassat program.
  • Ditt hyrtagar-ID.

I det här avsnittet får du lära dig hur du använder ett certifikat för att autentisera med Microsoft Entra PowerShell-modulen. Du kan använda certifikatets tumavtryck, certifikatnamnet eller själva certifikatet för att autentisera. Om du vill autentisera med hjälp av de angivna exemplen måste du logga in med minst en privilegierad rolladministratörsroll .

Använd certifikatets tumavtryck

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

Connect-Entra @params

Om du vill hitta certifikatets tumavtryck i Microsoft Entra administrationscenter går du till Identitet>App registrations>Certifikat och hemligheter>Certifikat. Välj certifikatet och kopiera tumavtrycket.

Du kan också använda följande PowerShell-kommando för att hämta ditt självsignerade certifikat:

Get-ChildItem Cert:\CurrentUser\My

Använda certifikatnamn

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

Connect-Entra @params

Du hittar certifikatämnet genom att köra kommandot:

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

Använda ett certifikat

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

Om du vill använda ett certifikat som lagras i datorns certifikatarkiv eller någon annan plats när du ansluter till Microsoft Entra PowerShell anger du certifikatets plats.

Om autentiseringen lyckas visas meddelandet Welcome To Microsoft Graph!. Kör Get-EntraContext för att kontrollera att du är autentiserad med en appbaserad metod. Resultatet bör likna följande.

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

Använda autentiseringsuppgifter för klienthemlighet

Beviljande av klientautentiseringsuppgifter används för att autentisera och auktorisera appen för att få åtkomst till resurser för egen räkning. Stöd för autentiseringsuppgifter för klienthemlighet läggs till genom att parametern -ClientSecretCredential läggs till i 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

Om du vill skapa eller lägga till en klienthemlighet använder du kommandot New-EntraServicePrincipalPasswordCredential eller läser: Lägg till en klienthemlighet i Microsoft Entra administrationscenter.

Note

Vi rekommenderar att du använder PowerShell 7 eller senare när du använder autentiseringsmetoden för autentiseringsuppgifter för klienthemligheter.

Använda hanterad identitet

En vanlig utmaning när du skriver automationsskript är hanteringen av hemligheter, autentiseringsuppgifter, certifikat och nycklar som används för att skydda kommunikationen mellan tjänster. Eliminera behovet av att hantera autentiseringsuppgifter genom att låta modulen hämta åtkomsttoken för Azure resurser som skyddas av Microsoft Entra ID. Den Azure plattformen hanterar identiteten och kräver inte att du skapar eller roterar några hemligheter.

  • Systemtilldelad hanterad identitet – Använder en automatiskt hanterad identitet på en tjänstinstans. Identiteten är kopplad till livscykeln för en tjänstinstans.

    Connect-Entra -Identity
    
  • Användartilldelad hanterad identitet – Använder en användarskapad hanterad identitet som en fristående Azure resurs.

    Connect-Entra -Identity -ClientId 'User_Assigned_Managed_identity_Client_Id'