Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zabezpieczenia to ważna koncepcja podczas rejestrowania aplikacji w usłudze Microsoft Entra ID i jest krytyczną częścią jej użycia biznesowego w organizacji. Każda błędna konfiguracja aplikacji może spowodować przestój lub naruszenie zabezpieczeń. W zależności od uprawnień dodanych do aplikacji mogą istnieć efekty dla całej organizacji.
Ponieważ bezpieczne aplikacje są niezbędne dla organizacji, wszelkie przestoje z powodu problemów z zabezpieczeniami mogą mieć wpływ na firmę lub krytyczną usługę, od której zależy firma. Dlatego ważne jest, aby przydzielić czas i zasoby, aby zapewnić, że aplikacje zawsze pozostają w dobrej kondycji i bezpiecznym stanie. Przeprowadzanie okresowej oceny zabezpieczeń i kondycji aplikacji, podobnie jak ocena modelu zagrożeń bezpieczeństwa dla kodu. Aby uzyskać szerszą perspektywę dotyczącą zabezpieczeń dla organizacji, zobacz cykl projektowania zabezpieczeń (SDL).
W tym artykule opisano najlepsze rozwiązania dotyczące zabezpieczeń dla następujących właściwości i scenariuszy aplikacji:
- Typ tożsamości
- Akredytacje
- Identyfikatory URI przekierowania
- Konfiguracja niejawnego przepływu
- Identyfikator URI aplikacji (znany również jako URI identyfikatora)
- Wersja tokenu dostępu
- Blokada instancji aplikacji
- Własność aplikacji
Typ tożsamości
Prawdopodobnie znajdziesz tutaj informacje na temat najlepszych rozwiązań w zakresie zabezpieczeń aplikacji Firmy Microsoft — nazywanych również rejestracjami aplikacji lub obiektami aplikacji. Istnieje jednak inny typ tożsamości, który może służyć do uzyskiwania dostępu do zasobów chronionych przez firmę Entra, nazywanych tożsamościami zarządzanymi dla zasobów platformy Azure.
Zarządzane tożsamości Azure są domyślnie bezpieczne i nie wymagają ciągłej konserwacji ani dodatkowego obciążenia. Rozważ użycie tożsamości zarządzanej zamiast aplikacji Microsoft Entra dla tożsamości aplikacji, jeśli wszystkie następujące elementy są spełnione:
- Usługa działa w chmurze platformy Azure
- Aplikacja nie musi logować użytkowników
- Aplikacja nie musi działać jako zasób w procesie przepływu tokenów (nie jest interfejsem API)
- Aplikacja nie musi działać w wielu dzierżawach
Uwaga
Tożsamości zarządzane mogą służyć do uzyskiwania dostępu do zasobów spoza platformy Azure, w tym programu Microsoft Graph.
W pozostałej części tego artykułu opisano najlepsze rozwiązania w zakresie zabezpieczeń dotyczące właściwości rejestracji aplikacji Entra.
Poświadczenia (w tym certyfikaty i wpisy tajne)
Poświadczenia są istotną częścią aplikacji, gdy jest używana jako poufny klient. Na stronie Certyfikaty i wpisy tajne dla aplikacji w witrynie Azure Portal można dodać lub usunąć poświadczenia.
Rozważ następujące wskazówki dotyczące certyfikatów i wpisów tajnych:
- Zawsze, gdy jest to możliwe, użyj tożsamości zarządzanej jako poświadczenia. Jest to zdecydowanie zalecane, ponieważ tożsamości zarządzane są zarówno najbezpieczniejszą opcją, jak i nie wymagają ciągłego zarządzania poświadczeniami. Postępuj zgodnie z poniższymi wskazówkami , aby skonfigurować tożsamość zarządzaną jako poświadczenia. Jednak ta opcja może być możliwa tylko wtedy, gdy usługa, w której aplikacja jest używana, działa na platformie Azure.
- Jeśli usługa używana w aplikacji nie działa na platformie Azure, ale działa na innej platformie, która oferuje automatyczne zarządzanie poświadczeniami, rozważ użycie tożsamości z tej platformy jako poświadczenia. Na przykład przepływ pracy GitHub Actions można skonfigurować jako poświadczenia, aby uniknąć zarządzania i zabezpieczania poświadczeń w workflow GitHub Actions. Należy zachować ostrożność w przypadku tego podejścia i skonfigurować tylko poświadczenia federacyjne z zaufanych platform. Aplikacja jest tak bezpieczna, jak platforma tożsamości, która została skonfigurowana jako poświadczenie.
- Jeśli nie można użyć tożsamości zarządzanej lub innego bezpiecznego zewnętrznego dostawcy tożsamości, użyj poświadczeń certyfikatowych. Nie używaj poświadczeń haseł, zwanych także tajemnicami. Chociaż wygodne jest używanie tajnych haseł jako poświadczeń, poświadczenia haseł są często źle zarządzane i łatwo mogą zostać skompromitowane.
- Jeśli certyfikat musi być używany zamiast tożsamości zarządzanej, zapisz ten certyfikat w bezpiecznym magazynie kluczy, takim jak usługa Azure Key Vault.
- Jeśli certyfikat musi być używany zamiast tożsamości zarządzanej, użyj certyfikatu z zaufanego urzędu certyfikacji zamiast certyfikatu z podpisem własnym. Skonfiguruj zasady, aby wymusić , że certyfikaty pochodzą z zaufanych wystawców. Jeśli jednak korzystanie z zaufanego urzędu certyfikacji nie jest możliwe, certyfikaty z podpisem własnym są nadal preferowane zamiast haseł.
- Skonfiguruj zasady zarządzania aplikacjami, aby kontrolować użycie sekretów przez ograniczenie ich okresów żywotności lub całkowite zablokowanie ich użycia.
- Jeśli aplikacja jest używana tylko jako klient publiczny lub zainstalowany (na przykład aplikacje mobilne lub klasyczne zainstalowane na komputerze użytkownika końcowego), upewnij się, że nie określono poświadczeń w obiekcie aplikacji.
- Przejrzyj poświadczenia używane w aplikacjach, aby uzyskać świeżość użycia i ich wygaśnięcie. Nieużywane poświadczenia w aplikacji mogą spowodować naruszenie zabezpieczeń. Często przerzucanie poświadczeń i nie udostępniaj poświadczeń w aplikacjach. Nie ma wielu poświadczeń w jednej aplikacji.
- Monitoruj potoki produkcyjne, aby uniemożliwić zatwierdzanie poświadczeń dowolnego rodzaju w repozytoriach kodu. Skaner poświadczeń to narzędzie do analizy statycznej, które może służyć do wykrywania poświadczeń (i innej poufnej zawartości) w kodzie źródłowym i danych wyjściowych kompilacji.
Identyfikatory URI przekierowania
Ważne jest, aby zapewnić aktualność identyfikatorów URI przekierowania aplikacji. W obszarze Uwierzytelnianie dla aplikacji w witrynie Azure Portal należy wybrać platformę dla aplikacji, a następnie można zdefiniować właściwość Identyfikator URI przekierowania.
Rozważ następujące wskazówki dotyczące identyfikatorów URI przekierowania:
- Zachowaj własność wszystkich identyfikatorów URI. Wygaśnięcie własności jednego z identyfikatorów URI przekierowania może prowadzić do naruszenia zabezpieczeń aplikacji.
- Upewnij się, że wszystkie rekordy DNS są okresowo aktualizowane i monitorowane pod kątem zmian.
- Nie używaj adresów URL odpowiedzi z symbolami wieloznacznymi ani niezabezpieczonych schematów identyfikatorów URI, takich jak http lub URN.
- Zachowaj małą listę. Przycinanie niepotrzebnych identyfikatorów URI. Jeśli to możliwe, zaktualizuj adresy URL z protokołu Http do https.
Konfiguracja niejawnego przepływu
Scenariusze, które wymagały przepływu niejawnego, mogą teraz używać przepływu kodu uwierzytelniania, aby zmniejszyć ryzyko naruszenia bezpieczeństwa związanego z nieprawidłowym użyciem przepływu niejawnego. W obszarze Uwierzytelnianie dla aplikacji w witrynie Azure Portal należy wybrać platformę dla aplikacji, a następnie można ustawić właściwość Tokeny dostępu (używane dla niejawnych przepływów).
Identyfikator URI aplikacji (znany również jako identyfikator URI)
Właściwość Identyfikator URI identyfikatora aplikacji określa globalnie unikatowy identyfikator URI używany do identyfikowania internetowego interfejsu API. Jest to prefiks wartości zakresu w żądaniach do firmy Microsoft Entra. Jest to również wartość deklaracji odbiorców (aud) w tokenach dostępu w wersji 1.0. W przypadku aplikacji wielodostępnych wartość musi być również globalnie unikatowa. Jest on również określany jako URI identyfikatora . W obszarze Uwidacznij interfejs API dla aplikacji w witrynie Azure Portal można zdefiniować właściwość Identyfikator URI aplikacji.
Najlepsze praktyki dotyczące określania URI identyfikatora aplikacji zmieniają się w zależności od tego, czy aplikacja korzysta z wystawianych tokenów dostępu w wersji 1.0 czy 2.0. Jeśli nie masz pewności, czy aplikacja otrzymuje tokeny dostępu w wersji 1.0, sprawdź requestedAccessTokenVersion w manifeście aplikacji . Wartość null lub 1 wskazuje, że aplikacja odbiera tokeny dostępu w wersji 1.0. Wartość 2 wskazuje, że aplikacja odbiera tokeny dostępu w wersji 2.0.
W przypadku aplikacji, dla których wystawiane są tokeny dostępu w wersji 1.0, należy używać tylko domyślnych identyfikatorów URI. Domyślne identyfikatory URI to api://<appId> i api://<tenantId>/<appId>. — Skonfiguruj nonDefaultUriAddition ograniczenie zasad zarządzania aplikacjami , aby wymusić to najlepsze rozwiązanie dla przyszłych aktualizacji aplikacji w organizacji.
W przypadku aplikacji, którym wystawiono tokeny dostępu w wersji 2.0, należy użyć następujących wskazówek podczas definiowania Identyfikatora URI aplikacji:
- Zalecane są schematy identyfikatorów URI
apilubhttps. Ustaw właściwość w obsługiwanych formatach, aby uniknąć kolizji identyfikatorów URI w organizacji. Nie używaj symboli wieloznacznych. - Użyj zweryfikowanej domeny organizacji.
- Zachowaj spis identyfikatorów URI w organizacji, aby zapewnić bezpieczeństwo.
Obsługiwane są następujące formaty identyfikatorów URI identyfikatora aplikacji opartego na schematach HTTP i interfejsu API. Zastąp wartości symboli zastępczych zgodnie z opisem na liście poniżej tabeli.
| Identyfikator obsługiwanej aplikacji Formaty identyfikatora URI |
Przykładowe identyfikatory URI identyfikatorów aplikacji |
|---|---|
| <api:// appId> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee |
| <api:// tenantId>/<appId> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/00001111-aaaa-2222-bbbb-3333cccc4444 |
| <api:// tenantId>/<ciąg> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/api |
| <api:// string>/<appId> | api://productapi/00001111-aaaa-2222-bbbb-3333cccc4444 |
| <https:// tenantInitialDomain.onmicrosoft.com/>< string> | https://contoso.onmicrosoft.com/productsapi |
| <https:// zweryfikowaneCustomDomain>/<ciąg> | https://contoso.com/productsapi |
| <https:// ciąg.><verifiedCustomDomain> | https://product.contoso.com |
| <https:// ciąg.><verifiedCustomDomain>/<string> | https://product.contoso.com/productsapi |
| <api:// ciąg.><verifiedCustomDomainOrInitialDomain>/<string> | api://contoso.com/productsapi |
- <appId> — właściwość identyfikatora aplikacji (appId) obiektu aplikacji.
- <string> — wartość ciągu dla hosta lub segmentu ścieżki interfejsu API.
- <tenantId> — identyfikator GUID wygenerowany przez platformę Azure do reprezentowania dzierżawy na platformie Azure.
- < > , gdzie - < jest początkową nazwą domeny twórcą dzierżawy określonym podczas tworzenia dzierżawy.
- <verifiedCustomDomain> — zweryfikowana domena niestandardowa skonfigurowana dla dzierżawy firmy Microsoft Entra.
Uwaga
Jeśli używasz schematu api:// , należy dodać wartość ciągu bezpośrednio po "api://". Na przykład api://< ciąg.> Ta wartość ciągu może być identyfikatorem GUID lub dowolnym ciągiem. Jeśli dodasz wartość identyfikatora GUID, musi być zgodna z identyfikatorem aplikacji lub identyfikatorem dzierżawy. Jeśli używasz wartości ciągu, musi ona używać zweryfikowanej domeny niestandardowej lub początkowej domeny dzierżawy. Zaleceniem jest użycie identyfikatora api://< appId>.
Ważne
Wartość identyfikatora URI identyfikatora aplikacji nie może kończyć się ukośnikiem "/".
Ważne
Wartość identyfikatora URI identyfikatora aplikacji musi być unikatowa w dzierżawie.
Wersja tokenu dostępu
Ta sekcja ma zastosowanie tylko do aplikacji zasobów — czyli aplikacji, które działają jako odbiorcy w tokenach dostępu. Aplikacje zasobów to zazwyczaj internetowe interfejsy API. Jeśli aplikacja działa tylko jako klient (co oznacza, że uzyskuje tokeny do wysyłania do zasobów, takich jak Microsoft Graph), ta sekcja nie ma zastosowania.
Aplikacje zasobów, które skonfigurowały niestandardowe identyfikatory URI, powinny używać formatu tokenu dostępu w wersji 2.0. Aby sprawdzić, czy aplikacja powinna używać tokenów dostępu w wersji 2.0, zapoznaj się z właściwością identifierUris na stronie manifestu Rejestracje aplikacji dla aplikacji.
Jeśli istnieją jakiekolwiek wartości ustawione nie w formacie api://{appId} lub api://{tenantId}/{appId}, aplikacja powinna używać tokenów dostępu w wersji 2.0.
Aby uaktualnić tokeny dostępu do wersji 2.0, najpierw upewnij się, że aplikacja może obsługiwać oświadczenia tokenów w wersji 2.0. Następnie zaktualizuj wersję tokenu dostępu wystawioną przez aplikację przy użyciu edytora manifestu.
Po zaktualizowaniu konfiguracji aplikacji do używania tokenów w wersji 2.0, upewnij się, że logika weryfikacji odbiorców aplikacji została zmodyfikowana tak, aby akceptowała tylko jego appId.
Zablokowanie właściwości instancji aplikacji
Gdy aplikacja ma jednostkę usługi aprowizowaną w dzierżawie, jednostka usługi może być dostosowywana przez administratora dzierżawy. Jest to prawdą niezależnie od tego, czy dzierżawa ta jest dzierżawą główną aplikacji, czy dzierżawą zagraniczną. Te możliwości dostosowywania mogą zezwalać na modyfikacje, których właściciel aplikacji nie oczekiwał, co prowadzi do zagrożeń bezpieczeństwa. Na przykład poświadczenia można dodać do jednostki usługi, mimo że poświadczenia powinny być zwykle własnością i kontrolowane przez dewelopera i właściciela aplikacji.
Aby zmniejszyć to ryzyko, aplikacje powinny skonfigurować blokadę wystąpienia aplikacji. Podczas konfigurowania blokady wystąpienia aplikacji zawsze zablokuj każdą dostępną właściwość wrażliwą. Konfigurowanie tej właściwości jest szczególnie istotne dla aplikacji wielodostępnych — czyli takich, które są używane przez wielu najemców lub organizacje — ale powinno być ustawione przez wszystkie aplikacje.
Uprawnienia
Aplikacja może wymagać udzielenia uprawnień dostępu do chronionych zasobów lub interfejsów API. Podczas żądania uprawnień zawsze upewnij się, że są spełnione następujące warunki:
- Przestrzegaj zasad najniższych uprawnień. Zażądaj tylko uprawnienia, które przyznaje najmniej uciążliwy dostęp wymagany do wykonania akcji, którą musi wykonać aplikacja. W przypadku wywoływania Microsoft Graph, użyj dokumentacji interfejsu API, aby zidentyfikować najmniej restrykcyjne uprawnienia dla danego wywołania interfejsu API. Okresowo sprawdzaj uprawnienia aplikacji, aby sprawdzić, czy jest dostępna opcja mniej uprzywilejowana. Jeśli aplikacja nie potrzebuje już uprawnień, usuń ją.
- Jeśli to możliwe, użyj dostępu delegowanego zamiast dostępu tylko do aplikacji.
- Przejrzyj dokumentację uprawnień i zgody , aby upewnić się, że rozumiesz podstawy uprawnień.
Konfiguracja własności aplikacji
Właściciele mogą zarządzać wszystkimi aspektami zarejestrowanej aplikacji. Ważne jest, aby regularnie przeglądać własność wszystkich aplikacji w organizacji. Aby uzyskać więcej informacji, zobacz Microsoft Entra access reviews (Przeglądy dostępu firmy Microsoft Entra). W obszarze Właściciele aplikacji w witrynie Azure Portal można zarządzać właścicielami aplikacji.
Rozważ następujące wskazówki dotyczące określania właścicieli aplikacji:
- Własność aplikacji powinna być przechowywana w minimalnym zestawie osób w organizacji.
- Administrator powinien przeglądać listę właścicieli co kilka miesięcy, aby upewnić się, że właściciele są nadal częścią organizacji i nadal powinni być właścicielami aplikacji.
Zapoznaj się z zaleceniami entra
Funkcja rekomendacji firmy Microsoft Entra pomaga monitorować stan dzierżawy, aby nie trzeba było tego robić. Te zalecenia pomagają zapewnić, że tenant jest w bezpiecznym i stanie zdrowym, a jednocześnie pomagają zmaksymalizować wartość funkcji dostępnych w Microsoft Entra ID. Okresowo przejrzyj wszystkie aktywne rekomendacje firmy Microsoft Entra dotyczące właściwości aplikacji lub konfiguracji aplikacji, aby zachować ekosystem aplikacji w dobrej kondycji.