Wprowadzenie do logowania jednokrotnego na urządzeniach Apple
Organizacje często korzystają z logowania jednokrotnego (SSO), które ma na celu usprawnienie logowania użytkowników do aplikacji i witryn internetowych. Dzięki SSO ten sam proces uwierzytelniania stosowany jest w celu uzyskiwania dostępu do wielu aplikacji lub systemów, bez konieczności ponownego poświadczania tożsamości przez użytkownika. SSO nie polega jednak na zachowywaniu danych uwierzytelniania użytkownika (takich jak hasło) oraz używaniu ich w poszczególnych aplikacjach i systemach, lecz na używaniu tokenu uzyskanego podczas pierwszego uwierzytelnienia, co z punktu widzenia użytkownika wygląda jak jednorazowe podanie hasła.
Na przykład, mechanizm SSO używany jest, gdy logujesz się do Active Directory w sieci firmowej, a następnie uzyskujesz dostęp do aplikacji i witryn firmowych bez konieczności ponownego wprowadzania hasła. Wszystkie aplikacje i systemy są skonfigurowane do zaufania mechanizmowi Active Directory identyfikującemu użytkowników, informującemu o przynależności do grup; razem tworzą domenę bezpieczeństwa.
Kerberos
Kerberos to popularny protokół uwierzytelniania, używany w dużych sieciach do obsługi mechanizmu SSO. Jest to także domyślny protokół używany przez Active Directory. Działa on na różnych platformach, używa szyfrowania oraz chroni przed atakami opartymi na powtórzeniach. Do uwierzytelniania użytkowników może on używać haseł, certyfikatów tożsamości, kart inteligentnych, urządzeń NFC oraz innych sprzętowych urządzeń uwierzytelniających. Serwer obsługujący działanie protokołu Kerberos to centrum dystrybucji kluczy (KDC). Uwierzytelnianie użytkowników wymaga łączenia się urządzeń Apple z KDC przez sieć.
Kerberos działa dobrze w wewnętrznej (prywatnej) sieci organizacji, ponieważ każdy klient i każdy serwer ma bezpośrednie połączenie z centrum dystrybucji kluczy (KDC). Klienci spoza sieci firmowej muszą łączyć się i uwierzytelniać przy użyciu VPN. Kerberos nie stanowi optymalnego rozwiązania w przypadku aplikacji internetowych oraz działających w chmurze. Jest tak, ponieważ aplikacje te nie mają bezpośredniego połączenia z siecią korporacyjną. Lepszym rozwiązaniem dla aplikacji internetowych oraz działających w chmurze jest opisane poniżej nowoczesne uwierzytelnianie.
Po integracji ze środowiskiem Active Directory system macOS traktuje protokół Kerberos priorytetowo podczas wszystkich czynności związanych z uwierzytelnianiem. Gdy użytkownik loguje się na Macu przy użyciu konta Active Directory, do kontrolera domeny Active Directory automatycznie wysyłane jest żądanie wygenerowania identyfikatora Kerberos (TGT). Gdy użytkownik próbuje użyć dowolnej usługi lub aplikacji w domenie obsługującej uwierzytelnianie Kerberos, identyfikator TGT jest używany do wysłania żądania wygenerowania biletu dla tej usługi bez konieczności ponownego uwierzytelniania przez użytkownika. Jeśli ustawiona jest zasada wymagająca podania hasła do zamknięcia wygaszacza ekranu, macOS próbuje odnowić TGT po pomyślnym uwierzytelnieniu.
Prawidłowe działanie serwerów obsługujących protokół Kerberos wymaga, aby rekordy DNS korzystających z niego serwerów były właściwe. Ważny jest również czas zegara systemowego, ponieważ różnica czasu każdego serwera i klienta nie może przekraczać pięciu minut. Dobra praktyka polega na włączeniu automatycznego ustawiania daty i czasu przy użyciu usługi NTP, na przykład time.apple.com.
Nowoczesne uwierzytelnianie z mechanizmem SSO
Nowoczesne uwierzytelnianie to zestaw sieciowych protokołów uwierzytelniania, używanych przez aplikacje działające w chmurze. Przykładami mogą być SAML 2.0, OAuth 2.0 (iOS 16, iPadOS 16.1, visionOS 1.1 lub nowszy), a także Open ID Connect (OIDC). Protokoły te działają dobrze przez Internet, a połączenia są szyfrowane przy użyciu HTTPS. Federacja między sieciami organizacji oraz aplikacjami działającymi w chmurze realizowana jest często przy użyciu protokołu SAML2. Federację stosuje się podczas przekraczania domen zaufanych — na przykład podczas uzyskiwania dostępu do zestawu aplikacji w chmurze z domeny lokalnej.
Uwaga: Aby skorzystać z protokołu OAuth 2.0, rozwiązanie MDM musi wdrożyć obsługę protokołu OAuth 2.0 po stronie serwera z dowolnym dostawcą tożsamości (IdP), którego chce obsługiwać do użytku z rejestracją użytkowników.
Logowanie jednokrotne przy użyciu tych protokołów przebiega w różny sposób, zależnie od dostawcy i środowiska. Na przykład, gdy używasz usług federacyjnych Active Directory (AD FS) w sieci organizacji, współpracują one z Kerberos w zakresie logowania jednokrotnego, a podczas uwierzytelniania klientów przez Internet, mogą one używać plików cookie przeglądarki. Protokoły nowoczesnego uwierzytelniania nie definiują sposobu potwierdzania tożsamości użytkownika. Wiele spośród tych protokołów używanych jest w połączeniu z dodatkowymi poziomami uwierzytelniania nieznanych klientów, na przykład za pomocą kodów SMS. Niektórzy dostawcy instalują certyfikaty na urządzeniach, umożliwiające identyfikację znanych urządzeń w celu usprawnienia procesu uwierzytelniania.
Dostawcy tożsamości mogą obsługiwać logowanie jednokrotne w systemach iOS, iPadOS, macOS i visionOS 1.1 za pomocą rozszerzeń logowania jednokrotnego. Rozszerzenia te umożliwiają dostawcom tożsamości wdrażanie nowoczesnych protokołów do uwierzytelniania swoich użytkowników.
Obsługiwane aplikacje
Systemy iOS, iPadOS i visionOS 1.1 zapewniają elastyczną obsługę logowania jednokrotnego (SSO) w dowolnej aplikacji wykorzystującej klasę NSURLSession
lub URLSession
do zarządzania połączeniami sieciowymi i uwierzytelnianiem. Apple udostępnia te klasy wszystkim deweloperom aplikacji, dzięki czemu mogą oni integrować w swoich aplikacjach obsługę połączeń sieciowych.
Każda aplikacja na Macu obsługująca uwierzytelnianie Kerberos działa z logowaniem jednokrotnym. Dotyczy to wielu aplikacji wbudowanych do systemu macOS, takich jak Safari, Poczta i Kalendarz, jak również usług, takich jak udostępnianie plików, współdzielenie ekranu oraz bezpieczna powłoka (SSH). Kerberos obsługiwany jest także przez wiele aplikacji innych firm, takich jak Microsoft Outlook.
Konfigurowanie logowania jednokrotnego
SSO konfigurowane jest przy użyciu profili konfiguracji, które mogą być instalowane ręcznie lub zarządzane przez MDM. Pakiet danych SSO pozwala na elastyczną konfigurację. SSO może być dostępne dla wszystkich aplikacji lub ograniczone do danego identyfikatora aplikacji, adresu URL usługi lub obu tych elementów.
Porównywanie prefiksu żądanego adresu URL do wzorca dokonywane jest przy użyciu zwykłego porównania ciągów znaków. Z tego powodu wzorce muszą zaczynać się od https:// lub http:// i nie pozwalają na dopasowywanie różnych numerów portów. Jeśli wzorzec dopasowujący adres URL nie kończy się ukośnikiem (/), ukośnik ten jest dodawany do wzorca.
Na przykład wzorzec https://www.betterbag.com/ dopasowuje https://www.betterbag.com/index.html, ale nie dopasowuje http://www.betterbag.com ani https://www.betterbag.com:443/.
Można również używać pojedynczego symbolu wieloznacznego oznaczającego brakujące poddomeny. Na przykład https://*.betterbag.com/ dopasowuje https://store.betterbag.com/.
Użytkownicy Maca mogą wyświetlać i zarządzać danymi biletów Kerberos, korzystając z aplikacji Podgląd biletów, znajdującej się w folderze /System/Biblioteki/CoreServices/. Dodatkowe informacje są dostępne po kliknięciu w menu Bilet i wybraniu polecenia Informacje diagnostyczne. Jeśli pozwala na to profil konfiguracji, użytkownicy mogą także żądać, wyświetlać i usuwać bilety Kerberos za pomocą narzędzi wiersza poleceń, odpowiednio: kinit
, klist
oraz kdestroy
.