Konfigurowanie poświadczeń wdrożenia dla Azure App Service

Aby zabezpieczyć wdrożenie aplikacji z komputera lokalnego, Azure App Service obsługuje dwa typy poświadczeń na potrzeby lokalnego wdrożenia usługi Git i wdrożenia FTP/S. Te poświadczenia nie są takie same jak poświadczenia subskrypcji platformy Azure.

  • Poświadczenia na poziomie użytkownika: jeden zestaw poświadczeń dla całego konta platformy Azure. Może służyć do wdrażania w App Service dla dowolnej aplikacji w dowolnej subskrypcji, do którego konto platformy Azure ma uprawnienia dostępu. Jest to domyślny zestaw wyświetlany w graficznym interfejsie użytkownika portalu (na przykład przegląd i właściwościstrony zasobu aplikacji). Gdy użytkownik otrzymuje dostęp do aplikacji za pośrednictwem Role-Based Access Control (RBAC) lub uprawnień współadmin, ten użytkownik może używać własnych poświadczeń na poziomie użytkownika do momentu odwołania dostępu. Nie udostępniaj tych poświadczeń innym użytkownikom platformy Azure.

  • Poświadczenia na poziomie aplikacji: jeden zestaw poświadczeń dla każdej aplikacji. Można jej użyć tylko do wdrożenia w tej aplikacji. Poświadczenia dla każdej aplikacji są generowane automatycznie podczas tworzenia aplikacji. Nie można ich skonfigurować ręcznie, ale można je resetować w dowolnym momencie. Aby użytkownik mógł uzyskać dostęp do poświadczeń na poziomie aplikacji za pośrednictwem (RBAC), musi być współautorem lub wyższym użytkownikiem w aplikacji (w tym wbudowaną rolą Współautor witryny internetowej). Czytelnicy nie mogą publikować i nie mogą uzyskiwać dostępu do tych poświadczeń.

Uwaga

Strona Centrum programowania (wersja klasyczna) w Azure Portal, która jest starym środowiskiem wdrażania, zostanie uznana za przestarzałą w marcu 2021 r. Ta zmiana nie wpłynie na żadne istniejące ustawienia wdrożenia w aplikacji i będzie można nadal zarządzać wdrażaniem aplikacji na stronie Centrum wdrażania .

Konfigurowanie poświadczeń zakresu użytkownika

Uruchom polecenie az webapp deployment user set . Zastąp <nazwę użytkownika> i <hasło> użytkownika wdrożenia nazwą użytkownika i hasłem.

  • Nazwa użytkownika musi być unikatowa na platformie Azure, a w przypadku lokalnych wypychania Git nie może zawierać symbolu "@".
  • Hasło musi mieć długość co najmniej ośmiu znaków, z dwoma z następujących trzech elementów: literami, cyframi i symbolami.
az webapp deployment user set --user-name <username> --password <password>

Dane wyjściowe JSON zawierają hasło jako null.

Używanie poświadczeń zakresu użytkownika z protokołem FTP/FTPS

Uwierzytelnianie w punkcie końcowym FTP/FTPS przy użyciu poświadczeń zakresu użytkownika wymaga nazwy użytkownika w następującym formacie: <app-name>\<user-name>

Ponieważ poświadczenia zakresu użytkownika są połączone z użytkownikiem, a nie z określonym zasobem, nazwa użytkownika musi być w tym formacie, aby kierować akcję logowania do odpowiedniego punktu końcowego aplikacji.

Pobieranie poświadczeń zakresu aplikacji

Pobierz poświadczenia zakresu aplikacji za pomocą polecenia az webapp deployment list-publishing-profiles . Przykład:

az webapp deployment list-publishing-profiles --resource-group <group-name> --name <app-name>

W przypadku lokalnego wdrożenia usługi Git można również użyć polecenia az webapp deployment list-publishing-credentials , aby uzyskać zdalny identyfikator URI usługi Git dla aplikacji z osadzonymi poświadczeniami zakresu aplikacji. Przykład:

az webapp deployment list-publishing-credentials --resource-group <group-name> --name <app-name> --query scmUri

Resetowanie poświadczeń zakresu aplikacji

Zresetuj poświadczenia zakresu aplikacji przy użyciu polecenia az resource invoke-action :

az resource invoke-action --action newpassword --resource-group <group-name> --name <app-name> --resource-type Microsoft.Web/sites

Wyłączanie uwierzytelniania podstawowego

Niektóre organizacje muszą spełniać wymagania dotyczące zabezpieczeń i wolisz wyłączyć dostęp za pośrednictwem protokołu FTP lub narzędzia WebDeploy. Dzięki temu członkowie organizacji mogą uzyskiwać dostęp tylko do usługi App Services za pośrednictwem interfejsów API kontrolowanych przez usługę Azure Active Directory (Azure AD).

FTP

Aby wyłączyć dostęp ftp do witryny, uruchom następujące polecenie interfejsu wiersza polecenia. Zastąp symbole zastępcze nazwą grupy zasobów i witryny.

az resource update --resource-group <resource-group> --name ftp --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<site-name> --set properties.allow=false

Aby potwierdzić, że dostęp do protokołu FTP jest zablokowany, możesz spróbować uwierzytelnić się przy użyciu klienta FTP, takiego jak FileZilla. Aby pobrać poświadczenia publikowania, przejdź do bloku przeglądu witryny i kliknij pozycję Pobierz profil publikowania. Użyj nazwy hosta FTP pliku, nazwy użytkownika i hasła do uwierzytelniania, a otrzymasz odpowiedź o błędzie 401 wskazującą, że nie masz autoryzacji.

WebDeploy i SCM

Aby wyłączyć dostęp do podstawowego uwierzytelniania na porcie WebDeploy i w witrynie SCM, uruchom następujące polecenie interfejsu wiersza polecenia. Zastąp symbole zastępcze nazwą grupy zasobów i witryny.

az resource update --resource-group <resource-group> --name scm --namespace Microsoft.Web --resource-type basicPublishingCredentialsPolicies --parent sites/<site-name> --set properties.allow=false

Aby potwierdzić, że poświadczenia profilu publikowania są zablokowane w narzędziu WebDeploy, spróbuj opublikować aplikację internetową przy użyciu programu Visual Studio 2019.

Wyłączanie dostępu do interfejsu API

Interfejs API w poprzedniej sekcji jest wspierany przez kontrolę dostępu opartą na rolach platformy Azure (Azure RBAC), co oznacza, że można utworzyć rolę niestandardową i przypisać użytkowników o niższych uprawnieniach do roli, aby nie mogli włączyć uwierzytelniania podstawowego w żadnych witrynach. Aby skonfigurować rolę niestandardową, postępuj zgodnie z tymi instrukcjami.

Za pomocą usługi Azure Monitor można również przeprowadzić inspekcję wszystkich pomyślnych żądań uwierzytelniania i użyć Azure Policy, aby wymusić tę konfigurację dla wszystkich witryn w ramach subskrypcji.

Następne kroki

Dowiedz się, jak za pomocą tych poświadczeń wdrożyć aplikację z lokalnego narzędzia Git lub przy użyciu protokołu FTP/S.