Entra-ID-Gruppe auf Basis lokaler Attribute

Erfahre, wie du mit Endpoint Analytics und Azure Automation eine Microsoft Entra ID-Gruppe auf Basis eines lokalen Attributs erstellst und…

Entra-ID-Gruppe auf Basis lokaler Attribute

Häufig besteht der Bedarf, eine Microsoft Entra ID-Gruppe (ehemals Azure AD) auf Basis eines lokalen Registry-Keys oder eines anderen Attributs zu erstellen, um spezifischere Zugriffsentscheidungen treffen zu können, diese Gruppe für Zugriffsrechte auf eine Anwendung zu nutzen oder für viele weitere Anwendungsfälle. In diesem Blogbeitrag zeige ich dir, wie du das mithilfe von Endpoint Analytics und Azure Automation umsetzt. In meinem Blog zeige ich dir das am Beispiel des Geräteherstellers; natürlich haben wir diese Information bereits in Intune, aber es ist nur ein Beispiel dafür, wie das Ganze funktioniert. Selbstverständlich kannst du das auch mit allem anderen machen, was du auf einem Client auslesen kannst.

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Wie funktioniert das

Der Wert wird mit einem Endpoint Analytics-Detection-Skript erfasst. Die Erfassung erfolgt durch die Ausführung eines Write-Host.

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Wenn wir uns jetzt das Ergebnis des Remediation-Skripts mit Graph ansehen, sehen wir, dass auch die Ausgabe des Write-Host angezeigt wird (soweit ich weiß, ist das nur mit Graph darstellbar).

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Diesen Wert fragen wir mit einem Azure Automation Runbook ab und prüfen, ob bereits eine Gruppe für diesen Hersteller existiert; falls nicht, wird die Gruppe erstellt. Danach werden alle PCs des Herstellers der Gruppe hinzugefügt.

Wichtig dabei ist, dass das Runbook idempotent arbeitet: Es legt eine Gruppe nur dann an, wenn sie noch nicht existiert, und ergänzt bei jedem Lauf lediglich die fehlenden Geräte. Dadurch kannst du den Zeitplan bedenkenlos täglich ausführen, ohne doppelte Gruppen oder doppelte Mitgliedschaften zu riskieren. Ein praktischer Tipp aus der Praxis: Plane das Runbook zeitlich nach dem Endpoint-Analytics-Skript ein, damit beim Lauf bereits aktuelle Werte vorliegen. Andernfalls greift die Automatisierung beim ersten Durchlauf auf veraltete oder noch leere Werte zu, und neue Geräte landen erst einen Zyklus später in der passenden Gruppe.

Ein Endpoint Analytics-Skript zum Erfassen des Werts bereitstellen

Zuerst stellen wir ein Endpoint Analytics-Skript auf unseren Clients bereit, um den Rückgabewert mit dem Gerätehersteller zu erhalten.

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Gib einen Namenein und klicke auf Next

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Lade das Detection-Skript hoch. Dieses kleine Skript findest du in meinem GitHub-Repository.
  • Klicke auf Next > Next

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Weise das Skript einer Gruppe zu
  • Erstelle einen Zeitplan. In meinem Fall wähle ich daily.
  • Klicke auf Next > Create

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Eine App Registration erstellen

  • Suche nach Microsoft Entra ID

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Wähle App registration

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Wähle +New registration

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Gib einen Namen ein und klicke auf Register

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Klicke auf API permissions und +Add a permission

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Wähle Microsoft Graph

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Wähle Application permissions

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Suche nach DeviceManagementConfiguration.Read.All, Group.Create und GroupMember.ReadWriteAll

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Klicke auf Grant admin consent for *** und bestätige mit Yes

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Wähle Certificates & secrets und klicke auf +New client secret

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Gib eine Description ein und wähle eine Expires time
  • Klicke auf Add

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Kopiere und speichere den Value und die Secret ID

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Automation Account erstellen

  • Suche nach Automation Accounts

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Klicke auf + Create

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Wähle eine Subscription und eine Resource group
  • Gib einen Account-Namen ein und wähle eine Region
  • Klicke auf Next

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Klicke auf Next

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Klicke auf Next -> Next -> Create

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Das Runbook erstellen

  • Öffne das Automation Account
  • Navigiere zu Variables und klicke auf + Add a variable

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Füge den Secret Value, die TenantId und die App ID als Variable hinzu

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Wähle Runbooks

  • Klicke auf + Create a runbook

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Gib einen Namen ein
  • Wähle PowerShell als Runbook type
  • Wähle 5.1 als Runtime version
  • Klicke auf Create

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Füge das Skript aus meinem GitHub-Repository ein
  • Ändere diese Variablen:
    • $scriptName: Name des Endpoint Analytics-Skripts
    • $groupPrefix: Präfix für die Microsoft Entra ID-Gruppe

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Speichere und teste das Skript

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Klicke auf Publish

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Navigiere zu Schedules und klicke auf + Add a schedule

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

  • Klicke auf Link to schedule und füge den erstellten Zeitplan hinzu

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Eine Entra-ID-Gruppe auf Basis lokaler Attribute erstellen und befüllen

Fazit

Dieses Skript hilft dabei, Clients in Zukunft anhand lokaler Attribute präziser zu adressieren. Natürlich ist der Wert Manufacturer nicht das beste Beispiel, da er bereits Teil des Intune-Inventars ist, aber er hilft zu zeigen, wie der gesamte Mechanismus funktioniert.

Bleib gesund, Cheers
Jannik

Kommentare

jannikreinhard

This is also an nice way to collect inventory but this has an big disadvantage. You have to add the log analytic key in the script. When you run endpoint analytics script you can see the code in the log file. With this key you have the possibility to flood the Loganalytics workspace.

Trevor Jones

Nice idea 🙂

With large device numbers you could speed things up a bit by using a PATCH request to add up to 20 members to a group at once, and fallback to an individual POST if needed.

Show user dialog with Endpoint Analytics (Smartphone Replacement Tool) – Modern Device Management

[…] output is an JSON string. You can use this solution described in the “Create and Fill AAD Group based on an local attributes” blog post how you can fill a AAD group based on this result. If you need support by adapting […]

Collect connected Hardware with Endpoint Analytics – Modern Device Management

[…] To see which devices are using a particular monitor or keyboard, it can be very helpful if you can collect this information. In this blog I will show you how to do this with the help of Endpoint Analytics. You can then use this information to assign a driver to these devices or to trigger a hardware replacement. How you can automatically populate a group based on the output of an endpoint analytics script I explained in this blog post. […]

Jouni K

Great workaround. This is a feature that would be beneficial to have built in to Intune.

Additionally it would be nice to have a way to move a device from one existing AAD group to another existing AAD group based on local attributes. Example if device have currently settings X in use and then these got switched to something else that you want to track. In this type of case device should not be part of two or more specific AAD groups at the same time.

Is this something you have test? Do you have a script for it?

jannikreinhard

Hey Jouni, this should not be an big deal only a small adaption of the automation scrip. If you need support let me know. I am happy to help you

Overview of Analytics capacities in Intune – Modern Device Management

[…] Create and Fill AAD Group based on an local attributes […]

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