Zabezpieczanie aplikacji przy użyciu oceny ciągłego dostępu

Ten artykuł pomoże Ci, 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 zapewnienie zgody dla aplikacji, za każdym razem, gdy wystawia tokeny dla początkowych żądań tokenów i gdy odświeża tokeny.

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.

Ocenianie warunków poza wystawianiem tokenu

Klienci firmy Microsoft wyrazili obawy dotyczące 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 odebrał zdarzenia z identyfikatora Entra firmy Microsoft na temat tokenu. Jeśli warunki oryginalnego uwierzytelniania uległy zmianie, a 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ń:

  • Usunięte lub wyłączone 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 zablokuje 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 będzie musiała żą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 wyda 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żliwi 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