Intune DevOps Pipeline: Objekte in den Prod-Tenant

Baue eine Intune-CI-Pipeline in Azure DevOps, um Konfigurationen mit sichererem Release-Management vom Dev- in den Prod-Tenant zu verschieben.

Intune DevOps Pipeline: Objekte in den Prod-Tenant

Je mehr Clients in deinem Tenant verwaltet werden und je mehr Personen Contributor-Rechte in deinem Tenant haben, desto wichtiger werden gute Release-Management-Prozesse. In diesem Blogbeitrag möchte ich dir meine Intune-CI-Pipeline vorstellen, mit der du Konfigurationen von einem Tenant in einen anderen übertragen kannst. Das bietet die Möglichkeit, dass nur eine kleine Anzahl von Administratoren Zugriff auf den Prod-Tenant hat und alle anderen Konfigurationen in einem Dev-Tenant erstellen, die dann über eine DevOps-Pipeline in den Prod-Tenant übertragen werden.

Intune DevOps Pipeline überträgt Konfigurationen zwischen Tenants

Warum lohnt sich dieser Aufwand? Sobald mehrere Administratoren parallel Konfigurationen anpassen, schleichen sich im Prod-Tenant schnell Fehler ein: ein falsch gesetztes Profil, eine versehentlich geänderte Compliance-Richtlinie oder eine App-Zuweisung, die niemand getestet hat. Mit einer Intune DevOps Pipeline trennst du sauber zwischen der Umgebung, in der experimentiert wird, und der Umgebung, in der produktiv verwaltet wird. Änderungen durchlaufen einen klaren Freigabeweg, statt direkt auf den produktiven Clients zu landen, und du behältst jederzeit den Überblick, wer was wann übertragen hat.

Einen Service Principal erstellen

  • Öffne das Azure Portal
  • Suche nach Microsoft Entra ID
  • Wähle App registration -> + New registration

Intune DevOps Pipeline überträgt Konfigurationen zwischen Tenants

  • Gib einen Name ein
  • Klicke auf Register

Intune DevOps Pipeline überträgt Konfigurationen von Dev nach Prod

  • Wähle API permissions
  • Klicke auf + Add a permission

Intune DevOps Pipeline überträgt Konfigurationen zwischen Tenants

  • Wähle Microsoft Graph

Intune DevOps Pipeline verschiebt Objekte von Dev nach Prod

  • Wähle Application permissions
  • Wähle die folgenden Graph-Berechtigungen:
    • DeviceManagementConfiguration.ReadWrite.All
    • DeviceManagementApps.ReadWrite.All
  • Klicke auf App permissions

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Klicke auf Grant admin consent
  • Bestätige mit Yes

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Lass den Browser-Tab geöffnet, wir brauchen ihn gleich wieder

Subscription zu Azure DevOps hinzufügen

  • Öffne Azure DevOps in einem neuen Tab
  • Erstelle eine neue Organization und ein Project

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Öffne das Project
  • Wähle Pipelines and Library
  • Klicke auf +Variable group

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Gehe zurück zur App Registration und kopiere die AppId, TenantId und erstelle ein Secret

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Navigiere zu Certificates & secrets
  • Klicke auf + New client secret
  • Füge eine Description und ein Expires date hinzu

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Gib IntuneProd als Name für die Variable Group ein
  • Erstelle drei Variablen (ProdAppSecret, ProdAppId, ProdTenantId) und füge die Werte aus der App Registration ein
  • Wähle secure variable für das AppSecret
  • Klicke auf Save

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

Die Dev-Umgebung einrichten

Wiederhole dieselben Schritte für deine Dev-Umgebung, wähle aber die folgenden Berechtigungen:

  • DeviceManagementApps.Read.All
  • DeviceManagementConfiguration.Read.All

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

Pipeline einrichten

  • Navigiere zu Repos -> Files
  • Wähle Import repository

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

https://github.com/JayRHa/IntuneDevOps.git
  • Gib einen Name ein und klicke auf Import

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Navigiere zu Pipelines
  • Klicke auf New pipeline

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Wähle Azure Repos Git

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Wähle das importierte Repository

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Wähle Existing Azure Pipeline YAML file
  • Wähle die azure-pipelines.yaml
  • Klicke auf Continue

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Klicke auf Save

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

Wie funktioniert es

  • Kopiere die Object Id des Objekts, das du im Dev-Tenant kopieren möchtest. Die Id findest du in der URL.

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Gib den Object type und die Object Id in der Pipeline ein
  • Klicke auf Run

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

DevOps Runner beschaffen

Wenn du die Pipeline startest, ohne einen DevOps Runner erworben zu haben, erhältst du die folgende Fehlermeldung.

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

  • Fülle das Formular unter https://aka.ms/azpipelines-parallelism-request aus, um eine kostenlose Testlizenz zu erhalten (kann 2-3 Tage dauern)
  • Du kannst auch einen Runner auf deinem PC oder auf einem Server in deiner Organisation installieren
  • Du kannst außerdem eine Abrechnung im Bereich Billing in den Project settings hinzufügen

Intune DevOps Pipeline: Objekte vom Dev- in den Prod-Tenant verschieben

Fazit

Ich hoffe, dass ich dir helfen kann, das Übertragen von Konfigurationen von einem Dev- in den Prod-Tenant zu vereinfachen. Wenn dir das gefallen hat, magst du vielleicht auch how to create PowerShell script to automate tasks in Intune. Ich freue mich über Tester und Feedback zu meiner Intune DevOps Pipeline, damit ich es in einer der nächsten Versionen berücksichtigen kann. Anbei die Features, die ich für die nächsten Releases plane:

Ein praktischer Tipp aus der Praxis: Beginne mit einem einzelnen, unkritischen Objekttyp wie einem Konfigurationsprofil, bevor du die Pipeline für Compliance-Richtlinien oder App-Zuweisungen nutzt. So lernst du den Ablauf kennen, ohne im Fehlerfall produktive Geräte zu gefährden. Achte außerdem darauf, dem Dev-Service-Principal nur Lese-Berechtigungen zu geben – die Pipeline soll aus der Dev-Umgebung lediglich lesen und ausschließlich im Prod-Tenant schreiben. Dieses Prinzip der minimalen Rechte verhindert, dass eine fehlerhafte Pipeline ungewollt deine Quellkonfigurationen überschreibt.

  • Debug-Option einbauen
  • Mehr Object types einbauen
  • Prüfung der Namenskonvention hinzufügen
  • Assignments einbauen
  • Genehmigungsprozess einbauen

Kommentare

Joe

I have some questions on this, I found the layout a little confusing.

Setup Pipeline. Do I do this in both the Test and Prod tenant? I only did it in Test, and got the following error:

An error occurred while loading the YAML build pipeline. Variable group was not found or is not authorized for use. For authorization details, refer to https://aka.ms/yamlauthz.

I’m in two different tenants, I’m assuming I’m missing something for Test to see Prod and vice versa?

Does everything need to be named exactly the same in both instances? Apps, Projects, Variables, etc?

jannikreinhard

Hey Joe, you only need one pipeline for both. The variables groups need the exact name as I used in my blog or you have to change it in the yaml file. If you need help let me know

ST

Hi Thanks for the post.. i am getting the error in get object from dev. Something went wrong by getting the object from Intune remote server returned an error: (404) Not Found. I am not getting the object ID in url. i can see only policy ID and template ID also from some end point security polices. Can you please share how to get Object ID.
Also you mentioned you could add more object types. please share the link if you have already published.

Kommentar schreiben

Kommentare werden vor der Veröffentlichung geprüft. Deine E-Mail-Adresse bleibt privat.

Mit deiner Zustimmung erfasst Microsoft Clarity maskierte Interaktionen zur Verbesserung der Website. Eine Ablehnung hat keinen Einfluss auf den Zugang.

Datenschutzdetails