M365Con 2027 – bezpłatna konferencja online · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Najlepsze praktyki uwierzytelniania: unikanie błędów 401 i 403 w Dynamics 365

By ·

Awarie uwierzytelniania mogą całkowicie zatrzymać Twoje integracje. Niezależnie od tego, czy budujesz niestandardowe przepływy pracy, synchronizujesz dane między systemami zewnętrznymi, czy wdrażasz zautomatyzowane procesy korporacyjne, natknięcie się na błędy uwierzytelniania może wykoleić harmonogram projektu. Ten wpis pokazuje, jak prawidłowo zarządzać wygasaniem tokenów, konfigurować jednostki

Automatically translated with AI from the original post. Read the English original

▶ BLOGAuthentication BestPractices: Avoiding 401…M365.FM
Titelbild: Authentication Best Practices: Avoiding 401 and 403 Errors in Dynamics 365

Awarie uwierzytelniania mogą całkowicie zatrzymać Twoje integracje. Niezależnie od tego, czy budujesz niestandardowe przepływy pracy, synchronizujesz dane między systemami zewnętrznymi, czy wdrażasz zautomatyzowane procesy korporacyjne, natknięcie się na błędy uwierzytelniania może wykoleić harmonogram projektu. Ten wpis pokazuje, jak prawidłowo zarządzać wygasaniem tokenów, konfigurować jednostki usługi w Microsoft Entra ID i zabezpieczać poświadczenia, aby wywołania API działały sprawnie.

Wprowadzenie do uwierzytelniania w Dynamics 365

Podczas tworzenia integracji z Microsoft Dynamics 365 podstawowym krokiem jest ustanowienie bezpiecznego i niezawodnego połączenia. Bez właściwego mechanizmu uwierzytelniania Twoje aplikacje nie będą mogły komunikować się z zapleczem Common Data Service lub Dataverse. Wielu programistów i administratorów systemów traktuje jednak uwierzytelnianie jako zadanie, które konfiguruje się raz i zapomina. Takie niedopatrzenie często prowadzi do nieoczekiwanych awarii w przyszłości. Zrozumienie, jak platforma tożsamości Microsoft obsługuje tokeny zabezpieczeń, rejestracje aplikacji i uprawnienia użytkowników, ma kluczowe znaczenie dla utrzymania solidnych integracji klasy korporacyjnej.

Zrozumienie błędów 401 i 403 w wywołaniach API

Zanim przejdziemy do strategii konfiguracji, warto rozróżnić dwie najczęstsze przeszkody związane z uwierzytelnianiem i autoryzacją: błąd 401 Unauthorized oraz błąd 403 Forbidden.

Odpowiedź 401 Unauthorized oznacza, że żądanie nie zawiera ważnych poświadczeń uwierzytelniających. Zwykle dzieje się tak, gdy token dostępu wygasł, został zmodyfikowany lub w ogóle nie został dołączony do nagłówka żądania HTTP. Twój kod próbuje otworzyć zamknięte drzwi bez klucza.

Z kolei błąd 403 Forbidden oznacza, że serwer wie, kim jesteś, ale nie masz wymaganych uprawnień do zasobu, do którego próbujesz uzyskać dostęp. Masz klucz, ale nie pasuje on do zamka tego konkretnego pomieszczenia. Zazwyczaj wskazuje to na źle skonfigurowane uprawnienia jednostki usługi lub brakujące role API w Microsoft Entra ID i profilach zabezpieczeń Dynamics 365.

Konfigurowanie jednostek usługi w Microsoft Entra ID

Aby zapewnić bezpieczną, nadzorowaną przez człowieka komunikację w tle z Dynamics 365, unikaj używania poświadczeń użytkownika, które są podatne na wygasanie haseł i monity uwierzytelniania wieloskładnikowego (MFA). Zamiast tego musisz skonfigurować jednostkę usługi za pośrednictwem rejestracji aplikacji w Microsoft Entra ID (dawniej Azure Active Directory).

Zacznij od zarejestrowania nowej aplikacji w centrum administracyjnym Microsoft Entra. Po rejestracji wygeneruj bezpieczny sekret klienta lub, co jest zalecane, prześlij certyfikat publiczny do uwierzytelniania opartego na certyfikatach, które zapewnia wyższy poziom bezpieczeństwa. Następnie przejdź do sekcji uprawnień interfejsu API i przypisz odpowiednie uprawnienia Dynamics 365, takie jak user_impersonation, lub dostęp na poziomie aplikacji, zależnie od wymagań architektury. Na koniec upewnij się, że udzielasz zgody administratora, aby aplikacja mogła działać autonomicznie, bez konieczności interaktywnego logowania użytkowników.

Zarządzanie wygasaniem tokenów i automatycznym odnawianiem

Tokeny dostępu OAuth 2.0 mają ograniczony czas ważności ze względów bezpieczeństwa. Gdy token dostępu wygaśnie, każde kolejne wywołanie API natychmiast zwróci błąd 401. Aby integracje nie przestały działać, kod aplikacji musi prawidłowo obsługiwać czas życia tokenów.

Zamiast żądać nowego tokenu przy każdym pojedynczym żądaniu API, co generuje niepotrzebne opóźnienia, aplikacja powinna przechowywać token w pamięci podręcznej i śledzić znacznik czasu jego wygaśnięcia. Przed wysłaniem żądania aplikacja sprawdza, czy token wkrótce wygaśnie lub już wygasł. Jeśli tak, przed wykonaniem głównego wywołania API żąda nowego tokenu, korzystając z przepływu poświadczeń klienta. Solidna logika buforowania i proaktywnego odnawiania eliminuje nieoczekiwane zakłócenia spowodowane wygasaniem tokenów.

Zabezpieczanie poświadczeń i stosowanie zasady najmniejszych uprawnień

Wpisywanie sekretów klienta, nazw użytkowników lub ciągów połączeń bezpośrednio w kodzie źródłowym stanowi poważne zagrożenie dla bezpieczeństwa. Jeśli repozytorium zostanie przejęte, złośliwi użytkownicy natychmiast uzyskają dostęp do Twojego środowiska Dynamics 365. Zawsze przechowuj wrażliwe poświadczenia w bezpiecznym, klasy korporacyjnej magazynie, takim jak Azure Key Vault.

Ponadto ściśle przestrzegaj zasady najmniejszych uprawnień (least privilege). Nie przypisuj roli administratora globalnego ani szerokich uprawnień do dostosowywania systemu jednostce usługi, chyba że jest to absolutnie konieczne. Precyzyjnie zawężaj uprawnienia aplikacji do tabel i operacji wymaganych przez konkretne zadanie integracyjne. Jeśli jednostka usługi potrzebuje jedynie odczytu i zapisu rekordów Konto i Kontakt, ogranicz jej rolę zabezpieczeń w usłudze Dynamics 365 wyłącznie do tych encji.

Obsługa ograniczeń przepustowości API i implementacja logiki ponawiania

Nawet przy bezbłędnym uwierzytelnianiu intensywne obciążenie może uruchomić limity ochrony usługi nałożone przez Dynamics 365. Gdy przekroczysz limity częstotliwości lub progi jednoczesnych żądań, serwer odpowiada kodem stanu HTTP 429 Too Many Requests.

Aby uodpornić integrację na błędy, musisz zaimplementować logikę ponawiania w połączeniu z algorytmem wykładniczego opóźnienia (exponential backoff). Gdy aplikacja otrzyma stan 429, powinna odczytać nagłówek Retry-After, wstrzymać wykonanie na wskazany czas, a następnie ponowić żądanie. Sprawdzone biblioteki odporności, na przykład Polly dla .NET, upraszczają konfigurowanie automatycznych ponowień i wyłączników obwodu (circuit breaker) dla przejściowych błędów uwierzytelniania oraz ograniczania przepustowości.

Monitorowanie i rejestrowanie wydajności uwierzytelniania

Widoczność to najlepsza ochrona przed nieoczekiwanymi awariami integracji. Nie naprawisz tego, czego nie widzisz. Kompleksowe logowanie i monitorowanie pozwala śledzić wzorce uwierzytelniania, wcześnie wykrywać błędy odnawiania tokenów i zauważać anomalie, zanim wpłyną na użytkowników końcowych.

Zintegruj narzędzia do monitorowania wydajności aplikacji (APM) lub Azure Application Insights z rozwiązaniami integracyjnymi. Śledź metryki, takie jak czas odpowiedzi uwierzytelniania, częstotliwość błędów 401 i 403 oraz czas pozyskiwania tokenów. Konfigurowanie proaktywnych alertów o skokach liczby błędów uwierzytelniania gwarantuje, że zespół deweloperski lub operacyjny zostanie natychmiast powiadomiony, gdy konfiguracja poświadczeń ulegnie rozjechaniu lub konta usługowe napotkają blokady uprawnień.

Podsumowanie i najlepsze praktyki

Opanowanie uwierzytelniania w Dynamics 365 jest podstawowym wymogiem budowy niezawodnych, bezpiecznych i wydajnych integracji korporacyjnych. Dzięki prawidłowej konfiguracji jednostek usługi w Microsoft Entra ID, aktywnemu zarządzaniu cyklem życia tokenów, zabezpieczaniu sekretów oraz egzekwowaniu zasady najmniejszych uprawnień możesz całkowicie wyeliminować frustrujące błędy 401 i 403. W połączeniu z inteligentną logiką ponawiania i solidnym logowaniem Twoje integracje pozostaną odporne nawet przy dużym obciążeniu.

Aby dodatkowo zoptymalizować architekturę integracji i zadbać o jak najwydajniejsze wywołania, koniecznie zapoznaj się z powiązanym odcinkiem podcastu oraz przeczytaj artykuł Speed Dynamics 365 API Calls with Better OData Queries. Połączenie bezpiecznych praktyk uwierzytelniania z dopracowanymi zapytaniami znacząco podniesie wydajność i niezawodność Twoich rozwiązań Microsoft 365.

Często zadawane pytania

Co powoduje błąd 401 Unauthorized w interfejsach API Dynamics 365?

Błąd 401 niemal zawsze wynika z nieprawidłowego, brakującego lub wygasłego tokenu dostępu. Aplikacja musi odświeżyć token, używając prawidłowych poświadczeń klienta, zanim wykona wywołanie API.

Jak naprawić błąd 403 Forbidden?

Błąd 403 oznacza, że uwierzytelnianie zostało rozpoznane, ale jednostka usługi lub konto użytkownika nie ma wymaganych uprawnień w usłudze Dynamics 365. Sprawdź przypisane role zabezpieczeń oraz uprawnienia API w Microsoft Entra.

Czy do integracji API należy używać kont użytkowników czy jednostek usługi?

Do integracji działających w tle zawsze używaj jednostek usługi (rejestracji aplikacji) z przepływem poświadczeń klienta OAuth 2.0. Konta użytkowników są podatne na zmiany haseł, wygasanie oraz przerwy spowodowane uwierzytelnianiem wieloskładnikowym.

Gdzie należy przechowywać sekrety klienta API?

Sekrety klienta nigdy nie powinny być przechowywane w plikach konfiguracyjnych z tekstem jawnym ani w kodzie źródłowym. Zawsze przechowuj je bezpiecznie w dedykowanym menedżerze sekretów, takim jak Azure Key Vault.

Dynamics 365 Microsoft Entra ID Dataverse Multifactor authentication (MFA) Microsoft Entra

Related articles

RSS