Co to jest OIDC?
Dowiedz się więcej o OpenID Connect (OIDC), protokole uwierzytelniania, który weryfikuje tożsamości użytkowników podczas logowania się na potrzeby uzyskania dostępu do zasobów cyfrowych.
Zdefiniowano protokół OpenID Connect (OIDC)
OpenID Connect (OIDC) to protokół uwierzytelniania tożsamości, który jest rozszerzeniem protokołu open authorization (OAuth) 2.0 na potrzeby standaryzacji procesu uwierzytelniania i autoryzowania użytkowników podczas logowania się w celu uzyskania dostępu do usług cyfrowych. Protokół OIDC zapewnia uwierzytelnianie, co oznacza sprawdzenie, czy użytkownicy są tym, za kogo się podają. Protokół OAuth 2.0 autoryzuje systemy, do których użytkownicy mogą uzyskiwać dostęp. Protokół OAuth 2.0 jest zwykle używany do umożliwienia dwóm niepowiązanym aplikacjom udostępniania informacji bez naruszania danych użytkownika. Na przykład wiele osób używa swoich kont e-mail lub mediów społecznościowych do logowania się do witryny innej firmy, zamiast tworzyć nową nazwę użytkownika i hasło. Protokół OIDC jest również używany do zapewniania logowania jednokrotnego. Organizacje mogą używać bezpiecznego systemu zarządzania tożsamościami i dostępem (IAM), takiego jak Tożsamość Microsoft Entra (dawniej Azure Active Directory) jako podstawowego wystawcy uwierzytelniania tożsamości, a następnie przekazywać to uwierzytelnianie do innych aplikacji za pomocą protokołu OIDC. Dzięki temu użytkownicy muszą zalogować się tylko raz przy użyciu jednej nazwy użytkownika i hasła, aby uzyskać dostęp do wielu aplikacji.
Kluczowe składniki protokołu OIDC
W protokole OIDC istnieje sześć podstawowych składników:
- Uwierzytelnianie to proces weryfikowania, czy użytkownik jest tym, za kogo się podaje.
- Klient to oprogramowanie, takie jak witryna internetowa lub aplikacja, które żąda tokenów używanych do uwierzytelniania użytkownika lub uzyskiwania dostępu do zasobu.
- Jednostki uzależnione to aplikacje, które używają dostawców protokołu OpenID do uwierzytelniania użytkowników.
- Tokeny tożsamości zawierają dane tożsamości, w tym wynik procesu uwierzytelniania, identyfikator użytkownika oraz informacje o sposobie i terminie uwierzytelniania użytkownika.
- Dostawcy protokołu OpenID to aplikacje, dla których użytkownik ma już konto. Ich rolą w protokole OIDC jest uwierzytelnianie użytkownika i przekazywanie tych informacji do jednostki uzależnionej.
- Użytkownicy to osoby lub usługi, które szukają dostępu do aplikacji bez tworzenia nowego konta lub podawania nazwy użytkownika i hasła.
Jak działa uwierzytelnianie protokołu OIDC?
Uwierzytelnianie protokołu OIDC polega na umożliwieniu użytkownikom logowania się do jednej aplikacji i uzyskiwania dostępu do innej aplikacji. Jeśli na przykład użytkownik chce utworzyć konto w witrynie z wiadomościami, może mieć możliwość utworzenia swojego konta za pomocą Facebooka zamiast tworzenia nowego konta. W przypadku wybrania Facebooka użytkownicy korzystają z uwierzytelniania protokołu OIDC. Serwis Facebook, określany jako dostawca protokołu OpenID, obsługuje proces uwierzytelniania i uzyskuje zgodę użytkownika na dostarczenie określonych informacji, takich jak profil użytkownika, do witryny z wiadomościami, która jest jednostką uzależnioną.
Tokeny identyfikatorów
Dostawca protokołu OpenID używa tokenów identyfikatora do przesyłania wyników uwierzytelniania i wszelkich istotnych informacji do jednostki uzależnionej. Przykłady typu wysyłanych danych to identyfikator, adres e-mail i nazwa.
Zakresy
Zakresy definiują, co użytkownik może zrobić ze swoim dostępem. Protokół OIDC udostępnia standardowe zakresy, które definiują elementy, takie jak jednostka uzależniona, dla której wygenerowano token, kiedy token został wygenerowany, kiedy token wygaśnie, oraz siła szyfrowania używana do uwierzytelniania użytkownika.
Typowy proces uwierzytelniania protokołu OIDC obejmuje następujące kroki:
- Użytkownik przechodzi do aplikacji, do której chce uzyskać dostęp (jednostki uzależnionej).
- Użytkownik wpisuje nazwę użytkownika i hasło.
- Jednostka uzależniona wysyła żądanie do dostawcy protokołu OpenID.
- Dostawca protokołu OpenID weryfikuje poświadczenia użytkownika i uzyskuje autoryzację.
- Dostawca protokołu OpenID wysyła token tożsamości i często token dostępu do jednostki uzależnionej.
- Jednostka uzależniona wysyła token dostępu do urządzenia użytkownika.
- Użytkownik otrzymuje dostęp na podstawie informacji podanych w tokenie dostępu i jednostce uzależnionej.
Co to są przepływy protokołu OIDC?
Przepływy protokołu OIDC definiują sposób żądania tokenów i dostarczania ich do jednostki uzależnionej. Kilka przykładów:
Przepływy autoryzacji OIDC: dostawca OpenID wysyła unikalny kod do jednostki uzależnionej. Jednostka uzależniona wysyła następnie unikatowy kod z powrotem do dostawcy protokołu OpenID w zamian za token. Ta metoda jest używana, aby dostawca protokołu OpenID mógł zweryfikować jednostkę uzależnioną przed wysłaniem tokenu. Przeglądarka nie widzi tokenu w tej metodzie, co pomaga zapewnić jego bezpieczeństwo.
Przepływy autoryzacji OIDC z rozszerzeniem PKCE: ten przepływ jest taki sam, jak przepływ autoryzacji OIDC, z tą różnicą, że wykorzystuje rozszerzenie klucza publicznego do wymiany kodu (PKCE) w celu wysyłania komunikatów w postaci skrótu. Zmniejsza to prawdopodobieństwo przechwycenia tokenu.
Dane uwierzytelniające klienta: ten przepływ umożliwia dostęp do interfejsów API sieci Web przy użyciu tożsamości samej aplikacji. Jest on zazwyczaj używany do komunikacji między serwerami i zautomatyzowanych skryptów, które nie wymagają interakcji z użytkownikiem.
Kod urządzenia: ten przepływ umożliwia użytkownikom logowanie się i uzyskiwanie dostępu do internetowych interfejsów API na urządzeniach podłączonych do Internetu, które nie są wyposażone w przeglądarkę lub mają niewystarczającą obsługę klawiatury, np. telewizorach Smart TV.
Dodatkowe przepływy, takie jak niejawny przepływ protokołu OIDC, który jest przeznaczony dla aplikacji opartych na przeglądarce, nie są rekomendowane, ponieważ stanowią zagrożenie bezpieczeństwa.
OIDC a OAuth 2.0
Protokół OIDC został utworzony na podstawie protokołu OAuth 2.0 na potrzeby dodania uwierzytelniania. Najpierw opracowano protokół OAuth 2.0, a następnie dodano protokół OIDC, aby zwiększyć jego możliwości. Różnica między nimi polega na tym, że protokół OAuth 2.0 zapewnia autoryzację, a protokół OIDC zapewnia uwierzytelnianie. Protokół OAuth 2.0 umożliwia użytkownikom uzyskiwanie dostępu do jednostki uzależnionej przy użyciu ich konta z dostawcą protokołu OpenID, a protokół OIDC umożliwia dostawcy protokołu OpenID przekazanie profilu użytkownika do jednostki uzależnionej. Protokół OIDC umożliwia również organizacjom oferowanie swoim użytkownikom logowania jednokrotnego.
Zalety uwierzytelniania protokołu OIDC
Dzięki zmniejszeniu liczby kont, które użytkownicy muszą uzyskać dostęp do aplikacji,protokół OIDC oferuje kilka korzyści zarówno osobom, jak i organizacjom:
Zmniejsza ryzyko kradzieży haseł
Gdy użytkownicy muszą używać wielu haseł na potrzeby uzyskania dostępu do aplikacji potrzebnych do pracy i życia osobistego, często wybierają łatwe do zapamiętania hasła, takie jak Hasło1234!, i używają tego samego hasła na kilku kontach. Zwiększa to ryzyko, że zły aktor odgadnie hasło. Po poznaniu hasła do jednego konta mogą oni również uzyskać dostęp do innych kont. Zmniejszenie liczby haseł, które ktoś musi zapamiętać, zwiększa prawdopodobieństwo, że użyje silniejszego, bezpieczniejszego hasła.
Rozszerza mechanizmy kontroli zabezpieczeń
Centralizując uwierzytelnianie w jednej aplikacji organizacje mogą również chronić dostęp w kilku aplikacjach za pomocą silnej kontroli dostępu. Protokół OIDC obsługuje uwierzytelnianie dwuskładnikowe i wieloskładnikowe, które wymaga weryfikacji tożsamości przy użyciu co najmniej dwóch z następujących elementów:
Coś, co użytkownik zna, zwykle hasło.
Coś, co posiada, takie jak zaufane urządzenie lub token, który nie jest łatwo zduplikowany.
Coś, co jest cechą użytkownika, na przykład odcisk palca lub skan twarzy.
Uwierzytelnianie wieloskładnikowe to sprawdzona metoda ograniczania naruszeń zabezpieczeń konta. Organizacje mogą również korzystać z protokołu OIDC do stosowania innych środków zabezpieczeń, takich jak zarządzanie dostępem uprzywilejowanym, ochrona hasłem, zabezpieczenia logowania lub ochrona tożsamości, w wielu aplikacjach.
Upraszcza środowisko użytkownika
Logowanie się do wielu kont w ciągu dnia może być czasochłonne i irytujące dla użytkowników. Ponadto, jeśli utracą lub zapomną hasło, zresetowanie go może jeszcze bardziej zakłócić produktywność. Firmy korzystające z protokołu OIDC na potrzeby zapewnienia pracownikom logowania jednokrotnego pomagają zapewnić, że pracownicy poświęcają więcej czasu na wydajną pracę, zamiast próbować uzyskać dostęp do aplikacji. Organizacje mogą również zwiększyć prawdopodobieństwo, że klienci zarejestrują się w swoich usługach i będą z nich korzystać, jeśli umożliwią użytkownikom logowanie się za pomocą konta Microsoft, Facebook lub Google.
Standaryzuje uwierzytelnianie
Organizacja OpenID Foundation, która ma w swoim portfolio marki o wysokim profilu, takie jak Microsoft i Google, stworzyła kod protokół OIDC. Został zaprojektowany pod kątem współdziałania i obsługuje wiele platform i bibliotek, w tym systemy iOS, Android, Microsoft Windows oraz głównych dostawców usług w chmurze i tożsamości.
Usprawnia zarządzanie tożsamościami
Organizacje korzystające z protokołu OIDC na potrzeby zapewnienia logowania jednokrotnego swoim pracownikom i partnerom mogą zmniejszyć liczbę rozwiązań do zarządzania tożsamościami, które muszą zarządzać. Ułatwia to śledzenie zmian uprawnień i umożliwia administratorom stosowanie zasad dostępu i reguł w wielu aplikacjach za pomocą jednego interfejsu. Firmy, które używają protokołu OIDC, aby umożliwić użytkownikom logowanie się do swoich aplikacji przy użyciu dostawcy OpenID, zmniejszają liczbę tożsamości potrzebnych do zarządzania w ogóle.
Przykłady i przypadki użycia protokołu OIDC
Wiele organizacji korzysta z protokołu OIDC na potrzeby umożliwienia bezpiecznego uwierzytelniania w aplikacjach internetowych i mobilnych. Oto kilka przykładów:
Kiedy użytkownik zakłada konto Spotify, ma do wyboru trzy opcje: Zarejestruj się za pomocą serwisu Facebook, Zarejestruj się za pomocą usługi Google, Zarejestruj się za pomocą swojego adresu e-mail. Użytkownicy, którzy zdecydują się na utworzenie konta za pomocą Facebooka lub Google, używają protokołu OIDC do utworzenia konta. Zostaną przekierowani do wybranego dostawcy protokołu OpenID (Google lub Facebook), a następnie po zalogowaniu się dostawca protokołu OpenID wyśle podstawowe szczegóły profilu do serwisu Spotify. Użytkownik nie musi tworzyć nowego konta w serwisie Spotify, a jego hasła pozostają chronione.
Serwis LinkedIn umożliwia również użytkownikom utworzenie konta przy użyciu konta Google zamiast tworzenia oddzielnego konta dla serwisu LinkedIn.
Firma chce zapewnić logowanie jednokrotne pracownikom, którzy muszą uzyskać dostęp do usług Microsoft Office 365, Salesforce, Box i Workday, aby wykonywać swoją pracę. Zamiast wymagać od pracowników utworzenia oddzielnego konta dla każdej z tych aplikacji, firma korzysta z protokołu OIDC, aby zapewnić dostęp do wszystkich czterech aplikacji. Pracownicy tworzą jedno konto i za każdym razem, gdy się logują, uzyskują dostęp do wszystkich aplikacji potrzebnych do pracy.
Implementowanie protokołu OIDC na potrzeby bezpiecznego uwierzytelniania
Protokół OIDC zapewnia protokół uwierzytelniania na potrzeby uproszczenia środowiska logowania dla użytkowników i zwiększenia bezpieczeństwa. Jest to doskonałe rozwiązanie dla firm, które chcą zachęcić klientów do zarejestrowania się w swoich usługach bez konieczności zarządzania kontami. Umożliwia to również organizacjom oferowanie pracownikom i innym użytkownikom bezpiecznego logowania jednokrotnego w wielu aplikacjach. Organizacje mogą korzystać z rozwiązań tożsamości i dostępu, które obsługują protokół OIDC, taką jak Microsoft Entra, do zarządzania wszystkimi tożsamościami i zasadami zabezpieczeń uwierzytelniania w jednym miejscu.
Dowiedz się więcej o rozwiązaniach zabezpieczających firmy Microsoft
-
Tożsamość Microsoft Entra
Bezpiecznie łącz pracowników, klientów i partnerów z ich aplikacjami, urządzeniami i danymi za pomocą rozwiązania do zarządzania tożsamościami i dostępem w chmurze.
-
Zarządzanie tożsamością Microsoft Entra
Zapewniaj automatycznie, że właściwe osoby mają odpowiedni dostęp do właściwych aplikacji i usług.
-
Zweryfikowany identyfikator Microsoft Entra
Zdecentralizuj tożsamości za pomocą zarządzanej usługi weryfikowalnych poświadczeń opartej na otwartych standardach.
-
Tożsamość obciążeń Microsoft Entra
Chroń tożsamości przyznawane aplikacjom i usługom oraz zarządzaj nimi.
-
Często zadawane pytania
-
OIDC to protokół uwierzytelniania tożsamości, który współpracuje z protokołem OAuth 2.0 na potrzeby standaryzacji procesu uwierzytelniania i autoryzowania użytkowników podczas logowania się w celu uzyskania dostępu do usług cyfrowych. Protokół OIDC zapewnia uwierzytelnianie, co oznacza sprawdzenie, czy użytkownicy są tym, za kogo się podają. Protokół OAuth 2.0 autoryzuje systemy, do których użytkownicy mogą uzyskiwać dostęp. Protokoły OIDC i OAuth 2.0 są zwykle używane do umożliwienia dwóm niepowiązanym aplikacjom udostępniania informacji bez naruszania danych użytkownika.
-
Zarówno protokół OIDC, jak i język SAML (SAML) to protokoły uwierzytelniania tożsamości, które umożliwiają użytkownikom jednokrotne bezpieczne logowanie się i uzyskiwanie dostępu do wielu aplikacji. SAML to starszy protokół, który został powszechnie przyjęty na potrzeby logowania jednokrotnego. Przesyła dane przy użyciu formatu XML. Protokół OIDC to nowszy protokół, który używa formatu JSON do przesyłania danych użytkownika. Protokół OIDC zyskuje popularność, ponieważ jest łatwiejszy do zaimplementowania niż protokół SAML i działa lepiej z aplikacjami mobilnymi.
-
OIDC oznacza protokół OpenID Connect, który jest protokołem uwierzytelniania tożsamości używanym do umożliwienia dwóm niepowiązanym aplikacjom udostępniania informacji o profilu użytkownika bez naruszania poświadczeń użytkownika.
-
Protokół OIDC został utworzony na podstawie protokołu OAuth 2.0 na potrzeby dodania uwierzytelniania. Najpierw opracowano protokół OAuth 2.0, a następnie dodano protokół OIDC, aby zwiększyć jego możliwości. Różnica między nimi polega na tym, że protokół OAuth 2.0 zapewnia autoryzację, a protokół OIDC zapewnia uwierzytelnianie. Protokół OAuth 2.0 umożliwia użytkownikom uzyskiwanie dostępu do jednostki uzależnionej przy użyciu ich konta z dostawcą protokołu OpenID, a protokół OIDC umożliwia dostawcy protokołu OpenID przekazanie profilu użytkownika do jednostki uzależnionej. Ta funkcja umożliwia również organizacjom oferowanie użytkownikom logowania jednokrotnego. Przepływy protokołów OAuth 2.0 i OIDC są podobne, z tą różnicą, że używają nieco innej terminologii.
Typowy przepływ protokołu OAuth 2.0 ma następujące kroki:
- Użytkownik przechodzi do aplikacji, do której chce uzyskać dostęp (serwera zasobów).
- Serwer zasobów przekierowuje użytkownika do aplikacji, w której ma konto (klienta).
- Użytkownik loguje się przy użyciu poświadczeń klienta.
- Klient weryfikuje dostęp użytkownika.
- Klient wysyła token dostępu do serwera zasobów.
- Serwer zasobów udziela użytkownikowi dostępu.
Typowy przepływ protokołu OIDC ma następujące kroki:
- Użytkownik przechodzi do aplikacji, do której chce uzyskać dostęp (jednostki uzależnionej).
- Użytkownik wpisuje nazwę użytkownika i hasło.
- Jednostka uzależniona wysyła żądanie do dostawcy protokołu OpenID.
- Dostawca protokołu OpenID weryfikuje poświadczenia użytkownika i uzyskuje autoryzację.
- Dostawca protokołu OpenID wysyła token tożsamości i często token dostępu do jednostki uzależnionej.
- Jednostka uzależniona wysyła token dostępu do urządzenia użytkownika.
- Użytkownik otrzymuje dostęp na podstawie informacji podanych w tokenie dostępu i jednostce uzależnionej.
-
Dostawca protokołu OpenID używa tokenów identyfikatora do przesyłania wyników uwierzytelniania i wszelkich istotnych informacji do aplikacji jednostki uzależnionej. Przykłady typu wysyłanych danych to identyfikator, adres e-mail i nazwa.
Obserwuj rozwiązania zabezpieczające firmy Microsoft