Uwierzytelnianie użytkowników w usłudze Zero Trust

Ten artykuł ułatwia deweloperom poznanie najlepszych rozwiązań dotyczących uwierzytelniania użytkowników aplikacji w ramach tworzenia aplikacji Zero Trust. Zawsze zwiększaj bezpieczeństwo aplikacji przy użyciu zasad zerowego zaufania dotyczących najniższych uprawnień i jawnego weryfikowania.

Tokeny identyfikatorów w uwierzytelnianiu użytkownika

Jeśli potrzebujesz uwierzytelnienia użytkownika w aplikacji, a nie zbierania nazwy użytkownika i hasła, aplikacja może zażądać tokenu tożsamości (ID). Uwierzytelnianie użytkowników za pośrednictwem Platforma tożsamości Microsoft pozwala uniknąć zagrożeń bezpieczeństwa występujących, gdy aplikacja zachowuje poświadczenia użytkownika. Jeśli żądasz tokenów identyfikatorów, jeśli zły aktor narusza lub narusza aplikację, nie ma żadnych nazw użytkowników i odpowiednich haseł, wpisów tajnych i certyfikatów w aplikacji.

Token identyfikatora Platforma tożsamości Microsoft jest częścią standardu OpenID Połączenie (OIDC), który określa tokeny identyfikatorów jako tokeny sieci Web JSON (JWT). Długi ciąg JWT składa się z trzech składników:

  1. Oświadczenia nagłówka. Oświadczenia nagłówka obecne w tokenach identyfikatorów obejmują typ (oświadczenie typu), alg (algorytm podpisywania tokenu) i kid (odcisk palca klucza publicznego w celu zweryfikowania podpisu tokenu).
  2. Oświadczenia ładunku. Ładunek lub treść (środkowa część tokenu internetowego JSON) zawiera serię par atrybutów nazw. Standard wymaga, aby oświadczenie z iss (nazwą wystawcy) trafiało do aplikacji, która wystawiła oświadczenie ( audoświadczenie , lub odbiorców).
  3. Podpis. Identyfikator Firmy Microsoft Entra generuje podpis tokenu, którego aplikacje mogą używać do sprawdzania, czy token jest niezmodyfikowany i możesz mu zaufać.

Poniższy przykład tokenu identyfikatora przedstawia informacje o użytkowniku i potwierdza uwierzytelnianie w celu korzystania z aplikacji.

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "1LTMzakihiRla_8z2BEJVXeWMqo"
}.
{
  "ver": "2.0",
  "iss": "https://login.microsoftonline.com/3338040d-6c67-4c5b-b112-36a304b66dad/v2.0",
  "aud": "6cb04018-a3f5-46a7-b995-940c78f5aef3",
  "exp": 1536361411,
  "iat": 1536274711,
  "nbf": 1536274711,
  "sub": "AAAAAAAAAAAAAAAAAAAAAIkzqFVrSaSaFHy782bbtaQ",
  "name": "Abe Lincoln",
  "preferred_username": "AbeLi@microsoft.com",
  "oid": "00000000-0000-0000-66f3-3332eca7ea81",
  "tid": "3338040d-6c67-4c5b-b112-36a304b66dad",
}.
.[Signature]

Tokeny identyfikatorów w zarządzaniu dostępem

Aby otrzymać identyfikator aplikacji (klienta), zarejestruj aplikację w Platforma tożsamości Microsoft. Po otrzymaniu tokenu z oświadczeniem odbiorców (aud), który odpowiada identyfikatorowi klienta aplikacji, zidentyfikowany użytkownik w tokenie został uwierzytelniony w aplikacji. Administratorzy IT mogą zezwolić wszystkim użytkownikom w dzierżawie na korzystanie z aplikacji. Mogą zezwolić na grupę, której użytkownik jest członkiem do korzystania z aplikacji.

Jeśli otrzymasz token, którego oświadczenie odbiorców różni się od identyfikatora klienta aplikacji, natychmiast odrzuć token. Użytkownik nie uwierzytelnił się, logując się do aplikacji. Zalogowali się do innej aplikacji. Zawsze upewnij się, że użytkownik ma uprawnienia do korzystania z aplikacji.

Te szczegóły oświadczeń są ważne w uwierzytelnianiu użytkownika:

  • Token internetowy JSON jest prawidłowy, dopóki nie wygaśnie. Oświadczenie exp (wygaśnięcie) informuje o wygaśnięciu tokenu. Jeśli bieżąca godzina jest wcześniejsza niż czas w oświadczeniu exp , token jest prawidłowy.
  • Nie należy traktować użytkownika jako uwierzytelniony przed upływem czasu określonego w oświadczeniu nbf (nie przed upływem czasu). Czasy nbf i exp tokenu definiują prawidłowy okres istnienia tokenu. Gdy zbliża się czas wygaśnięcia, upewnij się, że otrzymasz nowy token identyfikatora.
  • ( sub oświadczenie podmiotu) jest unikatowym identyfikatorem użytkownika aplikacji. Ten sam użytkownik ma inne sub oświadczenie dla innych aplikacji. Jeśli chcesz przechowywać dane, aby skojarzyć je z użytkownikiem i uniemożliwić osobie atakującej utworzenie tego skojarzenia, użyj oświadczenia podmiotu. Ponieważ nie uwidacznia tożsamości firmy Microsoft entra użytkownika, jest to najbardziej prywatny sposób kojarzenia danych z użytkownikiem. Oświadczenie sub jest niezmienne.
  • Jeśli chcesz udostępnić informacje w wielu aplikacjach, użyj kombinacji oświadczeń identyfikatora dzierżawy (tid) i identyfikatora obiektu (oid), które są unikatowe dla użytkownika. Połączony identyfikator dzierżawy i identyfikator obiektu są niezmienne.
  • Bez względu na to, co się stanie z tożsamością osoby fizycznej, suboświadczenia , oidi tid pozostają niezmienne. Wszystko o użytkowniku może się zmienić i nadal możesz kluczować dane od identyfikacji użytkownika na podstawie tematu lub połączonych tid i oid oświadczeń.

Uwierzytelnianie za pomocą OIDC

Aby zademonstrować uwierzytelnianie użytkowników, przyjrzyjmy się aplikacjom, które używają OIDC do uwierzytelniania użytkownika. Te same zasady dotyczą aplikacji korzystających z protokołu SAML lub WS-Federation.

Aplikacja uwierzytelnia użytkownika, gdy aplikacja żąda tokenu identyfikatora z Platforma tożsamości Microsoft. Obciążenia (aplikacje, które nie mają użytkowników obecnych, ale raczej działają jako usługi, procesy w tle, demony) pomiń ten krok.

Zawsze należy najpierw najpierw poprosić o ten token w trybie dyskretnym. Aby dyskretnie uzyskać token w bibliotekach uwierzytelniania firmy Microsoft (MSAL), aplikacja może zacząć od AcquireTokenSilent metody . Jeśli aplikacja może uwierzytelniać się bez zakłócania działania użytkownika, otrzymuje żądany token identyfikatora.

Jeśli Platforma tożsamości Microsoft nie może ukończyć żądania bez interakcji z użytkownikiem, aplikacja musi wrócić do metody MSALAcquireTokenInteractive. Aby interaktywnie uzyskać token, wykonaj żądanie, otwierając powierzchnię internetową na adres w domenie https://login.microsoftonline.com .

Z tego obszaru internetowego użytkownik ma prywatną konwersację z Platforma tożsamości Microsoft. Twoja aplikacja nie ma wglądu w tę konwersację ani nie ma żadnej kontroli nad konwersacją. Platforma tożsamości Microsoft może poprosić o podanie identyfikatora użytkownika i hasła, uwierzytelniania wieloskładnikowego (MFA), uwierzytelniania bez hasła lub innej interakcji uwierzytelniania skonfigurowanej przez administratora IT lub użytkownika.

Aplikacja otrzyma token identyfikatora po wykonaniu wymaganych kroków uwierzytelniania przez użytkownika. Gdy aplikacja odbierze token, możesz mieć pewność, że Platforma tożsamości Microsoft uwierzytelnił użytkownika. Jeśli aplikacja nie otrzyma tokenu identyfikatora, Platforma tożsamości Microsoft nie uwierzytelnił użytkownika. Nie zezwalaj nieuwierzytelnionym użytkownikom na kontynuowanie zabezpieczonych obszarów aplikacji.

Najlepszym rozwiązaniem jest utworzenie sesji dla użytkownika po otrzymaniu tokenu identyfikatora od firmy Microsoft Entra ID. W tokenie identyfikatora odbieranym przez aplikację oświadczenie wygaśnięcia (exp) z sygnaturą czasową systemu Unix. Ten znacznik czasu określa czas wygaśnięcia lub po wygaśnięciu, dla którego aplikacja nie może zaakceptować zestawu JWT do przetwarzania. Użyj tego czasu wygaśnięcia tokenu, aby zwiększyć okres istnienia sesji użytkownika. Oświadczenie exp odgrywa kluczową rolę w zachowaniu jawnie zweryfikowanego użytkownika przed aplikacją z odpowiednimi uprawnieniami i odpowiednim czasem.

obsługa Logowanie jednokrotne

Uwierzytelnianie logowania jednokrotnego (SSO) umożliwia użytkownikom logowanie się przy użyciu jednego zestawu poświadczeń w wielu niezależnych systemach oprogramowania. Logowanie jednokrotne umożliwia deweloperom aplikacji, aby nie wymagać od użytkownika logowania się do każdej aplikacji oddzielnie i wielokrotnie. W ramach logowania jednokrotnego deweloperzy zapewniają, że wszystkie aplikacje na urządzeniu użytkownika współużytkuje powierzchnię internetową, która uwierzytelnia użytkownika. Artefakty na powierzchni internetowej (takie jak stan sesji i pliki cookie) po pomyślnym zalogowaniu się na dysku uwierzytelniania.

Jak pokazano na poniższym diagramie, najprostszym przypadkiem użycia udostępnionej powierzchni internetowej jest aplikacja działająca w przeglądarce internetowej (np. Microsoft Edge, Google Chrome, Firefox, Safari). Karty przeglądarki współużytkuje stan logowania jednokrotnego.

Diagram przedstawia udostępniony scenariusz powierzchni internetowej, w którym aplikacja działa w przeglądarce.

Platforma tożsamości Microsoft zarządza stanem logowania jednokrotnego w dowolnej określonej przeglądarce, chyba że użytkownik ma otwarte inne przeglądarki na tym samym urządzeniu. W systemie Windows 10 i nowszych Platforma tożsamości Microsoft natywnie obsługuje logowanie jednokrotne przeglądarki w programie Internet Explorer i przeglądarce Microsoft Edge. Gdy użytkownik zalogował się do systemu Windows, zakwaterowanie w Przeglądarce Google Chrome (za pośrednictwem rozszerzenia konta systemu Windows 10) i w Mozilla Firefox v91+ (za pośrednictwem ustawienia przeglądarki) zezwala każdej przeglądarce na udostępnianie stanu logowania jednokrotnego.

Jak pokazano na poniższym diagramie, przypadek użycia aplikacji natywnej jest bardziej skomplikowany.

Diagram przedstawia skomplikowany przypadek użycia aplikacji natywnej w przeglądarkach osadzonych bez logowania jednokrotnego.

Podejście brokera uwierzytelniania

Typowym wzorcem jest, aby każda aplikacja natywna miała własny osadzony element WebView, który uniemożliwia mu uczestnictwo w logowaniu jednokrotnym. Aby rozwiązać ten scenariusz, identyfikator entra firmy Microsoft używa podejścia brokera uwierzytelniania (brokera uwierzytelniania) dla aplikacji natywnych, jak pokazano na poniższym diagramie.

Diagram ilustruje użycie brokerów uwierzytelniania dla aplikacji natywnych.

Po utworzeniu brokera uwierzytelniania aplikacje wysyłają żądania uwierzytelniania do brokera zamiast bezpośrednio do Platforma tożsamości Microsoft. W ten sposób broker staje się wspólną powierzchnią dla całego uwierzytelniania na urządzeniu.

Oprócz udostępniania powierzchni udostępnionej broker uwierzytelniania zapewnia inne korzyści. W przypadku wdrażania platformy Zero Trust przedsiębiorstwa mogą chcieć uruchamiać aplikacje tylko z urządzeń zarządzanych przez przedsiębiorstwo. Przykłady zarządzania urządzeniami w przedsiębiorstwie obejmują pełne Zarządzanie urządzeniami mobilne (MDM) i scenariusze, w których użytkownicy korzystają z własnych urządzeń, które uczestniczą w zarządzaniu aplikacjami mobilnymi (MAM).

Zgodnie z projektem podstawowe systemy operacyjne (OS) izolować przeglądarki. Deweloperzy potrzebują bliższego połączenia z systemem operacyjnym, aby mieć pełny dostęp do szczegółów urządzenia. W systemie Windows broker uwierzytelniania jest menedżerem kont sieci Web systemu Windows (WAM). Na innych urządzeniach broker uwierzytelniania to aplikacja Microsoft Authenticator (dla urządzeń z systemem iOS lub Android) lub aplikacja Portal firmy (dla urządzeń z systemem Android). Aplikacje uzyskują dostęp do brokera uwierzytelniania za pomocą biblioteki MSAL. W systemie Windows aplikacja może uzyskiwać dostęp do WAM bez biblioteki MSAL. Jednak biblioteka MSAL jest najprostszym sposobem uzyskiwania dostępu do brokera uwierzytelniania przez aplikacje (zwłaszcza aplikacje, które nie są platforma uniwersalna systemu Windows aplikacjami).

Brokerzy uwierzytelniania działają w połączeniu z identyfikatorem Entra firmy Microsoft w celu korzystania z podstawowych tokenów odświeżania (PRT), które zmniejszają potrzebę wielokrotnego uwierzytelniania użytkowników. Żądania ściągnięcia mogą określić, czy użytkownik znajduje się na urządzeniu zarządzanym. Identyfikator Entra firmy Microsoft wymaga brokerów uwierzytelniania, ponieważ wprowadza tokeny dowodu posiadania, bezpieczniejszą opcję tokenów elementu nośnego, które są obecnie powszechne.

Następne kroki