Voraussetzungen
Für die Windows-Authentifizierung benötigen Sie eine Domänenumgebung.
Vorgehensweise
Hinweis: Die nachfolgenden Schritte werden anhand der PostgreSQL-Version 13 beschrieben, berücksichtigen Sie dies u. a. bei Pfadangaben, wenn Sie eine andere PostgreSQL-Version einsetzen.
-
Es muss ein Benutzer in der Domäne vorhanden oder neu angelegt werden, über den sich später der PostgreSQL-Dienst anmelden kann.
-
Der Besitzer des Ordners
C:\Program Files\PostgreSQL\13\data
sowie aller Unterelemente, muss auf den Benutzer aus Schritt 1 geändert werden und anschließend volle Zugriffsrechte erhalten. -
Beenden Sie zunächst den PostgreSQL-Dienst
postgresql-x64-13 - PostgreSQL Server 13
. Ändern Sie nun die Anmeldedaten perRechtsklick > Eigenschaften
auf den Dienst im ReiterAnmelden
auf den neuen Benutzer. Starten Sie den Dienst anschließend wieder. -
Anschließend müssen Sie dem ActiveDirectory “mitteilen”, dass die Datenbank von dem neu angelegten Benutzer verwaltet wird, indem Sie dem Benutzer einen Dienstprinzipalnamen (
SPN - Service Principal Name
) hinzufügen. Führen Sie dazu in der Windows-Eingabeaufforderung folgenden Befehl aus:setspn -S POSTGRES/[fully.qualified.domain.name/Absolute.Domänenadresse] DOMAIN\[service_account_name/DomänenDienstBenutzer]
Alternativ kann dieser Schritt auch direkt in der Microsoft Management Konsolen-Erweiterung
Benutzer und Computer
oder anderen Tools durchgeführt werden, die das ActiveDirectory bzw. die EigenschaftservicePrincipalName
des Benutzers ändern können. -
Nun müssen Sie im PostgreSQL-Administrationstool
pgAdmin
eine Login-Rolle für denjenigen Domänenbenutzer anlegen, der sich später im combit Report Server per Windows-Authentifizierung einloggen können soll. Wählen Sie hierzu im ObjektbrowserRechtsklick > Anmeldungs-/Gruppenrollen > Erstellen > Anmeldungs-/Gruppenrolle...
.Beachten Sie bitte, dass der Login-Name exakt dem Name des Domänenbenutzers entsprechen muss (ein Workaround wird im Kapitel Zusätzliche Information: Benutzernamenzuordnung beschrieben) und dass die Login-Rolle volle Rollenprivilegien benötigt, damit alle Funktionen des combit Report Server korrekt ausgeführt werden können.
-
In der Datei
C:\Program Files\PostgreSQL\13\data\pg_hba.conf
muss nun noch die Anmeldemethode für den in Schritt 5 genannten Benutzer auf den Wertsspi
geändert bzw. neu eingetragen werden.TYPE DATABASE USER ADDRESS METHOD host all Domänenbenutzer/Login-Rolle 127.0.0.1/32 sspi Wenn Sie die Windows-Authentifizierung für alle Benutzer nutzen möchten, kann unter
USER
auch
der Wertall
eingetragen werden. -
Nun können Sie die Windows-Authentifizierung als Anmeldeart im combit Report Server auswählen.
Für weiterführende Informationen zu auftretenden Verbindungsproblemen finden Sie Protokolldateien im Verzeichnis C:\Program Files\PostgreSQL\13\data\log
.
Zusätzliche Information: Benutzernamenzuordnung
Unter Umständen kann es gewünscht sein, dass Domänenbenutzer und PostgreSQL-Login-Name nicht übereinstimmen. Da PostgreSQL bei der Anmeldung per Windows-Authentifizierung diese beiden Benutzer abgleicht, bevor Zugriff auf die Datenbank gewährt wird, muss für diesen Fall eine selbst konfigurierte Zuordnung zwischen Domänenbenutzer und PostgreSQL-Login-Name erstellt werden.
Eine solche Zuordnung kann folgendermaßen erstellt werden:
-
In der Datei
C:\Program Files\PostgreSQL\13\data\pg_hba.conf
muss hinter der Authentifizierungsmethode (im Falle der Windows-Authentifizierung der Wertsspi
) ein Zuordnungsname im Formatmap=[Zuordnungsname]
angegeben werden. Ein Eintrag in dieser Datei könnte dann folgendermaßen aussehen:TYPE DATABASE USER ADDRESS METHOD host all Domänenbenutzer/Login-Rolle 127.0.0.1/32 sspi map=[Zuordnungsname] -
Anschließend muss in der Datei
C:\Program Files\PostgreSQL\13\data\pg_ident.conf
für den angegebenen Zuordnungsnamen die eigentliche Zuordnung angegeben werden.MAPNAME SYSTEM-USERNAME PG-USERNAME [Zuordnungsname] Domänen-/Systembenutzer PostgreSQL-Login-Name
Es können hierbei auch mehrere Domänen-/Systembenutzer für einen einzelnen Zuordnungsnamen in mehreren Zeilen angegeben werden. Außerdem gibt es die Möglichkeit als erstes Zeichen der der Spalte SYSTEM-USERNAME
Slash (/
) anzugeben, was zur Folge hat, dass der Rest des Feldes als regulärer Ausdruck interpretiert wird.
Weitere Informationen zur Benutzernamenzuordnung finden Sie hier: PostgreSQL: Documentation: User Name Maps