Freigeben über


Anleitung: Erzwingen von Geheimnis- und Zertifikatsstandards mithilfe von Richtlinien zur Anwendungsverwaltung

In diesem Lernprogramm erfahren Sie, wie Sie geheime und Zertifikatstandards mithilfe von Anwendungsverwaltungsrichtlinien in Microsoft Entra ID erzwingen.

Die Sicherstellung, dass Anwendungen in Ihrer Organisation sichere Authentifizierung verwenden, ist entscheidend für den Schutz vertraulicher Daten und die Aufrechterhaltung der Integrität Ihrer Systeme. Die Microsoft Entra-ID bietet eine Möglichkeit, geheime und Zertifikatbeschränkungen über Anwendungsverwaltungsrichtlinien zu erzwingen. Mit dieser Funktion können Sie verwalten, welche Arten von Geheimnissen und Schlüsseln verwendet werden können, und sicherstellen, dass sie regelmäßig ausgetauscht werden. Anwendungsverwaltungsrichtlinien können nur mithilfe von Microsoft Graph PowerShell oder der Microsoft Graph-API aktualisiert werden. Weitere Informationen zu diesem Feature finden Sie in der Übersicht über die API für die Anwendungsverwaltungsrichtlinien von Microsoft Entra.

Richtlinien können auf alle Anwendungen in Ihrer Organisation oder auf bestimmte Anwendungen angewendet werden. In diesem Tutorial erfahren Sie Folgendes:

  • Erfahren Sie mehr über empfohlene Einschränkungen für geheime Schlüssel und Zertifikate.
  • Lesen Sie die aktuelle Anwendungsverwaltungsrichtlinie für Ihren Mandanten.
  • Aktualisieren Sie die Anwendungsrichtlinie, um Einschränkungen zu erzwingen.
  • Vergewissern Sie sich, dass die Richtlinie angewendet wurde.

Von Bedeutung

Das Vornehmen von Änderungen an Ihrer Anwendungsverwaltungsrichtlinie kann erhebliche Auswirkungen auf Ihre Anwendungen und ihre Fähigkeit zur Authentifizierung haben. Bevor Sie Änderungen vornehmen, ist es wichtig, die Auswirkungen dieser Änderungen und deren Auswirkungen auf Ihre Anwendungen zu verstehen. Sie sollten alle Änderungen in einer Nicht-Produktionsumgebung testen, bevor Sie sie auf Ihre Produktionsumgebung anwenden und eine Kopie der aktuellen Richtlinieneinstellungen erstellen, bevor Sie sie aktualisieren.

Voraussetzungen

Angriffe auf Anwendungen zielen häufig auf geheime Schlüssel wie Kennwörter, Schlüssel und Zertifikate ab, um nicht autorisierten Zugriff auf vertrauliche Daten zu erhalten. Durch die Durchsetzung von Einschränkungen können Sie diese Risiken mindern und sicherstellen, dass Ihre Anwendungen sicher bleiben. Nachfolgend sind unsere empfohlenen Einschränkungen für Geheime und Zertifikate aufgeführt:

  • Deaktivieren Sie Anwendungs-Kennwörter/geheime Clientschlüssel: Anwendungen, die geheime Clientschlüssel verwenden, speichern sie möglicherweise in Konfigurationsdateien, hartcodieren sie in Skripts oder riskieren ihre Gefährdung auf andere Weise. Die Komplexitäten des geheimen Managements machen Geheimgeheimnisse anfällig für Lecks und attraktiv für Angreifer.

  • Deaktivieren Sie die symmetrische Schlüsselverwendung in Anwendungen: Symmetrische Schlüssel ähneln Client-Geheimnissen darin, dass sie zwischen der Anwendung und der Ressource, auf die sie zugreift, gemeinsam verwendet werden. Dies bedeutet: Wenn ein Angreifer Zugriff auf den symmetrischen Schlüssel erhält, kann er die Identität der Anwendung imitieren und auf die Ressource zugreifen. Symmetrische Schlüssel sind auch schwieriger zu verwalten als asymmetrische Schlüssel, da beide Parteien denselben Schlüssel gemeinsam nutzen müssen.

  • Beschränken Sie die Lebensdauer asymmetrischer Schlüssel (Zertifikat) auf 180 Tage: Zertifikate bieten eine sicherere Möglichkeit zum Authentifizieren von Anwendungen als geheime Clientschlüssel. Sie können jedoch weiterhin kompromittiert werden, wenn sie nicht ordnungsgemäß verwaltet werden. Indem Sie die Lebensdauer von Zertifikaten einschränken, können Sie das Risiko verringern, dass langlebige Zertifikate von Angreifern ausgenutzt werden. Zertifikate sollten regelmäßig erneuert werden, um sicherzustellen, dass sie nicht kompromittiert werden. Die empfohlene maximale Lebensdauer für Zertifikate beträgt 180 Tage. Dies bedeutet, dass Sie Ihre Zertifikate mindestens alle 180 Tage drehen sollten. Das Festlegen einer kürzeren Lebensdauer für hochempfindliche Anwendungen kann das Risiko einer Kompromittierung weiter reduzieren. Wir empfehlen auch, die automatische Rotation von Zertifikaten mithilfe von Azure Key Vault zu konfigurieren. Weitere Informationen finden Sie unter Automatisieren der Drehung eines geheimen Schlüssels für Ressourcen, die einen Satz von Authentifizierungsanmeldeinformationen verwenden

Weitere Informationen zu empfohlenen Sicherheitspraktiken für Microsoft Entra-Mandanten finden Sie unter Konfigurieren von Microsoft Entra für erhöhte Sicherheit.

Lesen Sie Ihre Richtlinie zur Verwaltung von Mietbewerbungen

Bevor Sie eine neue Anwendungsverwaltungsrichtlinie erstellen, können Sie Ihre vorhandene Richtlinie lesen, um festzustellen, ob sie Ihren Anforderungen entspricht. Das folgende Beispiel zeigt, wie Sie die Standardanwendungsverwaltungsrichtlinie für Ihren Mandanten lesen. Sie können diese API-Anforderung auch wiederverwenden, um zu bestätigen, dass die Richtlinie später in diesem Lernprogramm angewendet wurde.

Beispiel

Im folgenden Beispiel wird die Standard-Anwendungsverwaltungsrichtlinie für Ihren Mandanten gelesen. Die Antwort zeigt die aktuellen Richtlinieneinstellungen an.

Stellen Sie mithilfe des Connect-MgGraph Cmdlets und der Policy.Read.All Berechtigung eine Verbindung mit Microsoft Graph her. Melden Sie sich mit mindestens der Rolle " Cloudanwendungsadministrator " an. Führen Sie dann die folgenden Befehle aus, um die Standardmäßige Anwendungsverwaltungsrichtlinie für Ihren Mandanten zu lesen.

Connect-MgGraph -Scopes 'Policy.Read.All'
# Get the default application management policy
Get-MgPolicyDefaultAppManagementPolicy | format-list

Weitere Informationen zu diesem Cmdlet finden Sie unter Get-MgPolicyDefaultAppManagementPolicy.

Ausgabe

Das folgende Beispiel zeigt die Ausgabe der Standardmäßigen Mandanten-App-Verwaltungsrichtlinie. Ihre Richtlinie kann sich vom Beispiel unterscheiden. Wenn in Ihrer Organisation keine Richtlinie angewendet wird, wird das id-Feld auf 00000000-0000-0000-0000-000000000000 festgelegt und das isEnabled-Feld auf false.

ApplicationRestrictions      : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAppManagementApplicationConfiguration
DeletedDateTime              :
Description                  : Default tenant policy that enforces app management restrictions on applications and service principals. To apply policy to targeted resources, create a new policy under appManagementPolicies collection.
DisplayName                  : Default app management tenant policy
Id                           : 00000000-0000-0000-0000-000000000000
IsEnabled                    : false
ServicePrincipalRestrictions : Microsoft.Graph.PowerShell.Models.MicrosoftGraphAppManagementServicePrincipalConfiguration
AdditionalProperties         : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#policies/defaultAppManagementPolicy/$entity]}

Melden Sie sich beim Microsoft Graph-Explorer mit mindestens einer Cloudanwendungsadministratorrolle an . Führen Sie dann die folgende Anforderung aus, um die Standardmäßige Anwendungsverwaltungsrichtlinie für Ihren Mandanten zu lesen. Stellen Sie sicher, dass Sie der Berechtigung Policy.Read.All zustimmen.

GET https://graph.microsoft.com/v1.0/policies/defaultAppManagementPolicy

Weitere Informationen zu dieser Anforderung finden Sie unter Get tenantAppManagementPolicy.

Antwort

Das folgende Beispiel zeigt die Antwort der Standardrichtlinie zur Verwaltung von Mandanten-Apps. Ihre Richtlinie kann sich vom Beispiel unterscheiden. Wenn in Ihrer Organisation keine Richtlinie angewendet wird, wird das Feld id auf 00000000-0000-0000-0000-000000000000 gesetzt, und das Feld isEnabled wird auf false gesetzt.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#policies/defaultAppManagementPolicy/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/927c6607-8060-4f4a-a5f8-34964ac78d70/defaultAppManagementPolicy/00000000-0000-0000-0000-000000000000",
    "id": "00000000-0000-0000-0000-000000000000",
    "displayName": "Default app management tenant policy",
    "description": "Default tenant policy that enforces app management restrictions on applications and service principals. To apply policy to targeted resources, create a new policy under appManagementPolicies collection.",
    "isEnabled": false,
    "applicationRestrictions": {
        "passwordCredentials": [],
        "keyCredentials":[]
    },
    "servicePrincipalRestrictions": {
        "passwordCredentials": [],
        "keyCredentials":[]
    }
}

Von Bedeutung

Erstellen Sie eine Kopie der aktuellen Richtlinieneinstellungen, bevor Sie sie aktualisieren. Auf diese Weise können Sie bei Bedarf wieder auf die ursprünglichen Einstellungen zurückgesetzt werden. Sie können dies tun, indem Sie die aktuellen Richtlinieneinstellungen in eine Datei kopieren oder einen Screenshot der Einstellungen erstellen. Sie können die ursprünglichen Einstellungen nicht finden, nachdem Sie sie aktualisiert haben, wenn Sie sie nicht gespeichert haben.

Aktualisieren der Anwendungsverwaltungsrichtlinie

Um geheime und Zertifikatbeschränkungen zu implementieren, müssen Sie die Standardrichtlinie für die Anwendungsverwaltung aktualisieren. In diesem Beispiel werden die empfohlenen Einstellungen bereitgestellt, Sie können sie jedoch an Ihre Anforderungen anpassen oder bestimmte Elemente weglassen, wenn Sie sie nicht anwenden möchten. Das folgende Beispiel zeigt, wie Sie die Standardanwendungsverwaltungsrichtlinie mit den empfohlenen Einstellungen aktualisieren:

  • passwordCredentials: Ermöglicht das Festlegen von Richtlinien zum Einschränken von Attributen für geheime Clientschlüssel und symmetrische Schlüssel. Dies kann weggelassen werden, wenn Sie keine Richtlinie festlegen möchten, um diese Arten von Anmeldeinformationen einzuschränken.

    • Mit dem restrictionType Parameter können Sie den Einschränkungstyp festlegen, den Sie anwenden möchten. In diesem Fall beschränken Sie passwordAddition, customPasswordAddition und symmetricKeyAddition. Diese Einstellungen beschränken die Erstellung von geheimen Clientschlüsseln, benutzerdefinierten Kennwörtern und symmetrischen Schlüsseln.

    • Mit dem state Parameter können Sie die Einschränkung aktivieren oder deaktivieren. Wenn diese Einstellung festgelegt enabledist, wird die Einschränkung angewendet. Wenn diese Einstellung disabledfestgelegt ist, wird die Einschränkung nicht angewendet.

    • Mit dem maxLifetime Parameter können Sie die maximale Lebensdauer des geheimen Schlüssels festlegen. Für passwordCredentials haben Sie den Wert auf null gesetzt. Das Festlegen des Werts null bedeutet, dass die maximale Lebensdauer nicht eingeschränkt ist. Dies liegt daran, dass Sie die Erstellung von geheimen Clientschlüsseln und symmetrischen Schlüsseln vollständig deaktivieren. Wenn Sie eine maximale Lebensdauer für geheime Clientschlüssel festlegen möchten, können Sie diesen Wert auf eine Dauer im ISO 8601-Format festlegen. Im nächsten Abschnitt finden Sie ein Beispiel dafür. Weitere Informationen zur Formatierung der Dauer finden Sie unter ISO 8601.

    • Mit dem restrictForAppsCreatedAfterDateTime Parameter können Sie ein Datum festlegen, ab dem die Richtlinie für neue Anwendungen wirksam wird. Alle anwendungen, die vor diesem Datum erstellt wurden, sind von der Richtlinie nicht betroffen. In diesem Fall wenden Sie Einschränkungen für Anwendungen an, die nach dem 20. Februar 2025 erstellt wurden. Stellen Sie sicher, dass Sie dieses Datum entsprechend Ihren Anforderungen aktualisieren. Wenn Sie unterschiedliche Einschränkungen für Anwendungen festlegen möchten, die vor oder nach einem bestimmten Datum erstellt wurden, können Sie mehrere Richtlinien mit unterschiedlichen restrictForAppsCreatedAfterDateTime Werten festlegen.

  • keyCredentials: Ermöglicht das Festlegen von Parametern für Zertifikate. In diesem Fall beschränken Sie die Lebensdauer von Anwendungszertifikaten auf 180 Tage.

    • Mit dem restrictionType Parameter können Sie den Einschränkungstyp festlegen, den Sie anwenden möchten. In diesem Fall schränken Sie asymmetricKeyLifetime ein. Dadurch wird die Lebensdauer von Anwendungszertifikaten auf einen benutzerdefinierten Wert beschränkt.

    • Mit dem state Parameter können Sie die Einschränkung aktivieren oder deaktivieren. Wenn diese Einstellung festgelegt enabledist, wird die Einschränkung angewendet. Wenn diese Einstellung disabledfestgelegt ist, wird die Einschränkung nicht angewendet.

    • Mit dem maxLifetime Parameter können Sie die maximale Lebensdauer des Zertifikats festlegen. In diesem Fall beschränken Sie die Lebensdauer von Zertifikaten auf 180 Tage. Dazu wird das ISO 8601-Zeitdauerformat verwendet. Das Präfix P gibt an, dass der Wert für einen Zeitraum liegt, und 180D gibt an, dass der Zeitraum 180 Tage beträgt. Sie können die Zahl von 180 zu einem anderen Wert entsprechend Ihren spezifischen Anforderungen ändern. Weitere Informationen zur Dauerformatierung finden Sie unter ISO 8601.

    • Mit dem restrictForAppsCreatedAfterDateTime Parameter können Sie ein Datum festlegen, ab dem die Richtlinie für neue Anwendungen wirksam wird. Alle anwendungen, die vor diesem Datum erstellt wurden, sind von der Richtlinie nicht betroffen. In diesem Fall wenden Sie Einschränkungen für Anwendungen an, die nach dem 20. Februar 2025 erstellt wurden. Stellen Sie sicher, dass Sie dieses Datum entsprechend Ihren Anforderungen aktualisieren. Wenn Sie unterschiedliche Einschränkungen für Anwendungen festlegen möchten, die vor oder nach einem bestimmten Datum erstellt wurden, können Sie mehrere Richtlinien mit unterschiedlichen restrictForAppsCreatedAfterDateTime Werten festlegen.

Beispiel

Im folgenden Beispiel wird die Standardanwendungsverwaltungsrichtlinie mit den einstellungen aktualisiert, die im vorherigen Abschnitt erläutert werden.

Connect-MgGraph -Scopes 'Policy.ReadWrite.All'
Import-Module Microsoft.Graph.Identity.SignIns
# Define the parameters for the application management policy
$params = @{
isEnabled = $true
applicationRestrictions = @{
    passwordCredentials = @(
        @{
            restrictionType = "passwordAddition"
            state = "enabled"
            maxLifetime = $null
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-02-20T10:37:00Z")
        }
        @{
            restrictionType = "customPasswordAddition"
            state = "enabled"
            maxLifetime = $null
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-05-20T10:37:00Z")
        }
        @{
            restrictionType = "symmetricKeyAddition"
            state = "enabled"
            maxLifetime = $null
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-02-20T10:37:00Z")
        }
    )
    keyCredentials = @(
        @{
            restrictionType = "asymmetricKeyLifetime"
            maxLifetime = "P180D"
            restrictForAppsCreatedAfterDateTime = [System.DateTime]::Parse("2025-02-20T10:37:00Z")
        }
    )
}
}
# Update the default application management policy
Update-MgPolicyDefaultAppManagementPolicy -BodyParameter $params

Weitere Informationen zu diesem Cmdlet finden Sie unter Update-MgPolicyDefaultAppManagementPolicy.

Stellen Sie sicher, dass Sie der Berechtigung Policy.ReadWrite.All zustimmen. Führen Sie dann die folgende Anforderung aus, um die Standardmäßige Anwendungsverwaltungsrichtlinie für Ihren Mandanten zu aktualisieren.

PATCH https://graph.microsoft.com/v1.0/policies/defaultAppManagementPolicy
Content-Type: application/json

{
    "isEnabled": true,
    "applicationRestrictions": {
        "passwordCredentials": [
            {
                "restrictionType": "passwordAddition",
                "state": "enabled",
                "maxLifetime": null,
                "restrictForAppsCreatedAfterDateTime": "2025-02-20T10:37:00Z"
            },
            {
                "restrictionType": "customPasswordAddition",
                "state": "enabled",
                "maxLifetime": null,
                "restrictForAppsCreatedAfterDateTime": "2025-05-20T10:37:00Z"
            },
            {
                "restrictionType": "symmetricKeyAddition",
                "state": "enabled",
                "maxLifetime": null,
                "restrictForAppsCreatedAfterDateTime": "2025-02-20T10:37:00Z"
            },
        ],
        "keyCredentials": [
            {
                "restrictionType": "asymmetricKeyLifetime",
                "state": "enabled",
                "maxLifetime": "P180D",
                "restrictForAppsCreatedAfterDateTime": "2025-02-20T10:37:00Z"
            }
        ]
    },
}

Weitere Informationen zu dieser Anforderung finden Sie unter "Update tenantAppManagementPolicy".

Antwort

Sobald die Anforderung gesendet wurde, sollten Sie eine Antwort erhalten, die angibt, dass die Richtlinie erfolgreich aktualisiert wird. Die Antwort sollte ein 204 No Content Statuscode sein, der angibt, dass die Anforderung erfolgreich war und kein Inhalt zurückgegeben werden soll.

    HTTP/1.1 204 No Content

Bestätigen, dass die Richtlinie angewendet wurde

Nachdem Sie Ihre Anwendungsverwaltungsrichtlinie aktualisiert haben, können Sie bestätigen, dass sie angewendet wird, indem Sie die Standardanwendungsverwaltungsrichtlinie erneut lesen, wie zuvor gezeigt. Die Antwort sollte die aktualisierte Richtlinie mit den angewendeten Einschränkungen anzeigen.

Wenn Sie zum ersten Mal eine Anwendungsverwaltungsrichtlinie anwenden, sollte sich das id Feld von 00000000-0000-0000-0000-000000000000 zu einer neuen GUID geändert haben. Diese Änderung gibt an, dass die Richtlinie erstellt wird.

Sie können auch bestätigen, dass die Richtlinie angewendet wird, indem Sie eine neue Anwendung erstellen und überprüfen, ob die Einschränkungen erzwungen werden. Wenn Sie beispielsweise versuchen, eine neue Anwendung mit einem geheimen Clientschlüssel oder symmetrischen Schlüssel zu erstellen, sollten Sie einen Fehler erhalten, der angibt, dass der Vorgang nicht zulässig ist, wie im folgenden Screenshot gezeigt.

Screenshot des Microsoft Entra Admin Centers mit einer Warnung, dass geheime Clientschlüssel durch mandantenweite Richtlinie blockiert werden.