
Kertakirjautumisen suojaus
iOS, iPadOS, macOS ja visionOS tukevat todentamista yritysverkkoihin kertakirjautumisella (SSO, Single Sign-on). Kertakirjautuminen toimii yhdessä tunnistustietojen tarjoajien kanssa ja todentaa käyttäjät palveluihin, joihin heille on valtuutettu pääsy. Kertakirjautumista voidaan käyttää useisiin verkkotoimintoihin aina suojatuista Safari-istunnoista muiden valmistajien appeihin.
iOS:ssä, iPadOS:ssä, macOS:ssä ja visionOS:ssä on sisäänrakennettu Kerberos-kertakirjautumislaajennus. Appien kehittäjät voivat tarjota omia kertakirjautumistoteutuksia kertakirjautumisen laajennuksilla.
Kerberos-kertakirjautuminen
iOS, iPadOS, macOS ja visionOS tukevat todentamista yritysverkkoihin Kerberoksella. Kertakirjautumisen tuki perustuu avoimen lähdekoodin Heimdal-projektiin. Se käyttää SPNEGO-suojaustunnuksia ja HTTP Negotiate -protokollaa, jotka toimivat Kerberos-pohjaisten todentamisen yhdyskäytävien ja Kerberos-lippuja tukevien Windows Integrated Authentication -järjestelmien kanssa. Myös varmennepohjaista todentamista, kuten PKINIT, tuetaan.
Kerberos-kertakirjautumislaajennus tukee seuraavia salaustyyppejä:
AES-128-CTS-HMAC-SHA1-96
AES-256-CTS-HMAC-SHA1-96
iOS, iPadOS ja visionOS tarjoavat joustavan kertakirjautumisen tuen apeille, jotka käyttävät luokkaa NSURLSession tai URLSession verkkoyhteyksien ja todennuksen hallintaan. Apple tarjoaa kaikille kehittäjille nämä luokat, joiden avulla he voivat integroida saumattomasti verkkoyhteydet omiin appeihinsa.
Kaikki Kerberos-todennusta tukevat Mac-apit toimivat kertakirjautumisen kanssa. Näihin kuuluvat monet macOS:n vakioapit, kuten Kalenteri, Mail ja Safari, sekä palvelut, kuten tiedostonjako, näytönjako ja suojattu yhteys (SSH). Myös monet muiden valmistajien apit tukevat Kerberosta.
Kertakirjautumisen määrittämistä varten määrityksen avulla laitehallintapalvelu voi lähettää laitteeseen tarvittavat asetukset. Näissä määritetään käyttäjän ensisijainen nimi (Active Directory -käyttäjätili) ja Kerberos-alueen asetukset ja määritetään, minkä appien ja Safarin verkko-osoitteiden sallitaan käyttää kertakirjautumista.
Laajennettava kertakirjautuminen
Appien kehittäjät voivat tarjota omia kertakirjautumistoteutuksia kertakirjautumisen laajennuksilla iOS:ssä, iPadOS:ssä, macOS:ssä ja visionOS:ssä. Kertakirjautumisen laajennukset otetaan käyttöön, kun natiivi- tai verkkoapin tarvitsee käyttää identiteetin tarjoajaa käyttäjän todentamiseen. Kehittäjät voivat tarjota kahdentyyppisiä laajennuksia:
Uudelleenohjauslaajennuksia, jotka uudelleenohjaavat HTTPS:ään
Haaste/vastaus-laajennuksia, kuten Kerberosta
Tämän ansiosta laajennettava kertakirjautuminen voi tukea Open ID Connect (OIDC)-, OAuth-, SAML 2.0- ja Kerberos-todentamismalleja. Kertakirjautumislaajennukset voivat myös tukea todentautumista macOS:n FileVault ja sisäänkirjautuminen -ikkunassa käyttämällä alustan kertakirjautumista, jonka avulla Mac hakee kertakirjautumisen tunnisteet sisäänkirjautumisen aikana.
Appi voi käyttää kertakirjautumisen laajennusta joko käyttämällä AuthenticationServices API:a tai osoitteen sieppausmekanismia, jonka käyttöjärjestelmä tarjoaa. WebKit ja CFNetwork tarjoavat sieppauskerroksen, joka sallii kertakirjautumisen saumattoman tuen mille tahansa natiivi- tai WebKit-apille. Jotta kertakirjautumisen laajennus otetaan käyttöön, määritys täytyy asentaa laitehallintapalvelun avulla. Tämän lisäksi uudelleenohjaustyyppisten laajennusten täytyy käyttää yhdistettyjä domaineja sen varmistamiseen, että niiden tukema identiteetin tarjoaja tietää niiden olemassaolosta.
Alustan kertakirjautuminen
Alustan kertakirjautumisen ansiosta kehittäjät voivat suunnitella macOS:lle kertakirjautumislaajennuksia, jotka kattavat macOS:n FileVault ja sisäänkirjautuminen -ikkunan. Alustan kertakirjautuminen tukee eri todentautumismenetelmiä identiteetin tarjoajalle:
Salasana
Salasanatodennus tukee WS-Trustia. Tämän ansiosta käyttäjän todennus onnistuu silloinkin, jos tiliä hallitsee federoitu identiteetin tarjoaja.
Valinnaisesti käyttäjät voivat myös synkronoida paikallisen tilinsä tunnistetiedot identiteetin tarjoajalla. Paikallisen tilin salasana pidetään automaattisesti synkronoituna käyttäjien identiteetin tarjoajan tilin salasanan kanssa.
Secure Enclave -avain
Avain luodaan ja tallennetaan Secure Enclaveen käyttäjän rekisteröintiprosessin aikana, ja sitä käytetään todentautumiseen identiteetin tarjoajalle ilman salasanaa.
Älykortti
Älykorttia käytetään todentautumiseen identiteetin tarjoajalle.
Pääsyavain
Applen Lompakkoon tallennettu kortti, jolla todentaudutaan identiteetin tarjoajalle.
Rekisteröinti
Alustan kertakirjautumista varten Mac ja jokainen käyttäjä rekisteröityvät identiteetin tarjoajalle. Identiteetin tarjoajan tuesta ja käytettävistä määrityksistä riippuen Mac voi suorittaa laitteen rekisteröinnin taustalla käyttäen seuraavia:
Laitehallintamäärityksen tarjoama rekisteröintitunniste.
Todennus, joka tarjoaa suuren varmuuden laitteen tunnisteista (UDID ja sarjanumero).
Kun laitteen rekisteröinti on tehty, käyttäjä rekisteröityy (jollei käyttäjätilillä käytetä todennettua vierastilaa). Jos identiteetin tarjoaja edellyttää sitä, käyttäjän rekisteröinti voi sisältää rekisteröinnin vahvistuskehotuksen käyttäjälle. Paikallisille käyttäjätileille, jotka alustan kertakirjautuminen luo tarpeen mukaan, käyttäjärekisteröinti tapahtuu automaattisesti taustalla.
Rekisteröintiprosessissa Mac luo kaksi avainta: laitteen allekirjoitusavaimen ja laitteen salausavaimen. Kertakirjautumislaajennuksesta riippuen avaimet voivat käyttää seuraavia:
NIST P-256 ECDH-ES
HKPE ja NIST P-256, NIST P-384 tai X25519
Nämä ylläpitävät käyttäjästä riippumatonta luotettavaa yhteyttä identiteetin tarjoajan kanssa, ja alustan kertakirjautuminen tukee jaettuja laiteavaimia. Tämä mahdollistaa esimerkiksi alustan kertakirjautumisen automatisoidun laiterekisteröinnin aikana, käyttäjätilien luomisen tarpeen mukaan identiteetin tarjoajan tietojen perusteella, verkon valtuutuksen ja todennetun vierastilan. Siinä käytetään samaa allekirjoitusta ja salausavainta kaikille tietyn laitteen käyttäjille.
Huomaa: Kertakirjautumislaajennuksen täytyy tukea pyydettyä menetelmää rekisteröinnin suorittamista varten. Myös menetelmien vaihtamista tuetaan. Kun esimerkiksi luodaan sisäänkirjautumisen aikana uusi käyttäjätili, jossa on käyttäjätunnus ja salasana, tili voi siirtyä käyttämään Secure Enclave -pohjaista avainta tai älykorttia onnistuneen sisäänkirjautumisen jälkeen.
Tunnisteiden hakeminen ja päivittäminen
Jotta käyttäjä voidaan todentaa käyttäjän appeihin ja verkkosivustoille tarpeen mukaan, kertakirjautumislaajennus käyttää kertakirjautumistunnisteita. Jotta kertakirjautumislaajennus on aina valmiina suorittamaan todennuksen, alustan kertakirjautuminen yrittää päivittää tai hakea uusia tunnisteita identiteetin tarjoajalta, jos tunnisteet:
Puuttuvat
Ovat vanhentuneita
Ovat yli neljä tuntia vanhoja
Tunnisteita haetaan tai uudistetaan identiteetin tarjoajalta lähettämällä JSON Web Token (JWT) ‑sisäänkirjautumis- tai päivityspyyntö, ja se allekirjoitetaan kertakirjautumislaajennuksen määritysten mukaisesti laitteen allekirjoitusavaimella käyttäen ES256:ta, ES384:ää tai Ed25519:ää. Luodut tunnisteet ovat osa vastaustietosisältöä, joka on AES-GCM 256 -salattu laitteen salausavaimen julkisella avaimella.
Jos kertakirjautumislaajennus pyytää salasanan salausta, salasanaa ei lähetetä kirjautumispyynnössä, ja sen tilalle laitetaan AES-GCM 256 -salattu sisällytetty varmistus, joka sisältää salasanan. Sen jälkeen luodaan siihen liittyvä salausavain (kertakirjautumislaajennuksen määritysten mukaan yhdellä laitteen salausavaimelle saatavilla olevista menetelmistä).
Kun todennusmenetelmä vaatii digitaalista allekirjoitusta, alustan kertakirjautuminen käyttää sisällytettyä JWT-varmistusta Secure Enclave -avaimen ja älykortin todennusta varten. Varmistus on joko:
Todentajan allekirjoittama, kun käytetään älykorttia.
Salattu ES256:lla, ES384:llä tai Ed25519:llä, kun käytetään kertakirjautumislaajennuksen määrittämää Secure Enclave -avainta.
Todentamismenetelmästä riippumatta kertakirjautumistunnisteet:
On tallennettu avainnippuun avainnipun tietojensuojausattribuutilla
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnlyOn jaettu vain kertakirjautumislaajennukselle
Ovat ei-siirrettäviä