Konfigurieren der Basisauthentifizierung im Azure App Service

Konfigurieren der Basisauthentifizierung im Azure App Service

Aus verschiedenen Gründen verwende ich es, Azure's App Serviceum statische Dateien bereitzustellen. Ich möchte diesen Zugriff absichern, Http Basic Authenticationwas für meine Zwecke ausreicht. Wie kann ich das tun? Ich habe versucht, etwas hochzuladen, .htpasswdaber es scheint nicht zu funktionieren.

Ich verwende kein ASP.NET, daher gibt es keine Möglichkeit, es im Code zu tun. Im Azure-Portal sehe ich Optionen wie Google-, Facebook- und Twitter-Login unter App Service -> Authentifizierung/Autorisierung, aber das ist für mich ein enormer Aufwand.

Antwort1

Dies ist derzeit nicht möglich. Die Azure-Webanwendung unterstützt dies nicht.

Sie können dies überprüfenRückmeldung.

Antwort2

Es ist möglich, die Standardauthentifizierung für Azure Web Apps mit einigen Einstellungen imapplicationHost.xdt. Sie können beim Start Ihrer Web-App einige Module in diese Datei laden.

Schritte:

  • Navigieren Sie im Azure-Portal zu Ihrer WebApp
  • Suchen Sie im linken Menü nach der ÜberschriftEntwicklungswerkzeugeeine AuswahlErweiterte Tools(Kudu)
  • Verwenden Sie dieDebug-Konsole > CMDTool, um zum WebApp-Verzeichnis zu navigieren:\Startseite\Site
  • Erstellen Sie eine Datei mit dem Namen:applicationHost.xdt
  • Fügen Sie Folgendes ein:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location path="%XDT_SITENAME%" xdt:Locator="Match(path)">
    <system.webServer>
      <rewrite xdt:Transform="InsertIfMissing">
        <allowedServerVariables xdt:Transform="InsertIfMissing">
          <add name="RESPONSE_WWW_AUTHENTICATE" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
        </allowedServerVariables>
        <rules xdt:Transform="InsertIfMissing">
          <rule name="BasicAuthentication" stopProcessing="true" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)">
            <match url=".*" />
            <conditions>
              <add input="{HTTP_AUTHORIZATION}" pattern="^Basic dXNlcjpwYXNzd29yZA==" ignoreCase="false" negate="true" />
            </conditions>
            <action type="CustomResponse" statusCode="401" statusReason="Unauthorized" statusDescription="Unauthorized" />
            <serverVariables>
              <set name="RESPONSE_WWW_AUTHENTICATE" value="Basic realm=Project" />
            </serverVariables>
          </rule>
        </rules>
      </rewrite>
    </system.webServer>
  </location>
</configuration>
  • Ändern Sie die Basisauthentifizierung nach Ihren Wünschen (Standard im Beispiel ist: Benutzer:Passwort)
  • Stellen Sie sicher, dass die Umschreiberegeln für web.config nicht enthalten, <clear />da dies die Auswirkungen aus der Datei applicationHost.xdt entfernt
  • Speichern Sie die Datei und stoppen und starten Sie Ihre WebApp (ein einfacherNeu startenWillenichtgenügen)

Anmerkungen:

  • Nicht sicher, ob dies auf Linux-basierten WebApps funktioniert.
  • Sie können diesen Schritt zu Ihren Bereitstellungspipelines hinzufügen, indem Sie FTP verwenden
  • Aktualisieren:Ich habe Probleme mit applicationHost.xdt festgestellt, als ich es in sekundären Web-App-Slots verwendet habe. Nur der primäre Slot scheint zu funktionieren.

Antwort3

verwandte Informationen