Die Anwendung raum]für[raum arbeitet mit einer BaseURL. Dies bedeutet für die Proxykonfiguration das interne- und externe-Zugriffe über denselben FQDN erfolgen müssen (im nachfolgenden Beispiel raumbuchung.domain.tld).
Die Site des Anwendungsservers (im Beispiel IIS mit SSO via Kerberos (NTLM wird nicht unterstützt!)) muss via FQDN (im nachfolgenden Beispiel raumbuchung.domain.int) und Port erreichbar sein.


Allgemeine Voraussetzungen:

  • Das Computerkonto des Webservers enthält im AD unter Attributen den FQDN der Anwendung als HTTP-ServicePrincipal 1
  • Der Authentifizierungsanbieter des IIS-Webservers (Verzeichnis SSO) ist auf "Negotiate:Kerberos" eingerichtet 2
  • Firewall Protokoll-Regel
    Port 443 Kommunikation zwischen Proxy-Server (DMZ) und Anwendungsserver (internes Server-Netzwerk) muss erlaubt sein
  • Proxy-Server Zertifikat
    öffentliches, vertrauenswürdiges SSL-Zertifikat und Intermediate-Zertifikat sowie Schlüssel (.cert und .key) für FQDN (raumbuchung.domain.tld) muss auf dem Proxy-Server vorhanden sein.


Die Voraussetzungen für den öffentlichen (Internet) Zugriff sind:

  • DNS A-Record
    Routing des FQDN (raumbuchung.domain.tld) zu einer freien, öffentlich erreichbaren IP des Unternehmens
  • Firewall SNAT-Regel 
    Anfragen auf der IP und Port 443 werden in der Firewall an den Proxy-Server innerhalb der DMZ weitergeleitet

Die Voraussetzungen für den internen (Intranet/VPN) Zugriff sind:

  • DNS A-Record
    Routing des FQDN (raumbuchung.domain.tld) zur internen IP des Proxy-Servers innerhalb der DMZ


Die Voraussetzungen für den raum]für[raum Anwendungsserver sind:

  • Microsoft IIS
    Die Bindung der raum]für[raum IIS Site kann beim Apache Reverse Proxy (im Gegensatz zum nginX Reverse Proxy)
    • mit HTTP Host Header Eintrag und
    • mit SNI konfiguriert werden


Apache-Konfiguration

<VirtualHost *:443>
          ServerName raumbuchung.domain.tld
          ServerAdmin it@domain.tld

          
          # Server-Logfiles
          # -----------------------------------------------------------------
          # Access-Log:
          CustomLog /var/log/httpd/access_raumbuchung.domain.tld.log combined
          # Error-Log
          ErrorLog /var/log/httpd/error_raumbuchung.domain.tld.log
          # Produktiv-Betrieb
          #LogLevel error

          # Debugging-Betrieb
          LogLevel warn

          SSLEngine on
          SSLProtocol -all +TLSv1.2
          SSLHonorCipherOrder on
          SSLCipherSuite PROFILE=SYSTEM
          SSLCertificateFile /etc/pki/tls/certs/raumbuchung.domain.tld.crt
          SSLCertificateChainFile /etc/pki/tls/certs/raumbuchung.domain.tld.intermediate.crt
          SSLCertificateKeyFile /etc/pki/tls/private/raumbuchung.domain.tld.key

          <IfModule mod_proxy.c>
                  ProxyPass / https://raumbuchung.domain.int/
                  ProxyPassReverse / https://raumbuchung.domain.int/
                  RequestHeader set Front-End-Https "On"
                  ProxyRequests off
                  # IIS spezifisch bezgl. VirtualHosting (SNI)
                  ProxyPreserveHost off

                  SSLProxyEngine on
                  SSLProxyVerify none
                  SSLProxyCheckPeerCN off
                  SSLProxyCheckPeerName off
                  SSLProxyCheckPeerExpire off
                  SSLProxyCipherSuite PROFILE=SYSTEM
          </IfModule>
</VirtualHost>


korrektes Verhalten:

https://raumbuchung.domain.tld



Funktionalität

Bemerkung

SSO via Browser

Intranet (Firmennetz/VPN)

(Haken)


SSO via Browser

Internet

(Fehler)

Da in diesem Fall keine Verbindung des Clients zum DomainController besteht, kann kein Kerberos-Ticket erstellt/zugewiesen werden.3

Webformular via Browser

Intranet (Firmennetz/VPN)

(Haken)


Webformular via Browser

Internet

(Haken)


APP (iOS/Android)

Intranet (Firmennetz/VPN)

(Haken)


APP (iOS/Android)

Internet

(Haken)


Anmerkungen/Detailbeschreibungen

Anmerkung

Beschreibung

Screenshot

Das Computerkonto des Webservers enthält im AD unter Attributen den FQDN der Anwendung als HTTP-ServicePrincipal

2

Der Authentifizierungsanbieter des IIS-Webservers (Verzeichnis SSO) ist auf "Negotiate:Kerberos" eingerichtet

ggf. muss hierfür der "UseKernelMode" auf "false" gestellt werden.

3

Kerberos Authentifizierungsweg

Kerberos Authentication Flow

Anmerkung
Konfigurationsänderungen an den Proxy-Einstellungen erfordern einen Neustart des IIS-Webservers. Restart von Application-Pool und/oder Site führen u.U. zu Fehlverhalten (Kerberos-Ticket-Validierung)
Tickets am Client können mittels "klist" angesehen und via "klist purge" gelöscht werden.