Co to jest uwierzytelnianie?
Ostrzeżenie
Ta zawartość jest przeznaczona dla starszego punktu końcowego Azure AD w wersji 1.0. Użyj Platforma tożsamości Microsoft dla nowych projektów.
Uwierzytelnianie to wezwanie strony do podania wiarygodnych poświadczeń. Stanowi to podstawę utworzenia podmiotu zabezpieczeń używanego do obsługi tożsamości i kontroli dostępu. Mówiąc prościej, jest to proces udowadniania, że jest się tym, za kogo się podaje. Uwierzytelnianie jest czasami określane terminem AuthN.
Autoryzacja to przyznanie uprawnienia uwierzytelnionemu podmiotowi zabezpieczeń do wykonania jakiegoś zadania. Autoryzacja określa, do jakich danych można uzyskać dostęp oraz jakie zadania można na nich wykonać. Autoryzacja jest czasami określana terminem AuthZ.
Usługa Azure Active Directory dla deweloperów (wersja 1.0) (Azure AD) upraszcza uwierzytelnianie dla deweloperów aplikacji, zapewniając tożsamość jako usługę, z obsługą standardowych protokołów branżowych, takich jak OAuth 2.0 i OpenID Connect, a także biblioteki open source dla różnych platform, które ułatwiają szybkie rozpoczynanie kodowania.
Istnieją dwa główne przypadki użycia w modelu programowania w usłudze Azure AD:
- Podczas przepływu autoryzacji OAuth 2.0 — gdy właściciel zasobu przyznaje autoryzację do aplikacji klienckiej, co umożliwia klientowi uzyskanie dostępu do zasobów właściciela zasobu.
- Podczas dostępu do zasobu przez klienta — zgodnie z implementacją serwera zasobów, przy użyciu wartości oświadczeń obecnych w tokenie dostępu na potrzeby podejmowania na ich podstawie decyzji dotyczących kontroli dostępu.
Podstawy uwierzytelniania w Azure AD
Rozpatrzymy tutaj najprostszy scenariusz, w którym wymagana jest tożsamość: użytkownik w przeglądarce internetowej musi się uwierzytelnić w aplikacji internetowej. Na poniższym diagramie przedstawiono ten scenariusz:
Oto co musisz wiedzieć o różnych składnikach pokazanych na diagramie:
- Usługa Azure AD jest dostawcą tożsamości. Dostawca tożsamości jest odpowiedzialny za weryfikowanie tożsamości użytkowników i aplikacji, które istnieją w katalogu organizacji, oraz wystawia tokeny zabezpieczające po pomyślnym uwierzytelnieniu tych użytkowników i aplikacji.
- Aplikacja, która chce przesłonić uwierzytelnianie w celu Azure AD, musi być zarejestrowana w usłudze Azure Active Directory (Azure AD). Usługa Azure AD rejestruje i unikatowo identyfikuje aplikację w katalogu.
- Deweloperzy mogą używać bibliotek uwierzytelniania typu open-source w usłudze Azure AD, aby uprościć proces uwierzytelniania dzięki automatycznej obsłudze szczegółów dotyczących protokołu. Aby uzyskać więcej informacji, zobacz Platforma tożsamości Microsoft biblioteki uwierzytelniania w wersji 2.0 i bibliotek uwierzytelniania w wersji 1.0.
- Po uwierzytelnieniu użytkownika aplikacja musi zweryfikować token zabezpieczający użytkownika, aby upewnić się, że uwierzytelnianie zakończyło się pomyślnie. Procesy zachodzące w aplikacji zostały opisane w różnych przewodnikach Szybki start, samouczkach i przykładach kodu w różnych językach i strukturach.
- Aby szybko utworzyć aplikację i dodać do niej funkcje, takie jak między innymi uzyskiwanie tokenów, odświeżanie tokenów, logowanie użytkownika i wyświetlanie informacji o użytkowniku, zapoznaj się z sekcją Przewodniki Szybki start w dokumentacji.
- Aby uzyskać szczegółowe, oparte na scenariuszach procedury zadań dla deweloperów uwierzytelniania, takich jak uzyskiwanie tokenów dostępu i korzystanie z nich w wywołaniach interfejsu API programu Microsoft Graph i innych interfejsów API, implementowanie logowania firmy Microsoft przy użyciu tradycyjnej aplikacji internetowej opartej na przeglądarce za pomocą protokołu OpenID Connect i innych, zapoznaj się z sekcją Samouczki w dokumentacji.
- Aby pobrać przykłady kodu, przejdź do witryny GitHub.
- Przepływ żądań i odpowiedzi dotyczących procesu uwierzytelniania jest określony przez używany protokół uwierzytelniania, taki jak OAuth 2.0, OpenID Connect, WS-Federation lub SAML 2.0. Aby uzyskać więcej informacji na temat protokołów, zobacz sekcję Protokół uwierzytelniania pojęć > w dokumentacji.
W przykładowym scenariuszu powyżej aplikacje można sklasyfikować według tych dwóch ról:
- Aplikacje, które wymagają bezpiecznego dostępu do zasobów.
- Aplikacje, które same pełnią rolę zasobu.
Jak każdy przepływ emituje tokeny i kody
W zależności od sposobu tworzenia klienta może on używać jednego (lub kilku) przepływów uwierzytelniania obsługiwanych przez Azure AD. Te przepływy mogą tworzyć różne tokeny (id_tokens, tokeny odświeżania, tokeny dostępu), a także kody autoryzacji i wymagać różnych tokenów, aby działały. Ten wykres zawiera omówienie:
Przepływ | Wymaga | id_token | token dostępu | token odświeżania | kod autoryzacji |
---|---|---|---|---|---|
Przepływ kodu autoryzacji | x | x | x | x | |
Niejawny przepływ | x | x | |||
Przepływ hybrydowego OIDC | x | x | |||
Odświeżanie realizacji tokenu | token odświeżania | x | x | x | |
Przepływ „w imieniu” | token dostępu | x | x | x | |
Poświadczenia klienta | x (tylko aplikacja) |
Tokeny wystawione za pośrednictwem trybu niejawnego mają ograniczenie długości z powodu przekazania z powrotem do przeglądarki za pośrednictwem adresu URL (gdzie response_mode
to query
lub fragment
). Niektóre przeglądarki mają limit rozmiaru adresu URL, który można umieścić na pasku przeglądarki i kończy się niepowodzeniem, gdy jest za długi. W związku z tym te tokeny nie mają groups
ani wids
oświadczeń.
Teraz, po zapoznaniu się z podstawami, kontynuuj czytanie, aby zrozumieć model oraz interfejs API aplikacji tożsamości, poznać sposób działania aprowizacji w usłudze Azure AD i uzyskać linki do szczegółowych informacji na temat typowych scenariuszy obsługiwanych przez usługę Azure AD.
Model aplikacji
Usługa Azure AD reprezentuje aplikacje działające według określonego modelu, który został zaprojektowany w celu pełnienia dwóch głównych funkcji:
Identyfikowanie aplikacji zgodnie z obsługiwanymi protokołami uwierzytelniania — obejmuje to wyliczanie wszystkich identyfikatorów, adresów URL, wpisów tajnych i powiązanych informacji, które są wymagane podczas uwierzytelniania. Tutaj usługa Azure AD pełni następujące funkcje:
- Przechowuje wszystkie dane wymagane do obsługi uwierzytelniania w czasie wykonywania.
- Przechowuje wszystkie dane konieczne do zdecydowania, jakich zasobów może wymagać aplikacja w celu uzyskania dostępu oraz czy konkretne żądanie powinno zostać spełnione i pod jakimi warunkami.
- Udostępnia infrastrukturę do implementowania aprowizacji aplikacji w ramach dzierżawy dewelopera aplikacji i dowolnej innej dzierżawy usługi Azure AD.
Obsługa zgody użytkownika podczas żądania tokenu i umożliwienie dynamicznej aprowizacji aplikacji między dzierżawami — tutaj usługa Azure AD pełni następujące funkcje:
- Umożliwia użytkownikom i administratorom dynamiczne wyrażanie zgody lub odmawianie zgody dla aplikacji na uzyskiwanie przez nią dostępu do zasobów w ich imieniu.
- Umożliwia administratorom ostateczne zdecydowanie, jakie działania mogą podejmować aplikacje, którzy użytkownicy mogą używać określonych aplikacji i w jaki sposób uzyskiwany jest dostęp do zasobów katalogu.
W usłudze Azure AD obiekt aplikacji opisuje aplikację jako jednostkę abstrakcyjną. Deweloperzy pracują z aplikacjami. Podczas wdrażania usługa Azure AD używa danego obiektu aplikacji jako konspektu do utworzenia jednostki usługi, która reprezentuje konkretne wystąpienie aplikacji w katalogu lub dzierżawie. To właśnie jednostka usługi definiuje, jakie działania może w rzeczywistości wykonywać aplikacja w konkretnym katalogu docelowym, kto może z niej korzystać, do jakich zasobów ma ona dostęp itd. Usługa Azure AD tworzy jednostkę usługi na podstawie obiektu aplikacji poprzez wyrażenie zgody.
Na poniższym diagramie przedstawiono uproszczony przepływ aprowizowania usługi Azure AD sterowany poprzez wyrażenie zgody. W nim istnieją dwie dzierżawy (A i B), gdzie dzierżawa A jest właścicielem aplikacji, a dzierżawa B tworzy wystąpienie aplikacji za pośrednictwem jednostki usługi.
Ten przepływ aprowizowania składa się z następujących etapów:
- Użytkownik z dzierżawy B próbuje zalogować się za pomocą aplikacji, punkt końcowy autoryzacji żąda tokenu dla aplikacji.
- Poświadczenia użytkownika są uzyskiwane i weryfikowane pod kątem uwierzytelniania
- Użytkownik jest monitowany o wyrażenie zgody dla aplikacji w celu uzyskania dostępu do dzierżawy B
- Azure AD używa obiektu aplikacji w dzierżawie A jako strategii tworzenia jednostki usługi w dzierżawie B
- Użytkownik otrzymuje żądany token.
Ten proces może być powtarzany dowolną liczbę razy dla innych dzierżaw (C, D itd.). Dzierżawa A zachowuje strategię aplikacji (obiekt aplikacji). Użytkownicy i administratorzy wszystkich pozostałych dzierżaw, dla których aplikacja otrzymała zgodę, zachowują kontrolę nad tym, jakie działania może wykonywać aplikacja przy użyciu odpowiedniego obiektu jednostki usługi w każdej dzierżawie. Aby uzyskać więcej informacji, zobacz Application and service principal objects in Platforma tożsamości Microsoft (Obiekty aplikacji i jednostki usługi w Platforma tożsamości Microsoft).
Oświadczenia w tokenach zabezpieczających usługi Azure AD
Tokeny zabezpieczające (tokeny dostępu i identyfikatora) wydane przez usługę Azure AD zawierają oświadczenia lub potwierdzenia informacji o podmiocie, który został uwierzytelniony. Aplikacje mogą używać oświadczeń do wykonywania różnych zadań, takich jak:
- Sprawdzanie poprawności tokenu
- Identyfikowanie dzierżawy katalogu podmiotu
- Wyświetlanie informacji o użytkowniku
- Określanie autoryzacji podmiotu
Oświadczenia obecne w dowolnym tokenie zabezpieczającym są zależne od typu tokenu, typu poświadczenia użytego do uwierzytelnienia użytkownika i konfiguracji aplikacji.
W poniższej tabeli znajduje się krótki opis każdego typu oświadczenia emitowanego przez usługę Azure AD. Aby uzyskać bardziej szczegółowe informacje, zobacz tokeny dostępu i tokeny identyfikatorów wystawione przez Azure AD.
Claim | Opis |
---|---|
Identyfikator aplikacji | Określa aplikację, która korzysta z tokenu. |
Grupy odbiorców | Identyfikuje zasób odbiorcy, dla którego jest przeznaczony token. |
Application Authentication Context Class Reference | Wskazuje, jak klient został uwierzytelniony (klient publiczny lub klient poufny). |
Błyskawiczne uwierzytelnianie | Rejestruje datę i godzinę wystąpienia uwierzytelniania. |
Metoda uwierzytelniania | Wskazuje, jak podmiot tokenu został uwierzytelniony (hasło, certyfikat itp.). |
Imię | Udostępnia imię użytkownika w postaci, w jakiej jest ono ustawione w usłudze Azure AD. |
Grupy | Zawiera identyfikatory obiektów grup usługi Azure AD, których członkiem jest użytkownik. |
Dostawca tożsamości | Rejestruje dostawcę tożsamości, który uwierzytelnił podmiot tokenu. |
Wystawiony o | Rejestruje godzinę, o której został wystawiony token (często używane w celu odświeżenia tokenu). |
Wystawca | Identyfikuje usługę STS, która emitowała token, a także dzierżawę usługi Azure AD. |
Nazwisko | Udostępnia nazwisko użytkownika w postaci, w jakiej jest ono ustawione w usłudze Azure AD. |
Nazwa | Udostępnia zrozumiałą wartość identyfikującą podmiot tokenu. |
Identyfikator obiektu | Zawiera niezmienny, unikatowy identyfikator podmiotu w usłudze Azure AD. |
Role | Zawiera przyjazne nazwy ról aplikacji usługi Azure AD, które udzielono użytkownikowi. |
Zakres | Wskazuje uprawnienia przyznane aplikacji klienckiej. |
Temat | Określa podmiot zabezpieczeń, dla którego token określa informacje. |
Identyfikator dzierżawy | Zawiera niezmienny, unikatowy identyfikator dzierżawy katalogu, który wystawił token. |
Czas życia tokenu | Definiuje przedział czasu, przez który token jest prawidłowy. |
Nazwa główna użytkownika | Zawiera nazwę główną użytkownika podmiotu. |
Wersja | Zawiera numer wersji tokenu. |
Następne kroki
- Dowiedz się więcej o typach aplikacji i scenariuszach obsługiwanych w Platforma tożsamości Microsoft