In diesem Artikel möchte ich euch zeigen, wie man bedingte Zugriff Regeln exportieren/importieren kann. Diese Regeln sind auch als Conditional Access bekannt und ein Feature vom Azure Active Directory. Mit dieser Funktionalität kann ich den Zugriff auf Unternehmensressourcen steuern, also z.B. eine Multifaktor Authentifizierung verlangen, wenn auf sehr sensible Daten zugegriffen werden soll. Mehr Informationen gibt zum Conditional Access gibt es bei Microsoft.
Standardmäßig können solche Regeln nicht über die Weboberfläche vom Azure Active Directory importiert bzw. exportiert werden. Hat man also z.B. einen Tenant zum Testen und möchte dann Regeln in den produktiven Tenant überführen, muss man diese wieder über die Weboberfläche zusammenklicken. Das macht erfahrungsgemäß sehr wenig Spaß und ist auch noch fehleranfällig. Auch als Microsoft 365 Dienstleister kommt es häufiger vor, dass man bereits bestehende bedingte Zugriff Regeln aus dem eigenen Tenant auf den Tenant des Kunden kopieren will. Oder man hat bereits gute Baseline Regeln, die auf jedem Tenant aktiviert sein sollten, man diese aber nicht immer manuell zusammenklicken möchte.
Und deshalb gibt es dafür die Lösung: DCToolbox von Daniel Chronlund. Das Tool ist also nicht von mir, sondern ich beschreibe hier nur die Nutzung. Und das Tool kann auch noch viel mehr, als was hier beschrieben wird. 🙂
Um mit DCToolbox bedingte Zugriff Regeln exportieren/importieren zu können, benötigen wir zuerst eine App Registrierung im Tenant, die zur Verbindung des Tools genutzt wird.
Wir erstellen also eine App Registrierung für die DCToolbox. Der Name kann dabei beliebig gewählt werden, nur die Redirect URI muss https://login.microsoftonline.com/common/oauth2/nativeclient genau so lauten.
Im nächsten Schritt müssen wir nun die notwendigen API Berechtigungen für die App setzten. Standardmäßig darf unsere App Registrierung nämlich nicht sehr viel.
Wir fügen also die notwendigen Berechtigungen hinzu. DCToolbox nutzt an dieser Stelle natürlich die Microsoft Graph API.
Und noch wichtig zu wissen, wir müssen als Art die delegierten Berechtigungen (Delegated permissions) auswählen.
DCToolbox benötigt folgende Berechtigungen:
- Agreement.Read.All
- Application.Read.All
- Directory.Read.All
- Policy.Read.All
- Policy.ReadWrite.ConditionalAccess
Diese angeforderten Berechtigungen müssen wir dann noch genehmigen, bzw. durch einen Benutzer mit entsprechenden Berechtigungen genehmigen lassen.
Danach sollten die Berechtigungen dann entsprechend korrekt vergeben sein.
Damit wir die App Registrierung nutzen können, müssen wir noch ein Client Secret (Value) erstellen und uns zusätzlich die ID der Anwendung merken.
Nachdem wir nun alles vorbereitet haben, können wir DCToolbox installieren und verwenden. Die Installation erfolgt über die PowerShell Gallery mit dem Befehl:
Install-Module DCToolbox
Nun können wir mit den Befehlen Export-DCConditionalAccessPolicyDesign
und Import-DCConditionalAccessPolicyDesign
die bedingten Zugriff Regeln exportieren/importieren.
Als Beispiel diente eine Regel aus einer meiner vorherigen Beiträge. Durch den Export und Import haben wir die Regel kopiert (nicht sinnvoll, aber es funktioniert wie erwähnt mit beliebigen Tenants). Vor dem Import habe ich das JSON noch angepasst und den Namen geändert. Dazu aber gleich noch mehr.
Die Regeln werden als JSON gespeichert und für das aufgeführte Beispiel sieht dies folgendermaßen aus:
{ "displayName": "BLOCK - Download untrusted Devices 2", "state": "enabledForReportingButNotEnforced", "grantControls": null, "conditions": { "userRiskLevels": [ ], "signInRiskLevels": [ ], "clientAppTypes": [ "browser" ], "locations": null, "deviceStates": null, "clientApplications": null, "applications": { "includeApplications": [ "00000002-0000-0ff1-ce00-000000000000", "00000003-0000-0ff1-ce00-000000000000" ], "excludeApplications": [ ], "includeUserActions": [ ] }, "users": { "includeUsers": [ "All" ], "excludeUsers": [ ], "includeGroups": [ ], "excludeGroups": [ "8eec22a1-2777-4aa0-a64c-dfd46e485e43" ], "includeRoles": [ ], "excludeRoles": [ ] }, "platforms": { "includePlatforms": [ "all" ], "excludePlatforms": [ "android", "iOS", "macOS" ] }, "devices": { "includeDeviceStates": [ ], "excludeDeviceStates": [ ], "includeDevices": [ "All" ], "excludeDevices": [ "DomainJoined" ] } }, "sessionControls": { "applicationEnforcedRestrictions": null, "signInFrequency": null, "persistentBrowser": null, "cloudAppSecurity": { "cloudAppSecurityType": "blockDownloads", "isEnabled": true } } }
Mit dieser gezeigten Möglichkeit kann man also nun Conditional Access Regeln ganz einfach exportieren und wieder importieren. Natürlich kann/muss man das JSON auch anpassen, wenn man z.B. dort Gruppen oder ähnliches verwendet. Diese unterscheiden sich natürlich je nach Tenant.
DCToolbox nimmt einem viele manuelle Arbeit ab, weshalb ich das Tool nur jedem empfehlen kann.
[…] Account auf IP-Adressen beschränkt. Einen Artikel über die Nutzung der DCToolbox findest du hier. Service Accounts können also nur von definierten IP-Adressräumen auf unseren Microsoft 365 […]
[…] praktische Umsetzung wird ein Azure Active Directory Plan 1 oder 2 benötigt. Nachdem MFA und der bedingte Zugriff erst im Zusammenspiel ihre ganzen Vorteile ausspielen, sollte das nicht das Problem sein. Weiterhin […]
[…] Wie man am einfachsten mit bedingten Zugriffsregeln arbeiten kann, habe ich in einem vorherigen Artikel bereits beschrieben. Durch Konformitätsrichtlinien kann die Kompatibilität des Gerätes […]