Freigeben über


Behandeln von Problemen mit Dienstverbindungen für den Azure RM-Dienstprinzipal (manuell)

Erstellen des Azure RM-Dienstprinzipals (manuell)

Je nach Unternehmensrichtlinie und Sicherheitsprotokollen verfügen einige Azure DevOps-Administratoren nicht über berechtigungen zum Verwalten von Azure-Abonnements. Um Dienstprinzipalnamen (Service Principal Names, SPNs) zu erstellen, können diese Administratoren die manuelle Azure RM-Dienstprinzipaloption verwenden.

Zum Erstellen von SPNs können Benutzer, die über Berechtigungen für Azure-Abonnements und die Microsoft Entra-ID verfügen, die folgenden Schritte ausführen:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie microsoft Entra ID > App-Registrierungen aus.

  3. Wählen Sie Ihre Anwendung in der Liste aus, und wählen Sie dann "Geheime Clientschlüssel>" aus.

  4. Geben Sie eine Beschreibung und Dauer für den geheimen Anwendungsschlüssel (kennwortbasierte Authentifizierung) an, und wählen Sie dann "Hinzufügen" aus.

Weitere Informationen finden Sie unter Erstellen eines neuen Anwendungsgeheimnisses.

Stellen Sie diese SPN-Mitwirkendenrolle oder ähnliche RBAC-Berechtigungen für das Abonnement bereit. Sie können sogar die Rolle "Leser" auf Abonnementebene bereitstellen. Stellen Sie jedoch sicher, dass Sie den Mitwirkendenzugriff auf die Ressourcen- und Ressourcengruppe bereitstellen, die diese Rollen aktualisieren oder bereitstellen würden.

Informationen zum Abrufen der Abonnementdetails und Erstellen einer Azure RM-Dienstverbindung mithilfe der manuellen Azure RM-Dienstprinzipaloption finden Sie unter Erstellen einer Azure Resource Manager-Dienstverbindung mit einem vorhandenen Dienstprinzipal.

Zu den Abonnementdetails gehören die folgenden Informationen:

  • Abonnement-ID
  • Subscription Name
  • Dienstprinzipal-ID (Client-ID)
  • Dienstprinzipalschlüssel (der Wert des geheimen Schlüssels, den Sie in Schritt 3 erstellt haben)
  • Mandanten-ID (Verzeichnis-ID)

Um diese Informationen zu erhalten, laden Sie dieses PowerShell-Skript in einem Azure PowerShell-Fenster herunter, und führen Sie es aus. Wenn Sie dazu aufgefordert werden, geben Sie Ihren Abonnementnamen, Das Kennwort, die Rolle (optional) und den Cloudtyp ein, z. B. Azure Cloud (Standard), Azure Stack oder Azure Government Cloud.

Fehler beim Überprüfen der manuellen Azure RM-Dienstverbindung

Problembeschreibung

Nachdem Sie die Details zum Erstellen einer manuellen Azure RM-Dienstverbindung bereitgestellt haben, wählen Sie die Schaltfläche "Überprüfen " aus, die Überprüfung schlägt fehl. Sie erhalten ggf. eine Fehlermeldung der folgenden Art:

Failed to query service connection API: ''https://management.azure.com/subscriptions/xxxxxx08-xxxx-xxxx-xxxx-eadxxxxxxxxx?api-version=2016-06-01 '. Status Code: 'Forbidden', Response from server: '{"error":{"code":"AuthorizationFailed","message":"The client 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' with object id 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' does not have authorization to perform action 'Microsoft.Resources/subscriptions/read' over scope '/subscriptions/xxxxxx08-xxxx-48ec-xxxx-eadxxxxxxxxx' or the scope is invalid. If access was recently granted, please refresh your credentials."}}'

Screenshot der Erstellung einer neuen Dienstverbindung.

Debuggingschritte

Erfassen Sie die F12/Fiddler-Ablaufverfolgung, während Sie das Problem wiedergeben.

Die folgende Antwort für den POST-Anruf wird in der Ablaufverfolgung angezeigt:

{"result":[],"statusCode":403,"errorMessage":"Failed to query service connection API: 'https://management.azure.com/subscriptions/xxxxxx08-xxxx-xxxx-xxxx-eadxxxxxxxxx?api-version=2016-06-01 '. Status Code: 'Forbidden', Response from server: '{"error":{"code":"AuthorizationFailed","message":"The client 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' with object id 'xxxxxxaf-xxxx-xxxx-xxxx-6bexxxxxxxxx' does not have authorization to perform action 'Microsoft.Resources/subscriptions/read' over scope '/subscriptions/xxxxxx08-xxxx-xxxx-xxxx-eadxxxxxxxxx' or the scope is invalid. If access was recently granted, please refresh your credentials."}}'"}

Lösung

Stellen Sie sicher, dass der neu erstellte SPN (App) über die Berechtigung "Mitwirkender" für das Abonnement verfügt.

Behandeln von Problemen mit dem Azure Resource Manager-Dienstverbindung