WebDAV Authentifizierung

Für den Zugriff aus dem Portal auf eine Datei auf dem Intrexx Portal Server ist eine Authentifizierung des Portalbenutzers erforderlich.

Dabei stehen die folgenden Authentifizierungstypen zur Auswahl:

  • Intrexx Authentifizierung

  • Authentifizierung gegen Windows-Domäne mit Benutzername und Passwort

  • Authentifizierung mit SSO über Windows Integrierte Authentifizierung (IIS)

  • LDAP-Authentifizierung

  • Andere

Schritt-für-Schritt

Um die Authentifizierung für WebDAV zu konfigurieren, gehen Sie wie folgt vor:

  1. Starten Sie das Modul "Benutzer".

  2. Klicken Sie auf den Menüpunkt "Benutzer".

  3. Wählen Sie den Eintrag "Konfiguration..." aus.

    Das Dialogfenster "Benutzermanager Konfiguration" wird angezeigt.

  4. Klicken Sie rechts neben "WebDAV" auf das -Icon.

    Das Dialogfenster "Binding: WebDAV" wird angezeigt.

    Intrexx-Authentifizierung

    Unabhängig von der Mitgliedschaft in lokalen Domänen meldet sich jeder Benutzer mit dem Benutzernamen und dem Passwort aus dem Modul "Benutzer" am Portal an. Wählen Sie unteren Bereich des Dialogs einen Benutzer aus, der die Rolle des anonymen Benutzers übernimmt. Der anonyme Benutzer ist der Benutzer, der ohne Login auf das Portal zugreift. Dieses Konto wird vor der Anmeldung für alle Benutzer verwendet. Die Authentifizierungsart kann zu einem späteren Zeitpunkt von der Intrexx-Authentifizierung in Authentifizierung durch Webserver geändert werden. Die Änderung sollte aber erst nach dem Import der Benutzer erfolgen.

    Authentifizierung gegen Windows-Domäne mit Benutzername und Passwort

    Bei diesem Authentifizierungstyp werden der Benutzername und das Passwort des Benutzers aus der Windows Active Directory Domäne verwendet und geprüft.

    Authentifizierung mit SSO über Windows Integrierte Authentifizierung (IIS)

    Dieser Authentifizierungstyp ermöglicht SSO (Single Sign-on) über die Integrierte Windows Authentifizierung und dem IIS (vgl. Windows - IIS (Internet Information Service) einrichten).

    Damit dieser Authentifizierungstyp funktioniert, müssen Sie Ihr Portal auf Windows Auth einstellen.

    Zudem müssen im Zusammenhang mit dem IIS einige Anpassungen vornehmen. Diese werden im Folgenden beschrieben.

    Schritt-für-Schritt

    1. Legen Sie ein neues Verzeichnis für die IIS-Website an (z.B. C:\InetPub\ixsite), die Sie im Zusammenhang mit dem Intrexx-Deployment hinzugefügt haben (vgl. Website im IIS hinzufügen).

    2. Navigieren Sie in das Verzeichnis htmlrool (org/<portalname>/external/htmlroot).

    3. Kopieren Sie das Verzeichnis bin und die Datei web.config in die Zwischenablage.

    4. Fügen Sie das Verzeichnis bin und die Datei web.config in das neu angelegten Verzeichnis für die IIS-Website (z.B. C:\InetPub\ixsite) ein.

    5. Nehmen Sie in der Datei web.config. die im Folgenden beschriebenen Anpassungen vor.

    6. Fügen Sie der Datei web.config folgenden Code-Abschnitt hinzu:

      <modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="false"> 
      <remove name="WebDAVModule" /> 
                  <add name="IxProxyHeadersHttpModule" preCondition="managedHandler" type="UnitedPlanet.Intrexx.Web.IxProxyHeadersHttpModule" /> 
                  <add name="IntrexxWindowsAuthHttpModule" preCondition="managedHandler" type="UnitedPlanet.Intrexx.Web.IxWindowsAuthHttpModule" /> 
              </modules> 
      <handlers> 
      <remove name="WebDAV"/> 
      <remove name="OPTIONSVerbHandler"/> 
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
      </handlers> 
    7. Entfernen Sie den <conditions>-Block unter ReverseProxyInboudRule.

      Die Datei stellt sich dann so dar:

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration>
          <!-- Configuration section-handler declaration area. -->
          <configSections>
              <sectionGroup name="intrexxConfigurationGroup">
                  <section name="intrexxConfiguration" allowDefinition="Everywhere" allowLocation="true" type="UnitedPlanet.Intrexx.Web.IntrexxConfigurationSection" />
              </sectionGroup>
          </configSections>
          <!-- Intrexx configuration settings. -->
          <intrexxConfigurationGroup>
              <intrexxConfiguration enableKerberosDelegation="false">
                  <kerberos excludeContextPaths="css,images,include,script,thirdparty,tmp,userfiles,download,is" servicePrincipalNames="" />
                  <!-- Define custom HTTP headers to be sent to the backend server. -->
                  <customHttpHeaders>
                      <!--
      				<add name="X-MY-HEADER-NAME" value="MyHeaderValue"/>
      				-->
                  </customHttpHeaders>
              </intrexxConfiguration>
          </intrexxConfigurationGroup>
      	
          <system.web>
              <compilation debug="true" targetFramework="4.5.1" />
              <httpRuntime maxQueryStringLength="32768" maxUrlLength="65536" targetFramework="4.5.1" />
              <authentication mode="Windows" />
              <authorization>
                  <deny users="?" />
              </authorization>
          </system.web>
      	
          <system.webServer>
              <modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="false">
      			<remove name="WebDAVModule" />
                  <add name="IxProxyHeadersHttpModule" preCondition="managedHandler" type="UnitedPlanet.Intrexx.Web.IxProxyHeadersHttpModule" />
                  <add name="IntrexxWindowsAuthHttpModule" preCondition="managedHandler" type="UnitedPlanet.Intrexx.Web.IxWindowsAuthHttpModule" />
              </modules>
      
      		<handlers>
      			<remove name="WebDAV"/>
      			<remove name="OPTIONSVerbHandler"/>
      			<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      			<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      			<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      			<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      			<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      			<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
      		</handlers>
      	
              <defaultDocument>
                  <files>
                      <clear />
                      <add value="default.ixsp" />
                  </files>
              </defaultDocument>
      		
              <rewrite>
                  <rules>
                      <rule name="RequestBlockingRule" stopProcessing="true">
                          <match url=".*" />
                          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                              <add input="{URL}" pattern="/WEB-INF/*" />
                          </conditions>
                          <action statusCode="404" statusDescription="The resource you are looking for is unavailable." statusReason="File or directory not found." type="CustomResponse" />
                      </rule>
                      <rule name="ReverseProxyInboundRule" stopProcessing="true">
                          <match url="(.*)" />
                          <action type="Rewrite" url="http://localhost:1337/{R:1}" />
                      </rule>
                      <rule name="WebSockets" stopProcessing="true">
                          <match url="wss://(.*)" />
                          <action type="Rewrite" url="ws://localhost:1337/{R:1}" />
                      </rule>
                  </rules>
              </rewrite>
              <staticContent>
                  <clientCache cacheControlMaxAge="3650.00:00:00" cacheControlMode="UseMaxAge" />
                  <!-- remove first in case they are defined in IIS already, which would cause a runtime error -->
                  <remove fileExtension=".woff" />
                  <mimeMap fileExtension=".woff" mimeType="font/woff" />
                  <remove fileExtension=".woff2" />
                  <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
              </staticContent>
              <httpProtocol>
                  <customHeaders>
                      <add name="X-Frame-Options" value="SAMEORIGIN" />
                  </customHeaders>
              </httpProtocol>
              <httpErrors errorMode="Custom" existingResponse="PassThrough" />
              <!-- Enable this to set the maximum allowed file size for file uploads. Default is 2 GB. -->
              <security>
                  <requestFiltering>
                      <requestLimits maxAllowedContentLength="2147483646" maxQueryString="32768" maxUrl="65536" />
                  </requestFiltering>
              </security>
          </system.webServer>
          <!-- Enable this to deactivate Windows Authentication for Application API access. -->
          <!--
          <location path="api/app">
            <system.web>
              <authorization>
                <allow users="*" />
              </authorization>
            </system.web>
            <system.webServer>
              <security>
                <authentication>
                  <windowsAuthentication enabled="false" />
                  <anonymousAuthentication enabled="true" />
                </authentication>
              </security>
            </system.webServer>
        </location>
        -->
      </configuration>
      
    8. Starten Sie den IIS.

    9. Wählen Sie unter "Sites" die entsprechende Site aus.

    10. Führen Sie einen Rechtsklick aus.

    11. Wählen Sie "Webseite verwalten > Erweiterte Einstellungen" aus.

      Das Dialogfenster "Erweiterte Einstellungen" wird angezeigt.

    12. Wählen Sie den Eintrag "Physischer Pfad" aus.

    13. Klicken Sie auf die 3-Punkte-Schaltfläche.

    14. Wählen Sie das zuvor angelegte Verzeichnis für die IIS-Website aus (z.B. C:\InetPub\ixsite).

    15. Klicken Sie auf "OK".

    16. Starten Sie den IIS neu.

    LDAP-Authentifizierung

    Servername (FQDN) / Port

    Tragen Sie hier den Servernamen (FQDN) und den Port für die Authentifizierung ein.

    Der FQDN (Fully Qualified Domain Name) wird aus dem Hostnamen und der Domain zusammengesetzt und bezeichnet damit die vollständige und eindeutige Adresse einer Internetpräsenz. Er wird für die Lokalisierung von spezifischen Hosts im Internet verwendet, um sie per Namensauflösung aufzurufen.

    Verschlüsselung

    Hier haben Sie die Auswahl zwischen LDAP und LDAPS.

    Bei der Verschlüsselung mit LDAPS muss das Zertifikat in den Portaleigenschaften aufgenommen werden. Ein entsprechender Hinweis, der auch die Vorgehensweise erläutert, wird bei der Auswahl von LDAPS eingeblendet.

    Authentifizierung

    Wählen Sie hier die Authentifizierungsart Ihres LDAP-Servers aus:

    • keine (none)

    • einfach (simple)

    • sicher (strong)

    Benutzer

    Beim LDAP-Bind-Login stehen drei Variablen zur Verfügung, die zur Laufzeit in folgender Reihenfolge expandiert werden:

    $[LOGIN_NAME] - Anmelde-Name des Benutzers
    $[LOGIN_DOMAIN] - Login-Domäne des Benutzers
    $[DN] - Distinguished Name des Benutzers (meist per Replikation befüllt)

    Weitere Informationen zur LDAP-Authentifizierung finden Sie hier.

    Beenden des Dialogs

    Beim Beenden des Dialogs wird ein Hinweis angezeigt, wenn der gewählte Port nicht dem üblichen Standard entspricht. Wenn Sie den Port im Anschluss gleich ändern möchten, schließen Sie das Hinweisfenster mit Klick auf das Schließen-Symbol oben rechts. Wenn Sie den Hinweis mit Klick auf "OK" beenden, wird damit auch der Dialog geschlossen, falls nicht noch weitere Hinweise angezeigt werden. Der Port kann dann durch ein erneutes Öffnen des Dialogs geändert werden.

    Generische Authentifizierung

    Dieser Authentifizierungstyp steht für WebDAV nicht zur Verfügung.

    Andere

    Andere Authentifizierungsmodule können nach Ihren Anforderungen entwickelt werden. Als Beispiele könnten hier die Authentifizierung über X509-Zertifikate, die Authentifizierung an Systemen von Drittanbietern etc. angeführt werden. Bei Fragen wenden Sie sich bitte an das Consulting der INTREXX GmbH.

    Authentifizierungstyp für alle Bindings übernehmen

    Diese Option steht für WebDAV nicht zur Verfügung.

  5. Wählen Sie den gewünschten Authentifizierungstyp aus.

  6. Klicken Sie auf "OK".

    Sie gelangen zurück in das Dialogfenster "Benutzermanager Konfiguration".

  7. Klicken Sie auf "OK".