Zum Inhalt springen

Benutzer und Anmeldung

Jede Person, die mit dem invoiceR arbeitet, braucht einen Benutzer. Was ein Benutzer sehen und tun darf, steuerst du über Berechtigungen, am besten über Rollen (siehe Berechtigungen).

  • Von Hand: Unter Administration > Benutzer legst du Benutzer direkt im invoiceR an und pflegst sie.
  • Import aus Active Directory (LDAP): Ein wiederkehrender Job (Benutzer von ActiveDirectory importieren) liest die Benutzer einer AD-Gruppe ein.
  • Import aus Microsoft Entra ID: Ein wiederkehrender Job (Benutzer von Azure AD importieren) liest die Mitglieder einer Entra-Gruppe über Microsoft Graph ein. Neue Benutzer werden angelegt, geänderte aktualisiert und in Entra deaktivierte Benutzer im invoiceR gelöscht.
  1. Lege eine App-Registrierung an (oder verwende eine bestehende für den invoiceR) und notiere Tenant ID, Application (client) ID und Client Secret.
  2. Füge unter API permissions für Microsoft Graph die Anwendungsberechtigungen User.Read.All, Group.Read.All und GroupMember.Read.All hinzu und erteile Grant admin consent.
  3. Lege in Entra ID eine Gruppe mit allen Personen an, die den invoiceR nutzen, und notiere deren Object ID.

Die Werte trägt enio in die Konfiguration des Import-Jobs ein:

SchlüsselInhalt
TenantIdTenant ID des Microsoft-Mandanten.
ClientIdApplication ID der App-Registrierung.
ClientSecretClient Secret der App-Registrierung.
GroupObjectIdObject ID der Gruppe, deren Mitglieder importiert werden.
DefaultRoleIdsOptional. Rollen, die neue Benutzer automatisch erhalten.
UseOnPremisesSamAccountNameAsUsernameOptional. true übernimmt den Windows-Anmeldenamen als Benutzername, nötig zusammen mit der Windows-Anmeldung.

Standard. Benutzer melden sich mit Benutzername und Passwort an, siehe Anmelden und abmelden.

Benutzer melden sich mit ihrem Microsoft-Konto an. Dafür braucht die App-Registrierung zusätzlich:

  1. Unter Authentication > Add a platform > Web die Umleitungsadresse (Redirect URI), die du von enio erhältst.
  2. Die Option ID tokens.
  3. Unter Token configuration > Add optional claim > ID den Claim email; bestätige dabei, dass die Microsoft-Graph-Berechtigung email aktiviert wird.

Die Anmeldung wird im Backend im Abschnitt Authentication:OpenId der appsettings eingerichtet.

Benutzer im Firmennetz werden automatisch mit ihrem Windows-Konto angemeldet. Das braucht Einstellungen im IIS, in der Domäne und in den Browsern.

1. IIS einrichten

  1. Aktiviere im Server Manager das IIS-Feature Windows Authentication.
  2. Aktiviere bei der Backend-Website unter Authentication sowohl Anonymous Authentication als auch Windows Authentication.
  3. Lass den Application Pool des Backends unter einem Domänen-Dienstkonto laufen, zum Beispiel CONTOSO\sa-invoicer.
  4. Stelle im Configuration Editor (system.webServer/security/authentication/windowsAuthentication) useAppPoolCredentials auf True.

Die web.config des Backends enthält danach:

<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" useAppPoolCredentials="true" />
</authentication>
</security>
</system.webServer>

Meldet der IIS „This configuration section cannot be used at this path“, gib den Abschnitt zuerst auf Server-Ebene im Configuration Editor frei (Unlock Section).

2. SPN-Einträge in der Domäne

Ist das Backend unter einem anderen Namen als dem Servernamen erreichbar, muss ein Domänen-Administrator die Adresse dem Dienstkonto zuordnen. Den HTTP-Eintrag braucht es auch dann, wenn nur HTTPS verwendet wird:

setspn -A HTTP/invoicer-backend CONTOSO\sa-invoicer
setspn -A HTTP/invoicer-backend.contoso.ch CONTOSO\sa-invoicer

Prüfen kann auch ein Benutzer ohne Domänen-Rechte: setspn -L CONTOSO\sa-invoicer.

3. Browser

Die Browser senden die Windows-Anmeldung nur an Adressen der Zone „Lokales Intranet“. Trage die Adressen von Frontend und Backend per Gruppenrichtlinie in diese Zone ein und erlaube dort die automatische Anmeldung. Sonst erscheint ein Anmeldefenster.

4. Im invoiceR einschalten

Unter Administration > Einstellungen im Register Andere Einstellungen aktivierst du ‘Windows Authentication’ (Single-Sign-On) aktivieren. Auf der Anmeldeseite erscheint dann Mit Windows-Benutzer einloggen.

Fehler suchen

  • https://<backend-adresse>/api/TokenAuth/WindowsAuthTest gibt bei funktionierender Einrichtung den erkannten Windows-Benutzer zurück.
  • Kommt das Anmeldefenster immer wieder, stimmt etwas mit IIS oder Kerberos (SPN) nicht. Klappt es nach einmaliger Eingabe, erkennt der Browser die Adresse nicht als Intranet.
  • Antworten Aufrufe nach dem Einschalten mit Status 302, prüfe, ob die Backend-Adresse in der Konfiguration doppelte Schrägstriche enthält.

Ist die Windows-Anmeldung eingeschaltet oder die Anmeldung über OpenID Connect aktiv, blendet der invoiceR Abmelden im Benutzermenü aus. Ein Abmelden würde nichts nützen, weil der Benutzer sofort wieder automatisch angemeldet wird.

Benutzer mit der Berechtigung Erlaube Logout trotz ‘Windows Authentication’ (General.AllowLogoutDespiteWindowsAuthentication) sehen Abmelden trotzdem. Sie können sich abmelden und mit einem anderen Benutzer anmelden, zum Beispiel für Tests oder Support. Die Berechtigung vergibst du unter Administration > Rollen.