webentwicklung-frage-antwort-db.com.de

Azure DevOps kann nicht in Azure Web App bereitgestellt werden

Ich versuche derzeit, eine App aus einer Release-Pipeline unter Azure DevOps von Unternehmen A für eine Azure-App bereitzustellen, die auf Azure von Unternehmen B gehostet wird.

Wenn Sie versuchen, die Azure-App freizugeben, wird dieser Fehler weiterhin angezeigt:

Fehler: Fehler beim Abrufen der Ressourcen-ID für den Ressourcentyp "Microsoft.Web/Sites" und den Ressourcennamen "AppName". Fehler: Zugriffstoken für Managed Service Principal konnte nicht abgerufen werden. Konfigurieren Sie Managed Service Identity (MSI) für die virtuelle Maschine " https://aka.ms/Azure-msi-docs ". Statuscode: 400, Statusmeldung: Bad Request

Bin ratlos, wie man das löst.

Was bisher gemacht wurde:

  • Webanwendung wird in Azure von Unternehmen B erstellt
  • Benutzer von DevOps Company In Company Azure AD wird ein Konto als Gastbenutzer hinzugefügt
  • Der Benutzer verfügt über Mitwirkungsrechte für die Web-App
  • Managed Service Identity ist in Web App auf "Ein" gesetzt
  • Das Abonnement von Unternehmen B und Web Apps kann beim Einrichten der Version in Azure DevOps angezeigt und ausgewählt werden.

Ich bin mir ziemlich sicher, dass mehr erforderlich ist, damit die Release-Bereitstellung funktioniert, aber nach einer intensiven Suche konnte ich nichts finden.

Hoffe hier kann jemand raten.

12
AgitoM

Es ist mir gelungen, die Lösung für das Problem zu finden, auf das ich gestoßen bin. Dies hing mit den Zugriffsrechten des Gastkontos für das Azure-Abonnement zusammen.

Zuallererst war "Managed Service Identity" nicht mit diesem Problem verbunden.

Die folgenden Schritte wurden ausgeführt, um die Azure DevOps von Unternehmen A mit Azure von Unternehmen B zu verbinden:

  • Erstellt eine Webanwendung in Company B Azure
  • Das Azure DevOp-Konto von Unternehmen A wurde als "Gastbenutzer" in Azure von Unternehmen B hinzugefügt
  • Das DevOp-Konto erhält Mitwirkungsrechte sowohl für das Azure-Abonnement als auch für die Webanwendung.
  • Fügen Sie in DevOps von Unternehmen A einen "Azure Resource Manager" hinzu. Wählen Sie die Einstellungen von Azure von Unternehmen B als "Dienstprinzipalauthentifizierung" aus.
  • Nach dem Speichern von Azure Resource Manager werden Sie aufgefordert, sich anzumelden. Sie müssen sich mit dem Administratorkonto von Azure von Unternehmen B anmelden.
8
AgitoM