Zabezpieczanie aplikacji za pomocą oceny ciągłego dostępu
Ten artykuł pomaga, jako deweloper, poprawić bezpieczeństwo aplikacji za pomocą oceny ciągłego dostępu. Dowiesz się, jak zapewnić obsługę usługi Zero Trust w aplikacjach, które otrzymują autoryzację dostępu do zasobów podczas uzyskiwania tokenów dostępu z identyfikatora Entra firmy Microsoft.
Gdy identyfikator entra firmy Microsoft wystawia te tokeny dostępu, w pełni ocenia warunki tej autoryzacji. Identyfikator Entra firmy Microsoft wykonuje standardowe akcje autoryzacji, takie jak zapewnianie zgody, za każdym razem, gdy wystawia tokeny dla początkowych żądań tokenów i podczas odświeżania tokenów.
Identyfikator Entra firmy Microsoft używa głównie tokenów sieci Web JSON (JWT) do tokenów dostępu. Interfejs API zasobów może dekodować, weryfikować i interpretować zestaw JWT bez konieczności odwoływania się do identyfikatora Entra firmy Microsoft przy każdym wywołaniu interfejsu API zasobów. Standard JWT definiuje oświadczenie exp identyfikujące czas wygaśnięcia lub po wygaśnięciu, którego nie można zaakceptować tokenu JWT do przetwarzania. Domyślnie tokeny firmy Microsoft Entra wygasają od 60 do 90 minut po wystąpieniu problemu. Aplikacje muszą buforować i używać tokenów dostępu w tym okresie, w którym identyfikator Entra firmy Microsoft nie ocenia warunków autoryzacji.
Ocena warunków poza wystawianiem tokenu
Klienci firmy Microsoft obawiają się opóźnień między zmianami warunków użytkownika a wymuszaniem zmian zasad, gdy identyfikator Entra firmy Microsoft wystawia tokeny. Takie ograniczone podejście do okresu istnienia tokenu może obniżyć wydajność i niezawodność użytkownika bez eliminowania ryzyka.
Jednym z rozwiązań jest ocena warunków dla każdego wywołania chronionego zasobu. Najczęstszym sposobem implementacji tego wymuszania jest introspekcja tokenu. Introspekcja tokenu nie używa formatu JWT dla tokenu. Zamiast tego introspekcja tokenu używa nieprzezroczystego ciągu, którego interfejs API zasobów nie może interpretować. Interfejs API zasobów wysyła token do dostawcy tożsamości przy każdym wywołaniu. Następnie dostawca tożsamości sprawdza wszelkie warunki i zwraca dane, których interfejs API zasobu może użyć do ukończenia operacji. Ten proces może być kosztowny, ponieważ dodaje kolejne żądanie internetowe rundy do każdego wywołania interfejsu API.
Aby rozwiązać ten problem z oceną ciągłego dostępu (CAE), interfejs API zasobów może nasłuchiwać zdarzeń wypychanych przez identyfikator Entra firmy Microsoft o tokenach, które występują w przypadku problemów z identyfikatorem Entra firmy Microsoft dla interfejsu API zasobów. Na przykład gdy aplikacja wywołuje interfejs API programu Microsoft Graph, program Microsoft Graph może sprawdzić, czy odebrane zdarzenia z identyfikatora Entra firmy Microsoft dotyczące tokenu. Jeśli warunki oryginalnego uwierzytelniania są różne i użytkownik musi ponownie uwierzytelnić, program Microsoft Graph zwraca błąd do aplikacji wywołującej.
Identyfikator Entra firmy Microsoft wysyła zdarzenie do zasobów firmy Microsoft z włączoną obsługą caE, gdy wystąpi dowolne z tych zdarzeń:
- Wyłączone lub usunięte konto użytkownika
- Zmieniono lub zresetowaliśmy hasło użytkownika
- Włączone uwierzytelnianie wieloskładnikowe użytkownika
- Administracja istrator jawnie odwołuje wszystkie tokeny odświeżania dla użytkownika
- Ochrona tożsamości Microsoft Entra wykrywa podwyższony poziom ryzyka użytkownika
Ponadto zasoby firmy Microsoft obsługujące caE mogą wymuszać zasady dostępu warunkowego opartego na lokalizacji.
Zwiększanie bezpieczeństwa i odporności aplikacji przy użyciu środowiska CAE
Film wideo Na temat bezpieczniejszych i odpornych aplikacji opartych na programie Microsoft Entra Continuous Access Evaluation pokazuje tworzenie aplikacji klienckiej z obsługą caE.
Obejrzyj powyższą prezentację, aby dowiedzieć się, jak działają aplikacje podczas korzystania z nowoczesnego uwierzytelniania, wykonując następujące kroki:
- Jak działają aplikacje podczas korzystania z nowoczesnego uwierzytelniania
- Aplikacja pyta tożsamość firmy Microsoft o tokeny
- Aplikacja otrzymuje token dostępu
- Wywołanie interfejsu API/autoryzacji aplikacji za pomocą biblioteki JWT
- Introspekcji
- Udostępnione sygnały i zdarzenia
- Ocena zdarzeń krytycznych
- Ocena zasad dostępu warunkowego
- Wywoływana ocena ciągłego dostępu interfejsu API
- Wyzwanie dotyczące roszczeń
Ciągła ocena dostępu umożliwia autoryzację aplikacji w celu uzyskania dostępu do zasobu odwołanego poza okresem istnienia tokenu dostępu. Na przykład aplikacja ma token ważny przez 75 minut. Użytkownik ma stan wysokiego ryzyka z powodu naruszonych poświadczeń. Usługa CAE blokuje dostęp aplikacji do zasobu, co wymaga ponownego uwierzytelnienia użytkownika przed kontynuowaniem. W związku z tym caE osiąga swój podstawowy cel w celu poprawy bezpieczeństwa aplikacji.
Ponieważ dostęp do zasobu można odwołać poza okresem istnienia tokenu, identyfikator Entra firmy Microsoft może wystawiać tokeny przez dłuższy okres istnienia. W przypadku aplikacji obsługujących caE identyfikator Entra firmy Microsoft może wystawiać tokeny, które są ważne przez maksymalnie 28 godzin. Mimo że ten dłuższy okres istnienia tokenu nie poprawia odporności aplikacji, zmniejsza koszty aplikacji, ponieważ aplikacja musi żądać tokenów znacznie rzadziej.
CaE zwiększa odporność aplikacji na problemy, które aplikacja może napotkać podczas uzyskiwania tokenu dostępu z identyfikatora Entra firmy Microsoft. Jeśli to możliwe, identyfikator Entra firmy Microsoft wystawia czas odświeżania w ramach odpowiedzi tokenu zawierającej token dostępu. Biblioteki uwierzytelniania firmy Microsoft (MSAL) używają tego czasu odświeżania, aby aktywnie odświeżyć token. Czas odświeżania to część (zazwyczaj połowa) czasu wygaśnięcia tokenu. Tak długo, jak biblioteka MSAL może odświeżyć token dostępu przed upływem czasu wygaśnięcia tokenu, aplikacja jest odporna na problemy z odświeżaniem tokenu.
Na przykład gdy aplikacja obsługuje usługę CAE, identyfikator Entra firmy Microsoft wystawia token, który autoryzuje aplikację do wywołania programu Microsoft Graph, który jest ważny przez 24 godziny. Identyfikator Entra firmy Microsoft informuje bibliotekę MSAL o proaktywnym odświeżeniu tokenu po 12 godzinach. Jeśli biblioteka MSAL próbuje odświeżyć token dostępu nie powiedzie się, ponieważ oryginalny token dostępu jest nadal ważny przez 12 godzin, aplikacja jest bardziej odporna na problemy podczas uzyskiwania tokenów z identyfikatora Entra firmy Microsoft.
Implementowanie oceny ciągłego dostępu w aplikacji
Zgodnie z opisem w temacie Jak używać interfejsów API z włączoną ciągłą oceną dostępu w aplikacjach, zarówno aplikacja, jak i interfejs API zasobów, do których uzyskuje dostęp, musi być włączona funkcja CAE. Jednak przygotowanie kodu do korzystania z zasobu z włączoną usługą CAE nie uniemożliwia korzystania z interfejsów API, które nie są włączone w trybie CAE. Aplikacje, które nie korzystają z biblioteki MSAL, mogą dodawać obsługę wyzwań związanych z oświadczeniami, żądań oświadczeń i możliwości klienta do korzystania z usługi CAE.
Następne kroki
- Ciągła ocena dostępu dla tożsamości obciążeń w usłudze Microsoft Entra ID opisuje korzyści zabezpieczeń caE dla organizacji.
- Stosowanie zasad zerowego zaufania do zarządzania sesjami uwierzytelniania za pomocą ciągłej oceny dostępu opisuje sposób zabezpieczania sesji uwierzytelniania bez wpływu na środowisko użytkownika i produktywność i modernizację zarządzania sesjami.
- Zwiększenie odporności aplikacji uwierzytelniania i autoryzacji, które tworzysz, wprowadza serię artykułów, które zawierają wskazówki dotyczące zwiększania odporności w aplikacjach przy użyciu Platforma tożsamości Microsoft i identyfikatora Microsoft Entra. Zawierają one najlepsze rozwiązania dotyczące używania tokenów i wywoływania zasobów.
- Tworzenie aplikacji z podejściem Zero Trust do tożsamości zawiera omówienie uprawnień i najlepszych rozwiązań dotyczących dostępu.
- Integrowanie aplikacji z identyfikatorem Entra firmy Microsoft i Platforma tożsamości Microsoft ułatwia deweloperom tworzenie i integrowanie aplikacji, które specjalista IT może zabezpieczyć w przedsiębiorstwie.