• Frag AI:dentity
  • Warum IDM-Portal
  • Identity Management
    • Benutzerverwaltung
    • Delegation
    • IAM Self Service
    • Password Reset Self Service für Anwender
    • Telefonbuch
  • Authorization
    • Berechtigungsverwaltung
    • Genehmigungs-Workflow
    • Single Sign-on
    • Rollenbasierter Zugriff
    • Automation
  • Systeme
    • M365 Anbindung
    • PowerShell IAM
    • Active Directory
    • HR-System anbinden
  • News
  • Jetzt Termin vereinbaren
FirstWare IDM-PortalFirstWare IDM-Portal
FirstWare IDM-PortalFirstWare IDM-Portal
  • Warum IDM-Portal
  • Frag AI:dentity
  • Demo buchen
  • Deutsch
    • Englisch

Passwort-Regeln prüfen

Authorization Management, Compliance |

 

Wie können wir Passwort-Regeln überprüfen? Erfüllen sie die Anforderungen an die Komplexität? Dieser Artikel erläutert verschiedene Methoden zur Überprüfung der Einhaltung von Passwortrichtlinien in einer Active Directory Domäne.

Als praktisches Beispiel ist die Implementierung eines Self-Service-Portals zur Passwortänderung, um die Einhaltung der Richtlinien zu gewährleisten und den Benutzern eine einfache Möglichkeit zur Verwaltung ihrer Passwörter zu bieten.

Index

  • Warum gibt es Passwort-Regeln?
  • Hilfe für die Anwender
  • Welche Passwort-Regeln kennt das Active Directory?
  • Einstellungen der Passwortrichtlinie im Active Directory
  • Bedeutung der Komplexitätsanforderungen
  • Methoden zur Prüfung der Passwort-Regeln
  • Passwort-Regeln prüfen mit PowerShell
    • Prüfung der Passwortlänge
    • Prüfung der Mindestanzahl von Großbuchstaben
    • Prüfung der Mindestanzahl von Kleinbuchstaben
    • Prüfung der Mindestanzahl von Ziffern
    • Prüfung der Mindestanzahl von Sonderzeichen
    • Prüfung auf verbotene Wörter
    • Prüfung auf Teile aus dem Nutzernamen
    • Prüfen der Password History
  • Das Password-Change-Portal
  • Fazit
  • Mehr über FirstWare IDM-Portal

Warum gibt es Passwort-Regeln?

Einfachheit und Sicherheit, das sind zwei Schlagwörter, die wahrscheinlich die wenigsten in einem Satz nennen würden. Die Notwendigkeit von sicheren Methoden zur Prüfung eines autorisierten Zugriffs auf IT-Ressourcen ist sicherlich unbestreitbar. Im Grunde ist heute jede Ressource mit IT verbunden oder durch IT abgesichert. Es wird nicht mehr nur der Zugriff auf Dateien in der virtuellen Welt geschützt, sondern es bezieht sich auch auf die reale Welt:

  • Drucker,
  • Räume,
  • Fahrzeuge,
  • Produktionsmaschinen usw.

Es liegt in der Natur der Sache, dass die Sicherheitsmethoden meistens umständlich sind, denn nur so können sie erfolgreich unberechtigten Zugriff abwehren. Dabei sollten sie aber nur so kompliziert wie notwendig sein, ansonsten findet der Anwender Methoden, es sich – und damit dem Angreifer – einfacher zu gestalten, was die Sicherheitsbemühungen wieder konterkarieren würde.

Bei der Vereinfachung hilft auch der technologische Fortschritt. Es existieren heute viele Methoden, um die Authentifizierung des Anwenders unkompliziert zu gestalten. Die Bekanntesten sind biometrische Verfahren wie Fingerabdruck und Gesichtserkennung.

So fortschrittlich diese Methoden sind, sie kollidieren aber in den meisten Organisationen mit der Realität. Es wird dafür zusätzliche Hardware und Kompatibilität zu entsprechenden Protokollen benötigt. Eine große Anzahl von Software kann dies aber noch nicht abdecken. Daher ist die grundlegendste Authentifizierungsmethode, das Passwort, immer noch die Brot-und-Butter-Methode.

Damit das Passwort trotzdem so sicher wie möglich ist, müssen verschiedene Komplexitätsregeln eingehalten werden, die es einem Angreifer so schwer wie möglich machen, das Passwort zu erraten. Die Rahmenbedienungen dafür sind:

  • eine Passwortmindestlänge,
  • die Einzigartigkeit und
  • die Verwendung vieler unterschiedlicher Zeichenarten.

Passwörter sollten ebenfalls regelmäßig geändert werden. Da dies die Anwender meistens stört und sie daher dazu tendieren, eine Nummer am Ende des Passwortes hochzuzählen, wird ebenfalls die Password History geprüft.

Hilfe für die Anwender

Da wir es den Anwender gerne so einfach wie möglich machen wollen, möchten wir sie auch bei der lästigen aber notwendigen Aufgabe zur regelmäßigen Passwortänderung unterstützen.

Microsoft ist hierbei leider nicht sehr hilfreich. Haben wir unser neues Passwort nicht gemäß den Komplexitätsregeln entworfen, gibt uns Windows nur eine sehr lapidare Antwort:

Unable to update a password in Microsoft

CHANGE A PASSWORD – UNABLE TO UPDATE THE PASSWORD. THE VALUES PROVIDED FOR THE NEW PASSWORD DOES NOT MEET THE LENGTH, COMPLEXITY, OR HISTORY REQUIREMENTS OF THE DOMAIN.

Diese Meldung ist für den Anwender nicht aussagefähig, da sie keinen Hinweis enthält, welche Eingaben im Passwort noch fehlen. Wir möchten als Hilfestellung ein Self-Service Password-Change Portal erstellen. Das Portal soll den Nutzer vor der Übermittlung des Passwortes an die Active Directory Domäne hinweisen, was noch fehlt, damit das Passwort den Regeln entspricht.

Welche Passwort-Regeln kennt das Active Directory?

Bevor wir uns mit dem Portal befassen, müssen wir erst einmal bestimmen, welche Regeln bzw. Richtlinien es gibt und wie sie konfiguriert werden können.

Die Standard-Passwortrichtline wird auf alle Nutzerkonten in der Domäne angewandt und wird in der Standard-Domain-Richtline definiert. Die Einstellungen der Group Policies können wir im Group Management Editor konfigurierten. Dazu öffnen wir die Administrative Tools.

Group Policy Management

Dort gehen wir zur Default Domain Policy und öffnen die Bearbeitungsansicht.

Default Domain Policy

In der Bearbeitungsansicht der Default Domain Policy findet man die Passwort-Einstellungen unter “Computer Configuration\Policies\Windows Settings\Security Settings\Account Policies\Password Policy”.

Password Policy

Mit dem PowerShell Kommando Get-ADDefaultDomainPasswordPolicy kann man ebenfalls die aktuellen Einstellungen schnell abrufen.

PowerShell Kommando Get-ADDefaultDomainPasswordPolicy

Zur Vollständigkeit sei erwähnt, dass ebenfalls spezifische Passwortrichtlinien für eine bestimmte Gruppe von Nutzern, z.B. Admins, definiert werden können. Dafür verwendet man die Fine Grained Password Policy. Dies ist aber ein Thema für einen separaten Artikel.

Einstellungen der Passwortrichtlinie im Active Directory

Nachdem wir herausgefunden haben, wo die Richtlinien konfiguriert werden können, schauen wir uns jetzt im Detail an, was wir für Einstellungen vornehmen können.

Einstellungen der Passwort-Richtline im Active Directory

Regel 

Bedeutung 

Enforce password history 

Wie viele Passwortänderungen sollen für ein Passwort gespeichert werden, bis es wiederverwendet werden kann. Ist der Wert 24, so kann ein Passwort erst nach 24 Änderungen wiederverwendet werden. 

Maximum password age 

Wie viele Tage kann ein Passwort maximal unverändert bleiben. 

Minimum password age 

Wie viele Tage muss ein Passwort bestehen, damit es wieder geändert werden kann. 

Minimum password length 

Wie lang muss ein neues Passwort mindestens sein. 

Password must meet complexity requirements 

Das Passwort muss den Komplexitätsanforderungen genügen. 

Store password using reversible encryption 

Diese Einstellungen sollte in den meisten Fällen nicht aktiviert werden, da es faktisch mit der Speicherung des Passwort in Plain-Text gleichzusetzen ist. 

In diesem Artikel wollen wir daher nicht weiter darauf eingehen. 

Bedeutung der Komplexitätsanforderungen

Auf die Komplexitätsregeln für ein Passwort möchte ich genauer eingehen, da sie wesentlich für die Qualität eines Passwortes sind. Die Komplexitätsregeln sollen dafür sorgen, dass ein Passwort möglichst zufällig und stark abweichend von einem normalen Text sind. Das soll es einem Angreifer erschweren, das Passwort zu erraten oder mittels Wörterbuchattacken herauszufinden.

Folgende Regeln werden über die Group Policy im Active Directory geprüft:

  • Der Nutzerkontoname (samAccountName) darf nicht enthalten sein
  • Keine Teile des Nutzervollnamens (cn, name) dürfen enthalten sein. Das ist gegeben, wenn mehr als 2 folgende Buchstaben des Namens enthalten sind.
    Z.B. Frank Anger darf kein Passwort ‚P@fraKle123!‘ haben.
  • Das Passwort muss mindestens 6 Zeichen lang sein.
  • Im Passwort müssen mindestens 3 der folgenden Zeichenarten enthalten sein:
    • Großbuchstaben A-Z
    • Kleinbuchstaben a-z
    • Ziffern 0-9
    • Sonderzeichen: ‚-!“#$%&()*,./:;?@[]^_`{|}~+<=>

Die Regeln werden bei jeder Passwortänderung geprüft.

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements

Methoden zur Prüfung der Passwort-Regeln

Nachdem wir festgestellt haben, was gute Passwort-Regeln sind, können wir uns an die Methoden für die Prüfung der Einhaltung dieser Regeln setzen.

Wie eingangs erwähnt, ist uns Windows dabei keine große Hilfe, da es keine entsprechenden APIs anbietet. Die einzige sinnvolle Methode ist die NetValidatePasswordPolicy-Funktion (https://learn.microsoft.com/en-us/windows/win32/api/lmaccess/nf-lmaccess-netvalidatepasswordpolicy).

Diese Methode dient hauptsächlich zur Prüfung, ob Ihre eigenen verwalteten Passwörter den Richtlinien der Active Directory Password Policy entsprechen. Zum Beispiel kann ein SQL Server diese Funktion für SQL Server Authentifizierung nutzen. Ein Implementierungsbeispiel ist im folgenden Link angegeben.

pinvoke.net: NetValidatePasswordPolicy (advapi32)

Wie man im zuvor angegeben Link sehen kann, ist diese Methode einigermaßen komplex mit Programmierkenntnissen umzusetzen. Am Ende liefert sie uns aber auch nur die Information, ob das Passwort den Komplexitätsregeln entspricht oder nicht. Ein aussagefähiges Feedback fehlt.

Daher bleibt uns nur die Möglichkeit, die Passwortprüfung selbst umzusetzen und dabei auf die Einhaltung jeder Regel separat zu prüfen. In diesem Artikel verwende ich PowerShell, um einige Implementierungsbeispiele darzulegen.

Passwort-Regeln prüfen mit PowerShell

In PowerShell können wir die Eingabe auf verschiedene Regeln prüfen und dabei gleichzeitig auch unsere eigenen Qualitätskriterien einbringen.

Eine gute Möglichkeit ist die Verwendung von regulären Ausdrücken mit der Matches-Methode. Damit können wir auf beliebige Textinhalte prüfen. Im folgenden wollen wir sehen, wie für jedes Komplexitätskriterium eine Prüfmethode aussehen könnte.

Prüfung der Passwortlänge

1
2
3
4
5
6
7
8
9
10
$length = $password.length
if( $length -lt 6 ) {
Write-Host “Password need at least 6 characters.”
}
 
if( $length -gt 20 ) {
 
Write-Host “The password must not contain more than 20 characters.“
 
}

Prüfung der Mindestanzahl von Großbuchstaben

1
2
3
4
5
6
7
$uppercaseCount = [regex]::Matches($password, “[A-Z]").Count
 
if( $uppercaseCount –lt 3 ) {
 
Write-Host “Password need at least 3 uppercase characters.”
 
}

Prüfung der Mindestanzahl von Kleinbuchstaben

1
2
3
4
5
6
7
$lowercaseCount = [regex]::Matches($password, “[a-z]").Count
 
if( $lowercaseCount –lt 3 ) {
 
Write-Host “Password need at least 3 lowercase characters.”
 
}

Prüfung der Mindestanzahl von Ziffern

1
2
3
4
5
6
7
$digitCount = [regex]::Matches($password, “\d").Count
 
if( $digitCount –lt 3 ) {
 
Write-Host “Password need at least 3 digits.”
 
}

Prüfung der Mindestanzahl von Sonderzeichen

1
2
3
4
5
6
7
8
$specialCharCount =
[regex]::Matches($password, “[-!`"#$%&()*,./:;?@[\]^_`{|}~+<=>]").Count
 
if( $ specialCharCount –lt 3 ) {
 
Write-Host “Password need at least 3 special characters.”
 
}

Prüfung auf verbotene Wörter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$bannedWords = @($samAccountName, $displayName, $sn, $givenName)
 
$bannedWordsSplit = @()
 
$tab = [char]9
 
foreach ($word in $bannedWords)
 
{
 
$wordSplit = $word.Split(@(' ', ',', '.', '_', ';', $tab))
 
$bannedWordsSplit += $wordSplit;
 
}
 
 
 
 
foreach ($word in $bannedWordsSplit)
 
{
 
$passwordTest = $password.ToLowerInvariant()
 
$wordTest = $word.Trim().ToLowerInvariant()
 
if($passwordTest.Contains($wordTest))
 
{
 
Write-Host “The password must not contain the word '$word'.“
 
}
 
}

Prüfung auf Teile aus dem Nutzernamen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function Contains-Parts {
 
param (
 
[string]$password,
 
[string]$bannedWord
 
)
 
 
$maxLength = 2
 
 
 
$testPassword = $password.ToLowerInvariant()
 
$testBannedWord = $bannedWord.ToLowerInvariant()
 
 
for ($i = 0; $i -le ($testBannedWord.length - $maxLength); $i++) {
$bannedWortPart = $testBannedWord.Substring($i, $maxLength)
if ($testPassword.Contains($bannedWortPart)) {
return $true
}
 
}
return $false
}
 
 
 
$bannedWords = @($cn, $displayName, $samAccountName)
foreach ($word in $bannedWords)
 
{
if(Contains-Parts -password $password -bannedWord $word)
{
 
Write-Host “The password must not contain parts of the word '$word'.“
}
 
}

Prüfen der Password History

Die Einhaltung der Passworthistorie können wir leider nicht so einfach über eine eigene Funktion prüfen. Die Passworthistorie eines Nutzers ist nicht über eine API prüfbar.

Wir können aber nach erfolgreicher Prüfung der Passwortqualität, die Historie über das PowerShell-Kommando Set-ADAccountPassword sicherstellen lassen.

Es ist wichtig, dass dafür nicht der Schalter -Reset verwendet wird, denn dieser umgeht die Password-History-Prüfung.

Set-ADAccountPassword -Identity $user -OldPassword $oldPassword -NewPassword $newPassword

Das Password-Change-Portal

Mit Hilfe der PowerShell-Funktionen haben wir jetzt alle Werkzeuge zur Hand, um ein Password-Change-Portal für die Anwender aufzubauen.

Für unseren Kunden konnten wird dies sehr einfach in die Self-Service Seite des IDM-Portals integrieren. Die PowerShell-Funktionen führen wir über unseren IDM-Portal PowerShellProvider-Service aus, womit sich PowerShell-Kommandos komfortabel in das IDM-Portal einbinden lassen.

Fazit

Wir haben in diesem Artikel gelernt, wie wichtig ein qualitativ hochwertiges Passwort ist und was die Merkmale dafür sind. Dazu haben wir uns Methoden erarbeitet, um unseren Anwendern aussagefähige Rückmeldungen zu ihren neuen Passwörtern zu geben. Mit dieser Hilfestellung können wir den Anwender in die Lage versetzen, die Anforderungen an ein sicheres Passwort einfach und effektiv umzusetzen.

Mehr über FirstWare IDM-Portal

IDM-Portal Hybrid IAM LösungDas FirstWare IDM-Portal von FirstAttribute ist eine integrierte Lösung für das Identity und Access Management (IAM), die die automatisierte Verwaltung von Nutzern und deren Berechtigungen ermöglicht, egal ob On-Prem oder in der Cloud.

Dieses Portal integriert sämtliche Facetten des Identity- und Access-Managements und ermöglicht einen zentralisierten Zugriff auf Identitäts- und Verzeichnisdienste.

Tags: Passwort RegelnPasswortänderungPasswortrichtliniePowerShell
Teilen

Search

Neueste Beiträge

  • HR-System und IAM verbinden: Praxisfall im öffentlichen Dienst
  • Onboardingprozess digitalisieren: Viele Neueinstellungen effizient managen
  • Was passiert mit nicht angenommenen Gastkonten in Microsoft Entra?
  • Gruppenmitgliedschaften prüfen und regelmäßig validieren für ISO-Compliance
  • So sparen Unternehmen Kosten in der Benutzerverwaltung

Kategorien

  • Allgemeines
  • Authorization Management
  • Compliance
  • Concepts
  • Identity Management
  • News
  • Projekte
  • Systeme


FirstAttribute

Kontakt

  • FirstAttribute AG
  • Am Büchele 18, 86928 Hofstetten, Germany
  • +49 8196 998 4330
  • https://firstattribute.com/

Themen

  • Kontakt
  • Über uns
  • Unsere Kunden
  • Partnerschaft
  • Presse
  • FirstAttribute – Weitere Lösungen
  • News

News

  • HR-System und IAM verbinden: Praxisfall im öffentlichen Dienst
  • Onboardingprozess digitalisieren: Viele Neueinstellungen effizient managen
  • Was passiert mit nicht angenommenen Gastkonten in Microsoft Entra?
  • Gruppenmitgliedschaften prüfen und regelmäßig validieren für ISO-Compliance
  • So sparen Unternehmen Kosten in der Benutzerverwaltung
  • Microsoft-Lizenzkosten für externe Mitarbeiter senken

© 2026 · FirstAttribute AG.

  • AGBs und EULA
  • Datenschutzerklärung
  • Impressum
Prev Next