Odporne interfejsy z procesami zewnętrznymi

W tym artykule przedstawiono wskazówki dotyczące planowania i implementowania interfejsów API RESTful w podróży użytkownika oraz zwiększenia odporności aplikacji na błędy interfejsu API.

Image shows interfaces with external process components

Zapewnianie prawidłowego umieszczania interfejsów API

Zasady platformy IEF (Identity Experience Framework) umożliwiają wywoływanie systemu zewnętrznego przy użyciu profilu technicznego interfejsu API RESTful. Systemy zewnętrzne nie są kontrolowane przez środowisko uruchomieniowe IEF i są potencjalnym punktem awarii.

Jak zarządzać systemami zewnętrznymi przy użyciu interfejsów API

  • Podczas wywoływania interfejsu w celu uzyskania dostępu do określonych danych sprawdź, czy dane będą podejmować decyzje dotyczące uwierzytelniania. Oceń, czy informacje są istotne dla podstawowych funkcji aplikacji. Na przykład e-commerce a dodatkowe funkcje, takie jak administracja. Jeśli informacje nie są potrzebne do uwierzytelniania i są wymagane tylko w przypadku scenariuszy pomocniczych, rozważ przeniesienie wywołania do logiki aplikacji.

  • Jeśli dane niezbędne do uwierzytelniania są stosunkowo statyczne i małe i nie mają innego powodu biznesowego, aby zostały zewnętrznie z katalogu, rozważ ich posiadanie w katalogu.

  • Usuń wywołania interfejsu API ze wstępnie uwierzytelnionej ścieżki, jeśli jest to możliwe. Jeśli nie możesz, musisz umieścić ścisłe zabezpieczenia przed atakami typu "odmowa usługi" (DoS) i rozproszoną odmową usługi (DDoS) przed interfejsami API. Osoby atakujące mogą załadować stronę logowania i spróbować zalać interfejs API atakami DoS i wyłączyć aplikację. Na przykład przy użyciu funkcji CAPTCHA podczas logowania przepływ rejestracji może pomóc.

  • Użyj łączników interfejsu API wbudowanego przepływu użytkownika rejestracji wszędzie tam, gdzie jest to możliwe, aby zintegrować z internetowymi interfejsami API po sfederowaniu z dostawcą tożsamości podczas rejestracji lub przed utworzeniem użytkownika. Ponieważ przepływy użytkowników są już szeroko testowane, prawdopodobnie nie trzeba wykonywać testów na poziomie przepływu użytkownika, wydajności ani testowania skalowania. Nadal musisz przetestować aplikacje pod kątem funkcjonalności, wydajności i skalowania.

  • Profile techniczne interfejsu API RESTful usługi Azure AD B2C nie zapewniają żadnego zachowania buforowania. Zamiast tego profil interfejsu API RESTful implementuje logikę ponawiania i limit czasu wbudowany w zasady.

  • W przypadku interfejsów API, które wymagają zapisywania danych, należy utworzyć kolejkę zadań podrzędnych do wykonywania takich zadań przez proces roboczy w tle. Usługi, takie jak kolejki platformy Azure, mogą być używane. Dzięki temu interfejs API będzie wydajnie zwracany i zwiększa wydajność wykonywania zasad.

Obsługa błędów interfejsu API

Ponieważ interfejsy API działają poza systemem usługi Azure AD B2C, konieczne jest prawidłowe obsługiwanie błędów w profilu technicznym. Upewnij się, że użytkownik końcowy jest odpowiednio poinformowany, a aplikacja może bezpiecznie poradzić sobie z niepowodzeniem.

Jak bezpiecznie obsługiwać błędy interfejsu API

  • Interfejs API może zakończyć się niepowodzeniem z różnych powodów, co sprawia, że aplikacja jest odporna na takie błędy. Zwróć komunikat o błędzie HTTP 4XX, jeśli interfejs API nie może ukończyć żądania. W zasadach usługi Azure AD B2C spróbuj bezpiecznie obsłużyć niedostępność interfejsu API i być może wyrenderować ograniczone środowisko.

  • Obsługa błędów przejściowych w sposób bezproblemowy. Profil interfejsu API RESTful umożliwia konfigurowanie komunikatów o błędach dla różnych wyłączników.

  • Proaktywne monitorowanie i używanie ciągłej integracji/ciągłego dostarczania (CICD) umożliwia rotację poświadczeń dostępu do interfejsu API, takich jak hasła i certyfikaty używane przez aparat profilu technicznego.

API Management — najlepsze rozwiązania

Podczas wdrażania interfejsów API REST i konfigurowania profilu technicznego RESTful zalecane najlepsze rozwiązania pomogą Ci nie popełniać typowych błędów i pomijanych rzeczy.

Jak zarządzać interfejsami API

  • Usługa API Management (APIM) publikuje interfejsy API, zarządza nimi i analizuje je. Usługa APIM obsługuje również uwierzytelnianie w celu zapewnienia bezpiecznego dostępu do usług zaplecza i mikrousług. Użyj bramy interfejsu API do skalowania wdrożeń interfejsu API, buforowania i równoważenia obciążenia.

  • Zaleceniem jest uzyskanie odpowiedniego tokenu na początku podróży użytkownika zamiast wywoływania wielu razy dla każdego interfejsu API i zabezpieczania interfejsu API usługi Azure APIM.

Następne kroki