Nur-App-Authentifizierung verwenden

In diesem Artikel erfahren Sie, wie Sie Anwendungen sicher authentifizieren, um Aufgaben mithilfe des Microsoft Entra PowerShell-Moduls zu automatisieren. Es umfasst zertifikatbasierte Authentifizierung, Clientgeheimnis-Anmeldeinformationen und verwaltete Identitäten.

Dieses Wissen ermöglicht einen effizienten und sicheren Zugriff auf Microsoft Entra und Azure Ressourcen, ohne dass vertrauliche Anmeldeinformationen manuell verwaltet werden müssen. Es ist entscheidend, stabile Sicherheitspraktiken aufrechtzuerhalten und die Zugriffsverwaltung in Cloudumgebungen zu optimieren.

Von Bedeutung

Der Nur-App-Zugriff gewährt einer Anwendung Berechtigungen direkt und erfordert, dass ein Administrator den erforderlichen Berechtigungsbereichen zustimmen muss. Weitere Informationen zum reinen App-Zugriff finden Sie unter Microsoft Identity Platform und dem OAuth 2.0-Clientanmeldeinformationsfluss.

Voraussetzungen

Um app-only-Zugriff mit dem PowerShell-Modul Microsoft Entra zu verwenden, benötigen Sie Folgendes:

Verwenden der zertifikatbasierten Authentifizierung

Sie sollten über diese Informationen verfügen, um sich mit einem Zertifikat zu authentifizieren.

  • Zertifikatsubjekt oder Fingerabdruck des Zertifikats, das in Ihre Microsoft Entra-App-Registrierung hochgeladen wurde.
  • Anwendungs-ID für Ihre App-Registrierung. Wenn Sie noch keine App-Registrierung haben, lesen Sie " Erstellen einer benutzerdefinierten Anwendung".
  • Ihre Mandanten-ID.

In diesem Abschnitt erfahren Sie, wie Sie ein Zertifikat zum Authentifizieren mit dem Microsoft Entra PowerShell-Modul verwenden. Sie können den Zertifikatfingerabdruck, den Zertifikatnamen oder das Zertifikat selbst verwenden, um sich zu authentifizieren. Um sich mit den angegebenen Beispielen zu authentifizieren, müssen Sie sich mit mindestens einer Administratorrolle für privilegierte Rollen anmelden.

Zertifikat-Fingerabdruck verwenden

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

Connect-Entra @params

Um den Zertifikatfingerabdruck im Microsoft Entra Admin Center zu finden, wechseln Sie zu Identitäten>App-Registrierungen>Zertifikate & Geheimnisse>Zertifikate. Wählen Sie das Zertifikat aus, und kopieren Sie den Fingerabdruck.

Alternativ können Sie den folgenden PowerShell-Befehl verwenden, um Ihr selbstsigniertes Zertifikat abzurufen:

Get-ChildItem Cert:\CurrentUser\My

Zertifikatname verwenden

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

Connect-Entra @params

Sie können den Zertifikatbetreff finden, indem Sie den Befehl ausführen:

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

Verwenden eines Zertifikats

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

Wenn Sie ein Zertifikat verwenden möchten, das im Zertifikatspeicher Ihres Computers oder an einem anderen Speicherort beim Herstellen einer Verbindung mit Microsoft Entra PowerShell gespeichert ist, geben Sie den Speicherort des Zertifikats an.

Wenn die Authentifizierung erfolgreich ist, wird die Meldung Welcome To Microsoft Graph!angezeigt. Führen Sie Get-EntraContext aus, um zu überprüfen, ob Sie mit der Nur-App-Methode authentifiziert sind. Die Ausgabe sollte wie im folgenden Beispiel aussehen.

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

Verwenden von geheimen Clientanmeldeinformationen

Der Client-Credentials-Grant wird verwendet, um die App zu authentifizieren und zu autorisieren, auf Ressourcen im eigenen Namen zuzugreifen. Unterstützung für geheime Clientschlüsselanmeldeinformationen wird hinzugefügt, indem der Parameter "-ClientSecretCredential " zu Connect-Entra hinzugefügt wird.

# 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

Um einen geheimen Clientschlüssel zu erstellen oder hinzuzufügen, verwenden Sie den Befehl New-EntraServicePrincipalPasswordCredential, oder lesen Sie: Hinzufügen eines geheimen Clientschlüssels in Microsoft Entra Admin Center.

Hinweis

Es wird empfohlen, PowerShell 7 oder höher bei Verwendung der Authentifizierungsmethode für geheime Clientschlüsselanmeldeinformationen zu verwenden.

Verwenden der verwalteten Identität

Eine häufige Herausforderung beim Schreiben von Automatisierungsskripts ist die Verwaltung von Geheimschlüsseln, Anmeldeinformationen, Zertifikaten und Schlüsseln, die zum Sichern der Kommunikation zwischen Diensten verwendet werden. Entfernen Sie die Notwendigkeit, Anmeldeinformationen zu verwalten, indem Sie es dem Modul gestatten, Zugriffstoken für Azure Ressourcen abzurufen, die durch Microsoft Entra ID geschützt sind. Die Azure-Plattform verwaltet die Identität und erfordert nicht, dass Sie geheime Schlüssel erstellen oder drehen.

  • Vom System zugewiesene verwaltete Identität – Verwendet eine automatisch verwaltete Identität in einer Dienstinstanz. Die Identität ist an den Lebenszyklus einer Dienstinstanz gebunden.

    Connect-Entra -Identity
    
  • Vom Benutzer zugewiesene verwaltete Identität – Verwendet eine vom Benutzer erstellte verwaltete Identität als eigenständige Azure Ressource.

    Connect-Entra -Identity -ClientId 'User_Assigned_Managed_identity_Client_Id'