
Single Sign On-sikkerhet
iOS, iPadOS, macOS og visionOS støtter autentisering for bedriftsnettverk gjennom Single Sign On (SSO). SSO arbeider sammen med en identitetsleverandør (IdP) for å autentisere brukere for tjenester som de er autorisert for å få tilgang til. SSO kan brukes for en rekke nettverksaktiviteter, fra sikre Safari-økter til tredjepartsapper.
iOS, iPadOS, macOS og visionOS har en innebygd Kerberos SSO-utvidelse. App-utviklere kan også tilby sin egen implementering av Single Sign On ved hjelp av SSO-utvidelser.
Kerberos Single Sign On
iOS, iPadOS, macOS og visionOS støtter autentisering for bedriftsnettverk gjennom Kerberos. SSO-støtte er basert på åpen kilde-prosjektet Heimdal og bruker SPNEGO-kjennetegn og HTTP Negotiate-protokollen for å samarbeide med Kerberos-baserte autentiseringsportaler og Windows Integrated Authentication-systemer som støtter Kerberos-billetter. Sertifikatbasert autentisering, som PKINIT, støttes også.
Kerberos SSO-utvidelsen støtter følgende krypteringstyper:
AES-128-CTS-HMAC-SHA1-96
AES-256-CTS-HMAC-SHA1-96
iOS, iPadOS og visionOS gir fleksibel støtte for SSO til enhver app som bruker NSURLSession- eller URLSession-klassen til å administrere nettverkstilkoblinger og autentisering. Apple gir alle utviklere tilgang til disse nettverksklassene, slik at de sømløst kan integrere tilkoblingsteknologiene i appene sine.
Alle Mac-apper som støtter Kerberos-autentisering, fungerer med SSO. Dette inkluderer mange av appene som følger med macOS, blant annet Kalender, Mail og Safari, samt fildelings-, skjermdelings- og Secure Shell-tjenester (SSH). Mange tredjepartsapper støtter også Kerberos.
For å konfigurere SSO tillater en konfigurasjon at en tjeneste for enhetsadministrering sender de nødvendige innstillingene til enheten. Det inkluderer angivelse av hovednavnet (Active Directory-brukerkontoen) og innstillinger på Kerberos-nivå samt konfigurering av hvilke apper eller Safari-nettadresser som skal kunne bruke SSO.
Extensible Single Sign On
Apputviklere kan tilby sin egen implementering av Single Sign On ved hjelp av SSO-utvidelser for iOS, iPadOS, macOS og visionOS. SSO-utvidelser aktiveres når en installert eller nettbasert app skal bruke en ID-leverandør (IdP) for å godkjenne brukeren. Utviklere kan tilby to typer utvidelser:
de som omdirigerer til HTTPS
de som bruker en spørsmål/svar-mekanisme som Kerberos
Det gjør at autentiseringstypene Open ID Connect (OIDC), OAuth, SAML 2.0 og Kerberos kan støttes av Extensible Single Sign On. SSO-utvidelser kan også støtte autentisering i FileVault og påloggingsvinduet i macOS hvis Platform SSO er tatt i bruk, slik at Macen kan hente SSO-kjennetegn under påloggingen.
For å bruke en Single Sign On-utvidelse kan en app enten bruke AuthenticationServices-APIen eller stole på operativsystemets mekanisme for å fange opp URL-en. WebKit og CFNetwork har et innhentingslag som tillater sømløs støtte for Single Sign On for alle installerte apper og WebKit-apper. For at en Single Sign On-utvidelse skal aktiveres, må det installeres en konfigurasjon gjennom en tjeneste for enhetsadministrering. I tillegg må utvidelser av redirect-typen bruke Associated Domains til å bevise at identitetstjeneren (IdP) de støtter, er klar over at de finnes.
Platform Single Sign On
Med Platform Single Sing On (Platform SSO) kan utviklere bygge SSO-utvidelser for macOS som utvides til FileVault og påloggingsvinduet i macOS. Platform SSO støtter forskjellige autentiseringsmekanismer med en identitetstjener (IdP):
Passord
Passordautentisering støtter WS-Trust. Dette gjør det mulig for en bruker å autentisere seg selv når identitetstjeneren (IdP) som administrerer kontoen, bruker forent autentisering.
Alternativt kan brukerne også synkronisere påloggingsinformasjonen for en lokal konto med en identitetstjener (IdP). Passordet for den lokale kontoen synkroniseres automatisk med passordet for IdP-kontoen.
Secure Enclave-nøkkel
En nøkkel opprettes og oppbevares i Secure Enclave under prosessen for brukerregistrering og brukes til autentisering med identitetstjeneren (IdP) uten passord.
Smartkort
Et smartkort brukes til autentisering med identitetstjeneren (IdP).
Tilgangsnøkkel
Et kort lagret i Lommebok-appen brukes til autentisering med identitetstjeneren (IdP).
Registrering
For å kunne bruke Platform SSO må Macen og hver enkelt bruker registrere seg på identitetstjeneren (IdP). Avhengig av IdP-støtten og konfigurasjonen som brukes, kan Macen utføre enhetsregistreringen stille i bakgrunnen ved hjelp av:
et registreringskjennetegn oppgitt i konfigurasjonen for enhetsadministrering
en attestering, som gir bekreftelse på enhetsidentifikatorene (UDID og serienummer)
Når enheten er ferdig registrert, er det brukerens tur til å registrere seg (med mindre brukerkontoen bruker Authenticated Guest Mode). Hvis identitetstjeneren (IdP) krever det, kan brukerregistreringen innebære å be brukeren bekrefte registrereringen. For lokale brukerkontoer som Platform SSO oppretter på forespørsel, foregår brukerregistreringen automatisk i bakgrunnen.
Under registreringsprosessen oppretter Macen to nøkler: en enhetspåloggingsnøkkel og en enhetskrypteringsnøkkel. Avhengig av SSO-utvidelsen kan nøklene bruke følgende:
NIST P-256 ECDH-ES
HKPE with NIST P-256, NIST P-384, or X25519
Disse opprettholder en godkjent tilkobling med identitetstjeneren (IdP) uavhengig av brukeren, og Platform SSO støtter delte enhetsnøkler. Dette gjør det mulig å bruke funksjoner som Platform SSO under automatisert enhetsregistrering, opprettelse av brukerkontoer ved behov basert på informasjon fra identitetstjeneren (IdP), nettverksautorisering samt Authenticated Guest Mode, og det brukes samme påloggings- og krypteringsnøkkel for alle brukerne på en bestemt enhet.
Merk: SSO-utvidelsen må støtte den forespurte metoden for å kunne utføre registreringen. Bytte av metoder støttes også. Eksempel: Når en bruker oppretter en ny brukerkonto med et brukernavn og passord under påloggingen, kan denne kontoen endres til å bruke en Secure Enclave-støttet nøkkel eller et smartkort etter vellykket pålogging.
Innhenting og oppdatering av kjennetegn
SSO-utvidelsen bruker SSO-kjennetegn ved behov for å autentisere brukeren i apper og på nettsteder. For å sikre at SSO-utvidelsen alltid er klar til å utføre en autentisering, forsøker Platform SSO å oppdatere eller innhente nye kjennetegn fra identitetstjeneren (IdP) hvis kjennetegnene:
mangler
er utløpt
er mer enn fire timer gamle
For å kunne forespørre eller oppdatere kjennetegn fra identitetstjeneren (IdP) sendes det en JWT-påloggings- eller oppdateringsforespørsel (JSON Web Token) som – avhengig av hvilken metode som er definert av SSO-utvidelsen – er signert med en enhetssigneringsnøkkel med ES256, ES384 eller Ed25519. De opprettede kjennetegnene er del av svar-nyttelasten som er kryptert med AES-GCM 256 ved hjelp av den offentlige nøkkelen i enhetskrypteringsnøkkelen.
Hvis SSO-utvidelsen forespør passordkryptering, sendes ikke passordet i påloggingsforespørselen, men erstattes av en kryptert og integrert AES-GCM 256-tagg som inneholder passordet. Deretter opprettes den tilknyttede krypteringsnøkkelen (som definert av SSO-utvidelsen ved hjelp av en av mekanismene som også er tilgjengelige for enhetskrypteringsnøkkelen).
Når autentiseringsmekanismen krever en digital signatur, bruker Platform SSO en innebygd JWT-tagg for Secure Enclave Key og smartkortautentisering. Taggen blir enten:
signert med autentiseringsnøkkel ved bruk av et smartkort
kryptert med ES256, ES384 eller Ed25519 ved bruk av en Secure Enclave Key som definert av SSO-utvidelsen
Uansett hvilken autentiseringsmetode som brukes, er SSO-kjennetegnene:
lagret på nøkkelringen med attributtet
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly, som beskytter nøkkelringdataenekun delt med SSO-utvidelsen
ikke-migrerende