Zabezpieczanie łączności z usługami i bazami danych platformy Azure z usługi aplikacja systemu Azure Service
Usługa App Service może wymagać połączenia z innymi usługami platformy 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 wpisami tajnymi. Typowy wzorzec używania wpisów tajnych połączenia w parametry 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ż podmioty zagrożeń regularnie przeszukiwają publiczne repozytoria GitHub pod kątem przypadkowo zatwierdzonych wpisów tajnych połączenia. W przypadku aplikacji w chmurze najlepszym rozwiązaniem do zarządzania wpisami tajnymi jest brak wpisów tajnych. Podczas migracji do usługi aplikacja systemu Azure Aplikacja może zaczynać się od łączności opartej na wpisach tajnych, a usługa App Service umożliwia bezpieczne przechowywanie wpisów tajnych. Jednak platforma Azure może pomóc w zabezpieczeniu łączności zaplecza aplikacji za pośrednictwem uwierzytelniania firmy Microsoft Entra, co eliminuje całkowicie wpisy tajne 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 podrzędna platformy Azure obsługuje uwierzytelnianie firmy 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 podrzędna platformy Azure obsługuje uwierzytelnianie firmy Microsoft Entra, takie jak Microsoft Graph. * Zasób podrzędny musi wykonywać szczegółową autoryzację bieżącego zalogowanego użytkownika. |
Nawiązywanie połączenia przy użyciu wpisów tajnych | * Zasób podrzędny wymaga wpisów tajnych połączenia. * Aplikacja łączy się z usługami spoza platformy Azure, takimi jak lokalny serwer bazy danych. * Usługa podrzędna platformy Azure nie obsługuje jeszcze uwierzytelniania firmy 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 podrzędnej usługi platformy Azure, możesz szybko przekonwertować połączenie, aby zamiast tego użyć tożsamości aplikacji. Tożsamość zarządzana z usługi Microsoft Entra ID umożliwia usłudze App Service uzyskiwanie dostępu do zasobów bez wpisów tajnych i zarządzanie dostępem za pomocą kontroli dostępu opartej na rolach (RBAC). Tożsamość zarządzana może łączyć się z dowolnym zasobem platformy Azure, który obsługuje uwierzytelnianie firmy Microsoft Entra, a uwierzytelnianie odbywa się przy użyciu tokenów krótkotrwałych.
Na poniższej ilustracji przedstawiono następującą usługę App Service łączącą się z innymi usługami platformy Azure:
- 1: Użytkownik odwiedza witrynę internetową usługi Azure App Service.
- B: Bezpiecznie nawiąż połączenie z usługi App Service z inną usługą platformy Azure przy użyciu tożsamości zarządzanej.
- C: Bezpiecznie nawiąż połączenie z usługi App Service do programu Microsoft Graph przy użyciu tożsamości zarządzanej.
Przykłady używania wpisów tajnych aplikacji do nawiązywania połączenia z bazą danych:
- Samouczek: nawiązywanie połączenia z bazami danych platformy Azure z usługi App Service bez wpisów tajnych przy użyciu tożsamości zarządzanej
- Samouczek: Łączenie się z bazą danych SQL Database z usługi NET App Service bez wpisów tajnych przy użyciu tożsamości zarządzanej
- Samouczek: nawiązywanie połączenia z bazą danych PostgreSQL z poziomu usługi App Service w języku Java 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 usługach aplikacja systemu Azure Service i Azure Functions). Jeśli używasz dostawcy firmy Microsoft (uwierzytelniania firmy Microsoft Entra), możesz następnie przepływać zalogowanego użytkownika do dowolnej usługi podrzędnej. 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 programie 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:
- Nawiązywanie połączenia z programem 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
- Przepływ zalogowanego użytkownika za pomocą wielu warstw usług podrzędnych
Nawiązywanie połączenia przy użyciu wpisów tajnych
Istnieją dwa zalecane sposoby używania wpisów tajnych w aplikacji: używanie wpisów tajnych przechowywanych w usłudze Azure Key Vault lub wpisów tajnych w ustawieniach aplikacji usługi App Service.
Używanie wpisów tajnych z usługi Key Vault
Usługa Azure Key Vault może służyć 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 w usłudze Microsoft Entra lub wymaga parametry połączenia lub klucza, użyj usługi Key Vault do przechowywania wpisów tajnych i łączenia aplikacji z usługą Key Vault przy użyciu tożsamości zarządzanej i pobierania wpisów tajnych. Aplikacja może uzyskiwać dostęp do wpisów tajnych magazynu kluczy jako odwołania do usługi Key Vault w ustawieniach aplikacji.
Zalety tożsamości zarządzanych zintegrowanych z usługą Key Vault obejmują:
- Dostęp do wpisu tajnego magazynu kluczy jest ograniczony do aplikacji.
- Współautorzy aplikacji, tacy jak administratorzy, mogą mieć pełną kontrolę nad zasobami usługi App Service i jednocześnie nie mają dostępu do wpisów tajnych magazynu kluczy.
- Nie jest wymagana żadna zmiana kodu, jeśli kod aplikacji uzyskuje już dostęp do wpisów tajnych połączenia z ustawieniami aplikacji.
- Usługa Key Vault zapewnia monitorowanie i inspekcję osób, które uzyskiwały dostęp do wpisów tajnych.
- Rotacja wpisów tajnych magazynu kluczy nie wymaga żadnych zmian w usłudze App Service.
Na poniższej ilustracji pokazano, jak usługa App Service łączy się z usługą Key Vault przy użyciu tożsamości zarządzanej, a następnie uzyskuje dostęp do usługi platformy Azure przy użyciu wpisów tajnych przechowywanych w usłudze Key Vault:
Używanie wpisów tajnych 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 wpisy tajne są wstrzykiwane do kodu aplikacji jako zmienne środowiskowe podczas uruchamiania aplikacji. Ustawienia aplikacji są zawsze szyfrowane podczas przechowywania (szyfrowane w spoczynku). Aby uzyskać bardziej zaawansowane zarządzanie wpisami tajnymi, takie jak rotacja wpisów tajnych, zasady dostępu i historia inspekcji, spróbuj użyć usługi Key Vault.
Przykłady używania wpisów tajnych aplikacji do nawiązywania połączenia z bazą danych:
- Samouczek: wdrażanie aplikacji ASP.NET Core i Azure SQL Database w usłudze aplikacja systemu Azure Service
- Samouczek: wdrażanie aplikacji ASP.NET na platformie Azure przy użyciu usługi Azure SQL Database
- Samouczek: wdrażanie aplikacji PHP, MySQL i Redis w usłudze aplikacja systemu Azure
- Wdrażanie aplikacji internetowej Node.js i bazy danych MongoDB na platformie Azure
- Wdrażanie aplikacji internetowej w języku Python (Django lub Flask) przy użyciu bazy danych PostgreSQL na platformie Azure
- Samouczek: tworzenie aplikacji internetowej Tomcat przy użyciu usługi aplikacja systemu Azure w systemach Linux i MySQL
- Samouczek: tworzenie aplikacji internetowej Java Spring Boot przy użyciu usługi aplikacja systemu Azure Service w systemach Linux i Azure Cosmos DB
- Samouczek: tworzenie aplikacji internetowej Quarkus przy użyciu usługi aplikacja systemu Azure w systemach Linux i PostgreSQL
Następne kroki
Instrukcje:
- Bezpieczne przechowywanie wpisów tajnych w usłudze Azure Key Vault.
- Uzyskiwanie dostępu do zasobów przy użyciu tożsamości zarządzanej.
- Przechowywanie wpisów tajnych przy użyciu ustawień aplikacji usługi App Service.
- Połącz się z programem Microsoft Graph jako użytkownik.
- Połącz się z bazą danych SQL jako użytkownik.
- Połącz się z inną aplikacją usługi 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.