Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa App Service może wymagać połączenia z innymi usługami Azure, takimi jak baza danych, magazyn lub inna aplikacja. To omówienie zaleca różne metody nawiązywania połączenia i kiedy ich używać.
Obecnie decyzja dotycząca podejścia do łączności jest ściśle związana z zarządzaniem sekretami. Typowy wzorzec używania tajnych danych w ciągach połączenia, takich jak nazwa użytkownika i hasło, klucz tajny itp., nie jest już uważany za najbezpieczniejsze podejście do łączności. Obecnie ryzyko jest jeszcze wyższe, ponieważ aktywni uczestnicy zagrożeń regularnie przeszukują publiczne repozytoria GitHub w poszukiwaniu przypadkowo zatwierdzonych tajnych danych połączeń. W przypadku aplikacji w chmurze najlepszym rozwiązaniem do zarządzania tajemnicami jest brak tajemnic. Podczas migracji do Azure App Service aplikacja może początkowo korzystać z łączności opartej na tajnych danych, a usługa App Service umożliwia bezpieczne przechowywanie tych tajnych danych. Azure może pomóc w zabezpieczeniu łączności zaplecza aplikacji za pośrednictwem uwierzytelniania Microsoft Entra, co całkowicie eliminuje tajne dane w aplikacji.
| Metoda połączenia | Kiedy używać |
|---|---|
| Nawiązywanie połączenia przy użyciu tożsamości aplikacji | * Chcesz całkowicie usunąć poświadczenia, klucze lub wpisy tajne z aplikacji. * Usługa Azure podrzędna obsługuje uwierzytelnianie Microsoft Entra, takie jak Microsoft Graph. * Zasób podrzędny nie musi znać bieżącego zalogowanego użytkownika lub nie potrzebuje szczegółowej autoryzacji bieżącego zalogowanego użytkownika. |
| Nawiązywanie połączenia w imieniu zalogowanego użytkownika | * Aplikacja musi uzyskać dostęp do zasobu podrzędnego w imieniu zalogowanego użytkownika. * Usługa Azure podrzędna obsługuje uwierzytelnianie Microsoft Entra, takie jak Microsoft Graph. * Zasób podrzędny musi wykonywać szczegółową autoryzację bieżącego zalogowanego użytkownika. |
| Połącz przy użyciu tajnych danych | * Zasób końcowy wymaga tajnych danych połączenia. * Aplikacja łączy się z usługami innych niż Azure, takimi jak lokalny serwer bazy danych. * Usługa Azure podrzędna nie obsługuje jeszcze uwierzytelniania Microsoft Entra. |
Nawiązywanie połączenia przy użyciu tożsamości aplikacji
Jeśli aplikacja używa już jednego zestawu poświadczeń w celu uzyskania dostępu do usługi Azure podrzędnej, możesz szybko przekonwertować połączenie, aby zamiast tego użyć tożsamości aplikacji. Tożsamość zarządzana z Microsoft Entra ID pozwala usłudze App Service na dostęp do zasobów bez tajnych danych, a dostęp można zarządzać za pomocą kontroli dostępu opartej na rolach (RBAC). Tożsamość zarządzana może łączyć się z dowolnym zasobem Azure obsługującym uwierzytelnianie Microsoft Entra, a uwierzytelnianie odbywa się przy użyciu tokenów krótkotrwałych.
Na poniższej ilustracji przedstawiono usługę App Service łączącą się z innymi usługami Azure:
- Użytkownik odwiedza witrynę usługi App Service Azure.
- B: Bezpiecznie połącz się z usługi App Service do innej usługi Azure przy użyciu zarządzanej tożsamości.
- C: Bezpiecznie nawiąż połączenie z App Service do Microsoft Graph przy użyciu tożsamości zarządzanej.
Diagram przedstawiający, jak tożsamość zarządzana uzyskuje dostęp do zasobu z tożsamością użytkownika lub bez niej.
Przykłady używania sekretów aplikacji do nawiązywania połączenia z bazą danych:
- Tutorial: Nawiązywanie połączenia z bazami danych Azure z usługi App Service przy użyciu zarządzanej tożsamości bez tajnych haseł
- Tutorial: Połączenie z SQL Database z .NET App Service bez tajnych danych przy użyciu tożsamości zarządzanej
- Tutorial: nawiązywanie połączenia z bazą danych PostgreSQL z usługi Java Tomcat App Service bez wpisów tajnych przy użyciu tożsamości zarządzanej
Nawiązywanie połączenia w imieniu zalogowanego użytkownika
Aplikacja może wymagać połączenia z usługą podrzędną w imieniu zalogowanego użytkownika. Usługa App Service umożliwia łatwe uwierzytelnianie użytkowników przy użyciu najpopularniejszych dostawców tożsamości (zobacz Uwierzytelnianie i Autoryzacja w Azure App Service i Azure Functions). Jeśli używasz dostawcy Microsoft (uwierzytelnianie Microsoft Entra), możesz następnie przekierować zalogowanego użytkownika do dowolnej usługi docelowej. Na przykład:
- Uruchom zapytanie bazy danych, które zwraca poufne dane, do których zalogowany użytkownik ma uprawnienia do odczytu.
- Pobierz dane osobowe lub podejmij działania jako zalogowany użytkownik w Microsoft Graph.
Na poniższej ilustracji przedstawiono aplikację, która bezpiecznie uzyskuje dostęp do bazy danych SQL w imieniu zalogowanego użytkownika.
Oto niektóre typowe scenariusze:
- Połącz się z Microsoft Graph w imieniu użytkownika
- Nawiązywanie połączenia z bazą danych SQL w imieniu użytkownika
- Nawiązywanie połączenia z inną aplikacją usługi App Service w imieniu użytkownika
- Przeprowadzać zalogowanego użytkownika przez wiele warstw usług podrzędnych
Połącz przy użyciu sekretów
Istnieją dwa zalecane sposoby używania wpisów tajnych w aplikacji: używanie wpisów tajnych przechowywanych w Azure Key Vault lub wpisach tajnych w ustawieniach aplikacji usługi App Service.
Używanie sekretów z Key Vault
Azure Key Vault można używać do bezpiecznego przechowywania wpisów tajnych i kluczy, monitorowania dostępu i używania wpisów tajnych oraz upraszczania administrowania wpisami tajnymi aplikacji. Jeśli usługa podrzędna nie obsługuje uwierzytelniania Microsoft Entra lub wymaga ciągu połączenia lub klucza, użyj Key Vault do przechowywania sekrety i połącz aplikację z Key Vault, korzystając z tożsamości zarządzanej, aby pobierać sekrety. Aplikacja może uzyskiwać dostęp do tajnych danych Key Vault jako odwołania do Key Vault w ustawieniach aplikacji.
Zalety tożsamości zarządzanych zintegrowanych z Key Vault obejmują:
- Dostęp do sekretu w skarbcu kluczy jest dostępny tylko dla aplikacji.
- Współautorzy aplikacji, tacy jak administratorzy, mogą mieć pełną kontrolę nad zasobami usługi App Service, a jednocześnie nie mają dostępu do tajemnic skarbca kluczy.
- Nie jest wymagana żadna zmiana kodu, jeśli kod aplikacji uzyskuje już dostęp do tajnych danych połączenia przy użyciu ustawień aplikacji.
- Key Vault zapewnia monitorowanie i inspekcję osób, które uzyskiwały dostęp do tajemnic.
- Rotacja tajemnic w magazynie kluczy nie wymaga żadnych zmian w usłudze Azure App Service.
Na poniższej ilustracji przedstawiono łączenie usługi App Service z Key Vault przy użyciu tożsamości zarządzanej, a następnie uzyskiwanie dostępu do usługi Azure przy użyciu wpisów tajnych przechowywanych w Key Vault:
Używanie sekretów w ustawieniach aplikacji
W przypadku aplikacji łączących się z usługami przy użyciu wpisów tajnych (takich jak nazwy użytkowników, hasła i klucze interfejsu API) usługa App Service może przechowywać je bezpiecznie w ustawieniach aplikacji. Te sekrety są wstrzykiwane do kodu aplikacji jako zmienne środowiskowe przy starcie aplikacji. Ustawienia aplikacji są zawsze szyfrowane podczas przechowywania (szyfrowane w spoczynku). Aby uzyskać bardziej zaawansowane zarządzanie tajemnicami, takie jak rotacja tajemnic, zasady dostępu i historia inspekcji, spróbuj użyć Key Vault.
Przykłady używania sekretów aplikacji do nawiązywania połączenia z bazą danych:
- Tutorial: wdrażanie aplikacji ASP.NET Core i Azure SQL Database w Azure App Service
- Wdróż aplikację ASP.NET do Azure przy użyciu Azure SQL Database
- Tutorial: Wdróż aplikację PHP, MySQL i Redis do Azure App Service
- Deploy a Node.js + MongoDB web app to Azure
- Wdróż aplikację webową Python (Flask) z PostgreSQL w Azure
- Deploy a Python (Django) web app with PostgreSQL in Azure
- Deploy a Python (FastAPI) web app with PostgreSQL in Azure
- Tutorial: tworzenie aplikacji internetowej Tomcat przy użyciu usług Azure App Service dla systemu Linux i MySQL
- Tutorial: tworzenie aplikacji internetowej Java Spring Boot przy użyciu usługi Azure App Service dla systemu Linux i Azure Cosmos DB
Treści powiązane
- Bezpieczne przechowywanie wpisów tajnych w Azure Key Vault.
- Uzyskiwanie dostępu do zasobów przy użyciu tożsamości zarządzanej.
- Przechowywanie tajemnic przy użyciu ustawień aplikacji usługi App Service.
- Połącz się z Microsoft Graph jako użytkownik.
- Połącz się z bazą danych SQL jako użytkownik.
- Połącz się z inną aplikacją App Service jako użytkownik.
- Połącz się z inną aplikacją usługi App Service, a następnie usługą podrzędną jako użytkownik.