Übersicht über die integrierte Windows-Authentifizierung
Die integrierte Windows-Authentifizierung (IWA) ist ein Mechanismus, der IIS automatisch Benutzerauthentifizierungsinformationen bereitstellt, wenn IIS und der Benutzer bei derselben Domäne angemeldet sind. Wenn Sie eine Site mit ASP.NET C# erstellen, können Sie eine Benutzerauthentifizierungsbestimmung und authentifizierte Benutzerinformationen erhalten.
Dies ermöglicht Benutzern den Zugriff auf von IIS gehostete (oder verknüpfte) Webanwendungen ohne zusätzliche Anmeldevorgänge und ermöglicht die SSO-Integration mit anderen Anwendungsservern.
*Wenn Sie nicht derselben Domäne angehören oder ein nicht authentifizierter Benutzer auf die IIS-Seite zugreift, wird ein Anmeldedialog angezeigt. Wenn Sie sich nicht korrekt authentifizieren, wird ein HTTP-Fehler 401.1 – Nicht autorisiert angezeigt.

SSO-Ablauf (Single Sign On).
Der Ultimate-Plan von Chat&Messenger On-Premise ermöglicht SSO mit integrierter Windows-Authentifizierung. Der SSO-Ablauf ist wie folgt.
- Der Client greift zunächst auf die integrierte Windows-authentifizierte Seite /cam-iissso zu
- Die Seite /cam-iissso verwendet ASP.NET, um zu bestimmen, ob sie authentifiziert ist und eine Verbindung zu CAMServer herstellt.
- CAMServer führt eine LDAP-Suche durch, um zu bestätigen, dass es sich um einen regulären AD-Benutzer handelt, generiert ein ssoToken (einen eindeutigen Zufallswert von 30 Bytes oder mehr) und eine URL für den Zugriff auf CAMServer und fordert eine Umleitung an.
- Greifen Sie auf CAMServer zu und authentifizieren Sie sich mit ssoToken. Bei erfolgreicher Authentifizierung wird eine Sitzungs-ID für den API-Zugriff zugewiesen.

Voraussetzungen für das Erreichen von SSO
Windows Server einer Domäne hinzufügen
Bitte fügen Sie den Windows-Server, auf dem CAMServer/IIS läuft, der Active Directory-Domäne hinzu.
Um die Domäne zu überprüfen, der ein vorhandener Windows-Server beigetreten ist, gehen Sie zu „Server-Manager“ → klicken Sie im linken Menü auf „Lokaler Server“ → klicken Sie auf „Computername“ und sehen Sie in der Spalte „Domäne“ nach.
Außerdem sollte sich IIS auf demselben Server wie CAMServer befinden und auf Port 80 ausgeführt werden. Wenn Sie einen LoadBalancer vor den CAMServer setzen, wird der CAMServer auf Port 8080 ausgeführt, sodass IIS auch Port 443 verwenden kann.
IIS installieren
Installieren Sie IIS von der Serverrolle.
Überprüfen Sie bei der Installation von IIS Folgendes in den Auswahloptionen für Rollendienste.
- Windows-Authentifizierung
- ISAPI-Filter
- Separate Installation von ISAPI-Erweiterungen

ISAPI-Filter: Unterstützt das Laden von Erweiterungsmodulen in IIS. Erforderlich zum Laden von AspNetCoreModuleV2.
ISAPI-Erweiterungen: ISAPI-Erweiterungen zu IIS hinzufügen. Erforderlich für den AspNetCoreModuleV2-Betrieb. IIS-Manager starten (iisreset)
Installieren Sie das ASP.NET Core-Hosting-Bundle
ASP.NET Core-Hosting-Bundle Bitte installieren.
Starten Sie IIS nach der Installation neu und stellen Sie sicher, dass AspNetCoreModuleV2 in der Handlerzuordnung vorhanden ist.



Anwendung hinzufügen (cam-iissso)
Fügen Sie die Anwendung cam-iissso zur Standardwebsite hinzu.
- Alias: cam-iissso
- Physischer Weg: \sys\cam-iissso-net8.0
Gewähren Sie außerdem der Gruppe IIS_IUSRS Anzeigezugriffsrechte (Lesen und Ausführen, Ordnerinhalte auflisten, Lesen) für den Ordner cam-iissso-net8.0.


Aktivieren Sie die Windows-Authentifizierung
Klicken Sie mit der rechten Maustaste auf „Windows-Authentifizierung“ und wählen Sie „Aktivieren“.

Internetoptionen einstellen
Fügen Sie die von IIS bereitgestellte Site zur Intranetzone hinzu
Wählen Sie „Internetoptionen“, klicken Sie auf die Registerkarte „Sicherheit“ und wählen Sie „Lokales Intranet“. Klicken Sie auf die Schaltfläche „Sites“, wählen Sie „Erweiterte Einstellungen“ und fügen Sie die Site-URL hinzu
Überprüfen Sie die automatische Anmeldung
Klicken Sie auf „Stufe anpassen“ und stellen Sie unter „Benutzerauthentifizierung“ → „Anmeldung“ sicher, dass „Automatisch in der Intranetzone anmelden“ ausgewählt ist.


LDAP-Einstellungen
Wenn Sie Single Sign-On mit IIS durchführen,LDAP-Einstellungen(LDAPUrl, LDAPBaseDN, AD-Benutzer, der die Proxy-Authentifizierung durchführt) ist erforderlich.

Zugriff über FQDN (Fully Qualified Domain Name) und Registrierung des SPN
IISのWindows統合認証ページへホスト名(NetBIOS名)でアクセスする場合は不要ですが、FQDN(完全修飾ドメイン名 例 sso.example.com)でアクセスする場合はSPN 登録が必要です。
SPN (Service Principal Name) ist ein Name, der einen bestimmten Dienst im Active Directory bei der Kerberos-Authentifizierung eindeutig identifiziert. Wenn Sie über einen FQDN auf den Dienst zugreifen, ermöglicht die Registrierung eines SPN dem Client, erfolgreich ein Kerberos-Ticket für den Dienst anzufordern, auf den Sie zugreifen.
Zum Beispiel https://sso.example.com
Beim Zugriff fordert der Client (Browser) ein Ticket von Active Directory an und sagt: „Ich möchte eine Verbindung zum Dienst namens HTTP/sso.example.com herstellen.“ Active Directory ermittelt, mit welchem Konto der SPN verknüpft ist, und stellt das entsprechende Serviceticket aus. Wenn der SPN nicht richtig registriert ist, schlägt die Kerberos-Authentifizierung fehl und das Authentifizierungsdialogfeld wird angezeigt.
Die SPN-Registrierung erfolgt auf dem Computerkonto, auf dem IIS gehostet wird. Zum Beispiel,Anzeige
Für IIS, das mit dem Hostnamen ausgeführt wird, registrieren Sie den SPN wie folgt:
setspn -S HTTP/sso.example.com ad$
Nach der Registrierung können Sie die Überprüfung mit dem folgenden Befehl durchführen:
setspn -L ad$
Dieses Ergebnis HTTP/sso.example.com
Wenn es angezeigt wird, war die SPN-Registrierung erfolgreich.
Nicht verfügbar in der HTTP-Proxy-Verbindungsumgebung
Bitte beachten Sie, dass SSO nicht in einer HTTP-Proxy-Verbindungsumgebung verwendet werden kann.
Konfiguration in einer LoadBalancer + SSL-Umgebung
Wenn Sie die integrierte Windows-Authentifizierung von IIS in einer LoadBalancer + SSL-Umgebung verwenden, lesen Sie bitte den folgenden Blog-Artikel.
