Przepływ logowania aplikacji za pomocą Platforma tożsamości Microsoft

W tym temacie omówiono podstawowy przepływ logowania dla aplikacji internetowych, klasycznych i mobilnych korzystających z Platforma tożsamości Microsoft. Zobacz Przepływy uwierzytelniania i scenariusze aplikacji, aby dowiedzieć się więcej na temat scenariuszy logowania obsługiwanych przez Platforma tożsamości Microsoft.

Przepływ logowania aplikacji internetowej

Gdy użytkownik przejdzie w przeglądarce do aplikacji internetowej, wystąpią następujące czynności:

  • Aplikacja internetowa określa, czy użytkownik jest uwierzytelniony.
  • Jeśli użytkownik nie jest uwierzytelniony, aplikacja internetowa deleguje do identyfikatora Entra firmy Microsoft, aby zalogować się do użytkownika. To logowanie będzie zgodne z zasadami organizacji, co może oznaczać monit o wprowadzenie poświadczeń przez użytkownika przy użyciu uwierzytelniania wieloskładnikowego (czasami określanego jako uwierzytelnianie dwuskładnikowe lub 2FA) lub nieużywanie hasła w ogóle (na przykład przy użyciu funkcji Windows Hello).
  • Użytkownik jest proszony o wyrażenie zgody na dostęp, którego potrzebuje aplikacja kliencka. Dlatego aplikacje klienckie muszą być zarejestrowane w usłudze Microsoft Entra ID, aby Platforma tożsamości Microsoft mogły dostarczać tokeny reprezentujące dostęp, na który użytkownik wyraził zgodę.

Po pomyślnym uwierzytelnieniu użytkownika:

  • Platforma tożsamości Microsoft wysyła token do aplikacji internetowej.
  • Plik cookie jest zapisywany, skojarzony z domeną Microsoft Entra, która zawiera tożsamość użytkownika w pliku cookie przeglądarki jar. Przy następnym użyciu przeglądarki do przejścia do punktu końcowego autoryzacji Platforma tożsamości Microsoft przeglądarka wyświetla plik cookie, aby użytkownik nie musiał się ponownie zalogować. Jest to również sposób osiągnięcia logowania jednokrotnego. Plik cookie jest generowany przez identyfikator Entra firmy Microsoft i może być rozumiany tylko przez identyfikator Entra firmy Microsoft.
  • Następnie aplikacja internetowa weryfikuje token. Jeśli walidacja zakończy się pomyślnie, aplikacja internetowa wyświetli chronioną stronę i zapisze plik cookie sesji w pliku cookie przeglądarki. Gdy użytkownik przejdzie do innej strony, aplikacja internetowa wie, że użytkownik jest uwierzytelniany na podstawie pliku cookie sesji.

Poniższy diagram sekwencji podsumowuje tę interakcję:

web app authentication process

Jak aplikacja internetowa określa, czy użytkownik jest uwierzytelniony

Deweloperzy aplikacji internetowej mogą wskazać, czy wszystkie lub tylko niektóre strony wymagają uwierzytelniania. Na przykład w ASP.NET/ASP.NET Core jest to wykonywane przez dodanie atrybutu [Authorize] do akcji kontrolera.

Ten atrybut powoduje, że ASP.NET sprawdzić obecność pliku cookie sesji zawierającego tożsamość użytkownika. Jeśli plik cookie nie jest obecny, ASP.NET przekierowuje uwierzytelnianie do określonego dostawcy tożsamości. Jeśli dostawca tożsamości to microsoft Entra ID, aplikacja internetowa przekierowuje uwierzytelnianie do https://login.microsoftonline.com, w którym zostanie wyświetlone okno dialogowe logowania.

Jak aplikacja internetowa deleguje logowanie się do Platforma tożsamości Microsoft i uzyskuje token

Uwierzytelnianie użytkownika odbywa się za pośrednictwem przeglądarki. Protokół OpenID używa standardowych komunikatów protokołu HTTP.

  • Aplikacja internetowa wysyła do przeglądarki adres HTTP 302 (przekierowanie) w celu użycia Platforma tożsamości Microsoft.
  • Po uwierzytelnieniu użytkownika Platforma tożsamości Microsoft wysyła token do aplikacji internetowej przy użyciu przekierowania za pośrednictwem przeglądarki.
  • Przekierowanie jest udostępniane przez aplikację internetową w postaci identyfikatora URI przekierowania. Ten identyfikator URI przekierowania jest zarejestrowany w obiekcie aplikacji Microsoft Entra. Może istnieć kilka identyfikatorów URI przekierowania, ponieważ aplikacja może zostać wdrożona pod kilkoma adresami URL. Dlatego aplikacja internetowa będzie również musiała określić identyfikator URI przekierowania do użycia.
  • Identyfikator entra firmy Microsoft sprawdza, czy identyfikator URI przekierowania wysłany przez aplikację internetową jest jednym z zarejestrowanych identyfikatorów URI przekierowania dla aplikacji.

Przepływ logowania aplikacji klasycznych i mobilnych

Przepływ opisany powyżej ma zastosowanie, z niewielkimi różnicami, do aplikacji klasycznych i mobilnych.

Aplikacje klasyczne i mobilne mogą używać osadzonej kontrolki sieci Web lub przeglądarki systemowej do uwierzytelniania. Na poniższym diagramie pokazano, jak aplikacja klasyczna lub mobilna używa biblioteki Microsoft Authentication Library (MSAL) do uzyskiwania tokenów dostępu i wywoływania internetowych interfejsów API.

Desktop app how it appears to be

Biblioteka MSAL używa przeglądarki do pobierania tokenów. Podobnie jak w przypadku aplikacji internetowych uwierzytelnianie jest delegowane do Platforma tożsamości Microsoft.

Ponieważ identyfikator Entra firmy Microsoft zapisuje ten sam plik cookie tożsamości w przeglądarce, co w przypadku aplikacji internetowych, jeśli aplikacja natywna lub mobilna używa przeglądarki systemowej, natychmiast uzyska logowanie jednokrotne z odpowiednią aplikacją internetową.

Domyślnie biblioteka MSAL używa przeglądarki systemowej. Wyjątkiem są aplikacje klasyczne .NET Framework, w których jest używana osadzona kontrolka w celu zapewnienia bardziej zintegrowanego środowiska użytkownika.

Następne kroki

W innych tematach dotyczących uwierzytelniania i autoryzacji podstawowe informacje:

  • Zobacz Uwierzytelnianie a autoryzacja, aby dowiedzieć się więcej na temat podstawowych pojęć związanych z uwierzytelnianiem i autoryzacją w Platforma tożsamości Microsoft.
  • Zobacz Tokeny zabezpieczające, aby dowiedzieć się, jak tokeny dostępu, tokeny odświeżania i tokeny identyfikatorów są używane w uwierzytelnianiu i autoryzacji.
  • Zobacz Model aplikacji, aby dowiedzieć się więcej o procesie rejestrowania aplikacji, aby umożliwić integrację z Platforma tożsamości Microsoft.
  • Zobacz Zabezpieczanie aplikacji i interfejsów API przez weryfikowanie oświadczeń, aby dowiedzieć się, jak bezpiecznie używać oświadczeń tokenu na potrzeby logiki autoryzacji w aplikacjach.

Aby dowiedzieć się więcej o przepływie logowania do aplikacji:

  • Zobacz Przepływy uwierzytelniania i scenariusze aplikacji, aby dowiedzieć się więcej na temat innych scenariuszy uwierzytelniania użytkowników obsługiwanych przez Platforma tożsamości Microsoft.
  • Zobacz biblioteki MSAL, aby dowiedzieć się więcej o bibliotekach firmy Microsoft, które ułatwiają tworzenie aplikacji, które współpracują z kontami Microsoft, kontami Microsoft Entra i użytkownikami usługi Azure AD B2C we wszystkich, usprawnionych modelach programowania.