Bei der Arbeit in einer Microsoft 365-Umgebung können IT-Experten Richtlinien für bedingten Zugriff, um den Zugriff auf ihren Mandanten zu steuern. In diesem Artikel beschreiben wir detailliert, wie Sie Richtlinien für den bedingten Zugriff mit PowerShell anstelle der grafischen Benutzeroberfläche erstellen und warum Ihnen die Verwendung von PowerShell Zeit sparen kann
Inhaltsverzeichnis
Richtlinien für bedingten Zugriff können IT-und Sicherheitsteams dabei unterstützen, den gesamten Zugriff und die Kontrolle für einen Mandanten weiter zu sichern und Elemente wie die Multi-Faktor-Authentifizierung durchzusetzen. In einem früheren Artikel habe ich erklärt, warum Organisationen den Zugriff auf Office 365 mithilfe von Richtlinien für bedingten Zugriff einschränken sollten, und Sie sollten sich das ansehen, bevor Sie weiterlesen.
Die Vorteile der Erstellung von Richtlinien für bedingten Zugriff mit PowerShell
Bedingt Zugriffsrichtlinien sind einfache Wenn-Dann-Anweisungen. Wenn ein Benutzer beispielsweise auf SharePoint Online zugreifen muss, muss er eine Sicherheitsaktion ausführen. Richtlinien für bedingten Zugriff treffen Entscheidungen auf der Grundlage von Signalen wie Benutzer-oder Gruppenmitgliedschaften, IP-Standortinformationen, den Geräten oder Anwendungen, die zum Herstellen einer Verbindung zu Diensten verwendet werden, und vielem mehr.
Neben der Bereitstellung einer endgültigen Entscheidung für die Gewährung oder Durch Blockieren des Zugriffs auf einen Mandanten erzwingen Richtlinien für bedingten Zugriff auch zusätzliche Überprüfungen. Zu den möglichen Anforderungen, die Sie konfigurieren können, gehören die mehrstufige Authentifizierung, die Beschränkung des Zugriffs auf als konform gekennzeichnete Geräte, die Anforderung von Geräten, die mit Hybrid Azure AD verbunden sind, die Verwendung einer genehmigten Client-App oder die Verwendung einer App-Schutzrichtlinie.
Sie können erstellen Richtlinien für den bedingten Zugriff mithilfe der grafischen Benutzeroberfläche in Azure Active Directory und Microsoft Endpoint Manager. Sie können jedoch auch PowerShell, Microsoft Graph PowerShell und die Microsoft Graph-API verwenden, um dasselbe zu tun.
Auch wenn die Verwendung der Benutzeroberfläche eine unkomplizierte Methode zum Erstellen von Richtlinien für bedingten Zugriff ist, können Sie mit PowerShell dieselben Richtlinien für bedingten Zugriff über mehrere Mandanten hinweg replizieren. Daher ist es viel einfacher, diese Richtlinien mit PowerShell zu erstellen.
Der von Ihnen gewählte PowerShell-Ansatz bestimmt die Befehle und die Syntax, die Sie verwenden müssen. Die beiden verfügbaren PowerShell-Module, die Sie verwenden können, sind „AzureAD“ und „Microsoft.Graph.“
So erstellen Sie eine Richtlinie für bedingten Zugriff mit AzureAD PowerShell-Modul
Eine Richtlinie für bedingten Zugriff erfordert einen Satz für bedingten Zugriff, eine Bedingung, eine optionale Plattform, Standorte, Risikostufen, App-Typen, Sitzungssteuerungen und Gewährungssteuerungen. Die Eigenschaften erfordern bestimmte Objekttypen innerhalb von PowerShell.
Das Hauptobjekt ist das „Microsoft.Open.MSGraph.Model.ConditionalAccessConditionSet“, gefolgt von einer Menge oder Teilmenge davon:
Anwendungen strong>=Microsoft.Open.MSGraph.Model.ConditionalAccessApplicationCondition Benutzer=Microsoft.Open.MSGraph.Model.ConditionalAccessUserCondition Locations=Microsoft.Open.MSGraph.Model.ConditionalAccessLocationCondition Controls=Microsoft.Open.MSGraph.Model.ConditionalAccessGrantControls
Um eine Richtlinie für bedingten Zugriff mit dem PowerShell-Modul „AzureAD“ zu erstellen, könnten Sie den folgenden Code als Beispiel verwenden:
Using Namespace Microsoft.Open.MSGraph.Model $conditions=[ConditionalAccessConditionSet]@{ Applications=[ConditionalAccessApplicationCondition]@{ IncludeApplications=’All’} Users=[ConditionalAccessUserCondition]@{ IncludeUsers=’All’} ClientAppTypes=@ (‘Austausch ActiveSync’,’Other’) } $grantcontrols=[ConditionalAccessGrantControls]@{ _Operator=’OR’BuiltInControls=’block’} $Params=@{ DisplayName=”SEC001-Block-Legacy-Authentication-All-Apps”; State=”EnabledForReportingButNotEnforced”; Bedingungen=$bedingungen; GrantControls=$grantcontrols; } New-AzureADMSConditionalAccessPolicy @Params
Durch die Ausführung wird eine neue Richtlinie erstellt, die in der grafischen Benutzeroberfläche sichtbar ist. Beachten Sie, dass es einige Zeit dauern kann, bis sie dort angezeigt wird, obwohl Sie PowerShell ausführen oder die Graph-API direkt aufrufen können, wenn sie dort angezeigt wird.
Die neue Richtlinie für den bedingten Zugriff ist in der grafischen Benutzeroberfläche sichtbar.
Obwohl dieser Ansatz funktioniert, ist die empfohlene Option, stattdessen das PowerShell-Modul „Microsoft.Graph“ zu verwenden.
So erstellen Sie eine Richtlinie für bedingten Zugriff mit Microsoft.Graph PowerShell-Modul
Um das „Microsoft.Graph“-Modul in PowerShell zu verwenden, müssen Sie es zuerst installieren und importieren.
Installieren von Microsoft.Graph PowerShell Modul
Sie müssen die folgenden Befehle verwenden, um das PowerShell-Modul „Microsoft.Graph“ zu installieren und zu importieren:
Install-Module Microsoft.Graph Import-Module Microsoft.Graph
Das Das PowerShell-Modul verbindet sich direkt mit der Graph-API und unterstützt die aktuelle Version 1 und Beta-Endpunkte. Mit dem folgenden Befehl können Sie festlegen, welches Profil verwendet werden soll:
Select-MgProfile-Name”beta”
Verbindung mit dem Mandanten mit PowerShell herstellen
Der nächste Schritt besteht darin, eine Verbindung mit dem Mandanten herzustellen mit „Microsoft.Graph“. Sie können eine Verbindung mit dem Mandanten herstellen, indem Sie die erforderlichen Berechtigungen oder Bereiche senden, oder Sie können eine Azure Active Directory-Anwendung verwenden, die mit den erforderlichen Berechtigungen registriert ist.
Um Richtlinien für bedingten Zugriff zu erstellen, benötigen Sie die „Richtlinie. Read.All“, „Policy.ReadWrite.ConditionalAccess“ und „Application.Read.All“-Berechtigungen. Sie können diese Berechtigungen als Teil der verbundenen Syntax übergeben, wie im folgenden Beispiel zu sehen ist:
$permissions=@(“Policy.Read.All”,”Policy.ReadWrite.ConditionalAccess”,”Application.Read.All”) Connect-MgGraph-Scopes $permissions
Erstellen einer Richtlinie für bedingten Zugriff
Sobald Sie mit dem Mandanten verbunden sind, müssen Sie die Komponenten erstellen, aus denen eine Richtlinie für bedingten Zugriff besteht. Wenn Sie das PowerShell-Modul „Microsoft.Graph“ verwenden, müssen Sie jedes Element mithilfe eines PowerShell-Objekts erstellen (PSCustomObject).
$conditions=@{ Applications=@{includeApplications=’Alle’}; Benutzer=@{includeUsers=’All’}; ClientAppTypes=@(‘ExchangeActiveSync’,’Other’); } $grantcontrols=@{ BuiltInControls=@(‘mfa’); Operator=’OR’}
Mit den jetzt definierten Kerneinstellungen können Sie jetzt die Richtlinie für den bedingten Zugriff erstellen. Hier ist der Code, den Sie in PowerShell verwenden können:
$Params=@{ DisplayName=”SEC001-Block-Legacy-Authentication-All-App”; State=”EnabledForReportingButNotEnforced”; Bedingungen=$bedingungen; GrantControls=$grantcontrols; } New-MgIdentityConditionalAccessPolicy @Params
Um verschiedene Arten von Richtlinien für bedingten Zugriff zu erstellen, lernen Sie auf einfache Weise, wie man sie strukturiert, indem Sie sie im Microsoft Graph Explorer-Tool anzeigen. Wie zuvor wird dadurch die Richtlinie für den bedingten Zugriff mit den definierten Einstellungen erstellt.
Wenn Sie dieses Tool noch nie verwendet haben, navigieren Sie zu Microsoft Graph Explorer und melden Sie sich mit einem Konto für Ihren Mandanten an:
Erweitern Sie im linken Bereich für Beispielabfragen Sicherheit, wählen Sie die Abfrage alle Richtlinien für bedingten Zugriff abrufen aus und führen Sie sie aus. Wenn Sie auf Berechtigungsprobleme stoßen, klicken Sie auf Berechtigungen ändern, um nach Bedarf zuzustimmen. Nach der Genehmigung sehen Sie die Berechtigung Policy.Read.All und die Abfrage wird erfolgreich ausgeführt.
Die Policy.Read.All-Berechtigung ist sichtbar im Microsoft Graph Explorer
Nach dem Ausführen einer erfolgreichen Abfrage zeigt der Bereich Antwortvorschau unten das ausgegebene JSON an.
Sie können dies verwenden JSON zum Strukturieren Ihres PowerShell-Befehls
Sie können jetzt diesen JSON verwenden, um Ihren PowerShell-Befehl nach Bedarf zu strukturieren. Beispielsweise könnten wir diese JSON verwenden, um die PowerShell-Struktur zu erstellen, die zum Aktivieren der mehrstufigen Authentifizierung für alle Administratoren erforderlich ist.
Hier ist ein JSON-Beispiel, das Sie verwenden können:
{“displayName”:”Require Multi-Faktor-Authentifizierung für Administratoren”,”state”:”enabledForReportingButNotEnforced”,”conditions”: {“userRiskLevels”: [],”clientAppTypes”: [“all”],”applications”: {“includeApplications”: [“All”] },”users”: {“excludeUsers”: [“a4b6209c-d501-4fce-83d0-e8da5975de77″],”includeRoles”: [“62e90394-69f5-4237-9190-012177145e10″,”194ae4cb-b126-40b2-bd5b-6091b380977d”,”f28a1f50-f6e7-4571-818b-6a12f2af6b6c”,”29232cdf-9323-42fd-ade2-1d097af3e4de”,”b1be1c3e-b65d-4f19-8427-f6fa0d97-91ebb-92feb9″,”91ebb4b77-91ebb-92feb9″,-9608f156bbb8″,”b0f54661-2d74-4c50-afa3-1ec803f12efe”,”fe930be7-5e62-47db-91AF-98C3A49A38B1″,”C4E39BD9-1100-46D3-8C65-FB160DA0071F”,”9B895D92-2CD3-44C7-9D02-A6AC2D5C3-29-25555555555555555555555555555555555555555555555559-259-19-25555555559-2555555555555555555555555555555555555555555555555555555. 8c3a10f19b9d”,”7be44c8a-adaf-4e2a-84d6-ab2649e08a13″,”e8611ab8-c189-46e8-94e1-60213ab1f814″] } },”grantControls”: {“operator”:”OR”,”builtInControls”: [“mfa”] } }
Nun, hier ist ein Beispiel für einen PowerShell-Befehl, den wir verwenden können, um die Multi-Faktor-Authentifizierung für alle Administratoren zu aktivieren.
$conditions=@{ Applications=@{ includeApplications=’All’}; Benutzer=@{ ausschließenBenutzer=”a4b6209c-d501-4fce-83d0-e8da5975de77″includeRoles=@(“62e90394-69f5-4237-9190-012177145e10″;”194ae4cb-b126-40b2-bd5b-6091b380927d”;”f1a-6091b380927d”; 4571-818B-6A12F2AF6B6C”;”29232CDF-9323-42FD-DAD2-1D097AF3E4″; afa3-1ec803f12efe”;”fe930be7-5e62-47db-91AF-98C3A49A38B1″; 446551a6b5f7″;”966707d0-3269-4727-9be2-8c3a10f19b9d”;”7be44c8a-adaf-4e2a-84d6-ab2649e08a13″;”e8611ab8-c189-46e8-94e1-60213ab1f814; )”; ) } $grantcontrols=@{ BuiltInControls=@(‘mfa’); Operator=’OR’} $Params=@{ DisplayName=”SEC002-Require-Multifactor-Authentication-for-Admins”; State=”EnabledForReportingButNotEnforced”; Bedingungen=$bedingungen; GrantControls=$grantcontrols; } New-MgIdentityConditionalAccessPolicy @Params
Los geht’s!
Fazit
Wie Sie sehen können, ist dies eine wirklich einfache Methode, um zu lernen, wie man Richtlinien für den bedingten Zugriff erstellt, basierend auf der Betrachtung vorhandene Richtlinienstrukturen, die Sie erstellen. Sie können auch die vorkonfigurierten Microsoft-Vorlagenrichtlinien verwenden und JSON exportieren, um nach Bedarf neue benutzerdefinierte Richtlinien zu erstellen. Weitere Informationen zu Richtlinien für bedingten Zugriff finden Sie unter Microsoft Learn-Website.