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 chcesz, aby użytkownik uwierzytelnił się w aplikacji, zamiast zbierać nazwę użytkownika i hasło, 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ł w aplikacji.
Token identyfikatora Platforma tożsamości Microsoft jest częścią standardu OpenID Connect (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:
- Oświadczenia nagłówka. Oświadczenia nagłówka obecne w tokenach identyfikatorów obejmują
typ
(oświadczenie typu),alg
(algorytm podpisywania tokenu) ikid
(odcisk palca klucza publicznego w celu zweryfikowania podpisu tokenu). - 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 została wystawiona token (aud
oświadczenie odbiorców lub ). - 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": "00001111-aaaa-2222-bbbb-3333cccc4444",
"exp": 1536361411,
"iat": 1536274711,
"nbf": 1536274711,
"sub": "AAAAAAAAAAAAAAAAAAAAAIkzqFVrSaSaFHy782bbtaQ",
"name": "Abe Lincoln",
"preferred_username": "AbeLi@microsoft.com",
"oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
}.
.[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 uwierzytelniony w aplikacji. Administratorzy IT mogą zezwolić wszystkim użytkownikom w dzierżawie na korzystanie z aplikacji. Mogą one zezwalać 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 jest uwierzytelniany w aplikacji, ponieważ zalogował 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świadczeniuexp
, 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). Czasynbf
iexp
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 innesub
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świadczeniesub
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,
sub
oświadczenia ,oid
itid
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łączonychtid
ioid
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 języka SAML (Security Assertion Markup Language) 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.
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 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 w systemie Windows.
Jak pokazano na poniższym diagramie, przypadek użycia aplikacji natywnej jest bardziej skomplikowany.
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.
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 usługi 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
- Rozwiązywanie problemów z tokenami dostępu firmy Microsoft Entra: Sprawdzanie poprawności tokenu dostępu opisuje sposób, w którym masz token dostępu firmy Microsoft Entra, sprawdzasz, czy niektóre pola są zgodne z rekordem.
- Zwiększ odporność aplikacji uwierzytelniania i autoryzacji, które tworzą aplikacje serii, które korzystają z Platforma tożsamości Microsoft i identyfikatora Entra firmy Microsoft. Obejmują one wskazówki dotyczące aplikacji klienckich i usług, które działają w imieniu zalogowanego użytkownika i demona aplikacji, które działają we własnym imieniu. Zawierają one najlepsze rozwiązania dotyczące używania tokenów i wywoływania zasobów.
- Dostosowywanie tokenów opisuje informacje, które można otrzymywać w tokenach firmy Microsoft Entra i jak można dostosować tokeny.
- Konfigurowanie oświadczeń grup i ról aplikacji w tokenach pokazuje, jak skonfigurować aplikacje przy użyciu definicji ról aplikacji i przypisać grupy zabezpieczeń do ról aplikacji.
- Tworzenie aplikacji, które zabezpieczają tożsamość za pomocą uprawnień i zgody , zawiera omówienie uprawnień i najlepszych rozwiązań dotyczących dostępu.