Zarządzanie tożsamościami aplikacji i dostępem

W tym artykule opisano zagadnienia i zalecenia, których właściciele aplikacji i deweloperzy mogą używać do projektowania zarządzania tożsamościami i dostępem dla aplikacji natywnych dla chmury.

Jeśli zespół migruje lub tworzy aplikacje natywne dla chmury, musisz wziąć pod uwagę wymagania dotyczące uwierzytelniania i dostępu dla aplikacji. Te wymagania określają sposób uwierzytelniania użytkowników w aplikacjach i sposobu uwierzytelniania zasobów aplikacji nawzajem, na przykład gdy aplikacja internetowa uzyskuje dostęp do bazy danych SQL.

W obszarze automatyzacji platformy i projektu DevOps zalecamy, aby zespół aplikacji przechodził obciążenia do sprzedaż abonamentów. W ramach procesu subskrypcji zespół aplikacji musi zapewnić zespołowi ds. tożsamości i dostępu wymagania dotyczące tożsamości i dostępu do zespołu platformy, aby mogli utworzyć odpowiednie subskrypcje. Właściciele aplikacji są odpowiedzialni za zarządzanie tożsamościami i dostępem poszczególnych aplikacji. Powinni zarządzać swoją aplikacją przy użyciu scentralizowanych usług zapewnianych przez zespół platformy.

Uwagi dotyczące projektowania

Aby zmniejszyć ryzyko nieautoryzowanego dostępu do aplikacji, uwzględnij następujące kwestie w projekcie.

  • Istnieje kilka standardów uwierzytelniania i autoryzacji, takich jak OAuth 2.0, OpenID Połączenie, tokeny internetowe JSON (JWTs) i SAML (Security Assertion Markup Language). Ustal, które standardy uwierzytelniania i autoryzacji mają być używane dla aplikacji.

  • Gdy zażądasz strefy docelowej aplikacji od zespołu platformy, możesz upewnić się, że tworzą odpowiednie subskrypcje, zadając im następujące pytania:

    • Jak użytkownicy końcowi będą uwierzytelniać się w aplikacji i uzyskiwać do jej dostępu?

    • KtoTo potrzebuje uprawnień kontroli dostępu opartej na rolach (RBAC) dla zasobów i usług używanych przez aplikację?

    • Czy istniejące wbudowane role obejmują wymagania dostępu RBAC zarówno dla płaszczyzny sterowania, jak i dostępu do płaszczyzny danych, czy też należy utworzyć nowe role niestandardowe?

    • Czy zespół platformy zaimplementował jakiekolwiek zasady zgodności, które mogą powodować problemy z aplikacją?

    • Które składniki aplikacji muszą komunikować się ze sobą?

    • Czy istnieją jakiekolwiek wymagania dotyczące uzyskiwania dostępu do udostępnionych zasobów, takich jak Microsoft Entra Domain Services, które są wdrażane w strefie docelowej platformy?

Usługa Azure Key Vault i tożsamości zarządzane

Użytkownicy zewnętrzni

Możesz ocenić scenariusze obejmujące konfigurowanie użytkowników zewnętrznych, klientów lub partnerów, aby mogli uzyskiwać dostęp do zasobów. Określ, czy te scenariusze obejmują konfiguracje usługi Microsoft Entra B2B lub Azure Active Directory B2C (Azure AD B2C). Aby uzyskać więcej informacji, zobacz Omówienie Tożsamość zewnętrzna Microsoft Entra.

Zalecenia dotyczące projektowania

Podczas projektowania tożsamości i zarządzania dostępem aplikacji należy wziąć pod uwagę następujące zalecenia.

OpenID Connect

Jeśli zespół aplikacji programowo wdraża aplikacje przy użyciu potoków ciągłej integracji i ciągłego dostarczania (CI/CD), skonfiguruj uwierzytelnianie openID Połączenie w usługach platformy Azure. OpenID Połączenie używa tymczasowego, bez poświadczeń tokenu do uwierzytelniania w usługach platformy Azure. Aby uzyskać więcej informacji, zobacz Federacja tożsamości obciążeń.

Jeśli Połączenie OpenID nie jest obsługiwana, utwórz jednostkę usługi i przypisz niezbędne uprawnienia, aby zezwolić na wdrożenie infrastruktury lub kodu aplikacji. Aby uzyskać więcej informacji, zobacz moduł szkoleniowy Uwierzytelnianie potoku wdrażania platformy Azure przy użyciu jednostek usługi.

Kontrola dostępu oparta na atrybutach

Aby jeszcze bardziej ograniczyć dostęp i zapobiec nieautoryzowanemu dostępowi do danych, użyj kontroli dostępu opartej na atrybutach (ABAC), gdzie jest obsługiwana, na przykład w usłudze Azure Blob Storage.

Dostęp do maszyny wirtualnej

Jeśli to możliwe, użyj tożsamości Microsoft Entra ID, aby kontrolować dostęp do maszyn wirtualnych platformy Azure. Użyj identyfikatora Entra firmy Microsoft zamiast uwierzytelniania lokalnego, aby zapewnić dostęp do maszyn wirtualnych, korzystając z dostępu warunkowego firmy Microsoft Entra, rejestrowania inspekcji i uwierzytelniania wieloskładnikowego firmy Microsoft (MFA). Ta konfiguracja zmniejsza ryzyko ataków wykorzystujących niezabezpieczone lokalne usługi uwierzytelniania. Aby uzyskać więcej informacji, zobacz Logowanie się do maszyny wirtualnej z systemem Linux na platformie Azure przy użyciu identyfikatora Entra firmy Microsoft i protokołu OpenSSH oraz Logowanie się do maszyny wirtualnej z systemem Windows na platformie Azure przy użyciu identyfikatora Entra firmy Microsoft, w tym bez hasła.

Platforma tożsamości firmy Microsoft

  • Podczas tworzenia aplikacji natywnej dla chmury deweloperzy powinni używać Platforma tożsamości Microsoft dla deweloperów jako dostawcy tożsamości dla swoich aplikacji. Platforma tożsamości Microsoft udostępnia usługę uwierzytelniania zgodną z standardami openID Połączenie, za pomocą których deweloperzy mogą uwierzytelniać kilka typów tożsamości, w tym:

    • Konta służbowe aprowidowane za pośrednictwem identyfikatora Entra firmy Microsoft

    • Osobiste konta Microsoft (Skype, Xbox, Outlook.com)

    • Konta społecznościowe lub lokalne przy użyciu identyfikatora Microsoft Entra ID

  • Lista kontrolna najlepszych rozwiązań i zaleceń Platforma tożsamości Microsoft zawiera wskazówki dotyczące efektywnego integrowania aplikacji z Platforma tożsamości Microsoft.

Tożsamości zarządzane

  • Aby włączyć dostęp między zasobami platformy Azure, które nie muszą używać poświadczeń, użyj tożsamości zarządzanych.

  • Nie należy udostępniać poświadczeń ani tożsamości zarządzanych między różnymi środowiskami lub aplikacjami. Na przykład nie używaj tożsamości dla zasobów produkcyjnych, a także w zasobach tworzenia i testowania, nawet w przypadku tej samej aplikacji. Utwórz oddzielne poświadczenia dla każdego wystąpienia aplikacji, aby zmniejszyć prawdopodobieństwo naruszenia zabezpieczeń wystąpienia testowego wpływającego na dane produkcyjne. Oddzielne poświadczenia ułatwiają również odwoływanie poświadczeń, gdy nie są już wymagane.

  • Jeśli istnieje wymóg używania tożsamości zarządzanych na dużą skalę, użyj tożsamości zarządzanej przypisanej przez użytkownika dla każdego typu zasobu w każdym regionie. Takie podejście uniemożliwia zmianę tożsamości. Na przykład agent usługi Azure Monitor wymaga tożsamości zarządzanej na monitorowanych maszynach wirtualnych platformy Azure, co może spowodować utworzenie (i usunięcie) przez identyfikator entra firmy Microsoft znacznej liczby tożsamości. Tożsamości zarządzane przypisane przez użytkownika można tworzyć raz i udostępniać je na wielu maszynach wirtualnych. Użyj usługi Azure Policy , aby zaimplementować to zalecenie.

Key Vault

  • Za pomocą usługi Key Vault można zarządzać wpisami tajnymi, kluczami, certyfikatami używanymi przez aplikacje.

  • Należy użyć oddzielnych magazynów kluczy dla każdego środowiska aplikacji (programistycznego, przedprodukcyjnego, produkcyjnego) w każdym regionie. Kontrola dostępu oparta na rolach umożliwia zarządzanie dostępem do wpisów tajnych, kluczy i certyfikatów (operacji płaszczyzny danych) oraz dostępu do usługi Key Vault (płaszczyzny sterowania). Wdróż magazyny kluczy, które mają wpisy tajne aplikacji w strefach docelowych aplikacji.

Serwer proxy aplikacji Firmy Microsoft Entra

  • Aby uzyskać dostęp do aplikacji korzystających z uwierzytelniania lokalnego zdalnie za pośrednictwem identyfikatora Entra firmy Microsoft, użyj serwera proxy aplikacji Microsoft Entra. Serwer proxy aplikacji Entra firmy Microsoft zapewnia bezpieczny dostęp zdalny do lokalnych aplikacji internetowych, w tym aplikacji korzystających ze starszych protokołów uwierzytelniania. Po zalogowaniu jednokrotnym do usługi Microsoft Entra ID użytkownicy mogą uzyskiwać dostęp zarówno do aplikacji w chmurze, jak i lokalnych za pośrednictwem zewnętrznego adresu URL lub wewnętrznego portalu aplikacji.

    • Serwer proxy aplikacji Microsoft Entra można wdrożyć jako pojedyncze wystąpienie w dzierżawie microsoft Entra ID. Konfiguracja wymaga ról application Administracja istrator lub global Administracja istrator privileged Microsoft Entra ID. Jeśli Organizacja używa demokratyzacji subskrypcji jako modelu przypisania roli, właściciele aplikacji mogą nie mieć niezbędnych uprawnień do skonfigurowania serwera proxy aplikacji Firmy Microsoft Entra. W takim przypadku zespół platformy powinien skonfigurować serwer proxy aplikacji Microsoft Entra dla właściciela aplikacji.

    • Jeśli używasz potoków wdrażania ciągłej integracji/ciągłego wdrażania z wystarczającymi uprawnieniami, właściciele aplikacji mogą skonfigurować serwer proxy aplikacji Firmy Microsoft Entra przy użyciu interfejsu API programu Microsoft Graph.

  • Jeśli aplikacja używa starszych protokołów, takich jak Kerberos, upewnij się, że strefa docelowa aplikacji ma łączność sieciową z kontrolerami domeny w subskrypcji Platforma tożsamości Microsoft.

Następne kroki