
Sikkerhed i Single Sign-on
iOS, iPadOS, macOS og visionOS understøtter godkendelse i virksomhedsnetværk via Single Sign-on (SSO). SSO godkender i samarbejde med en identitetsudbyder (IdP) brugeres adgang til tjenester, de har tilladelse til at få adgang til. SSO kan bruges til en lang række netværksaktiviteter lige fra sikre Safari-sessioner til apps fra tredjeparter.
iOS, iPadOS, macOS og visionOS indeholder en indbygget Kerberos SSO-udvidelse. App-udviklere kan også skabe deres egne implementeringer af Single Sign-On ved at bruge SSO-udvidelser.
Kerberos Single Sign-on
iOS, iPadOS, macOS og visionOS understøtter godkendelse i virksomhedsnetværk via Kerberos. SSO-understøttelsen er baseret på Open Source-projektet Heimdal og benytter SPNEGO-tokens og HTTP Negotiate-protokollen til at arbejde sammen med Kerberos-baserede godkendelsesgateways og systemer med Windows-integreret godkendelse, som understøtter Kerberos-billetter. Godkendelse baseret på certifikater såsom PKINIT understøttes også.
Kerberos SSO-udvidelsen understøtter følgende krypteringstyper:
AES-128-CTS-HMAC-SHA1-96
AES-256-CTS-HMAC-SHA1-96
iOS, iPadOS og visionOS leverer fleksibel understøttelse af SSO til alle apps, der bruger klassen NSURLSession eller URLSession for at administrere netværksforbindelser og godkendelse. Apple stiller disse klasser til rådighed for alle udviklere, så de nemt kan integrere netværksforbindelser i deres apps.
Single sign-on (SSO) fungerer til alle apps til Mac, der understøtter Kerberos. Det gælder mange af de indbyggede apps i macOS, f.eks. Kalender, Mail og Safari, og inkluderer tjenester som arkivdeling, skærmdeling og SSH (Secure Shell). Mange apps fra tredjeparter understøtter også Kerberos.
For at konfigurere SSO tillader en konfiguration, at en tjeneste til enhedsadministration overfører de nødvendige indstillinger til enheden. Det gælder indstilling af brugerens principal-navn (Active Directory-brugerkontoen) og Kerberos-områdeindstillinger samt konfiguration af, hvilke apps og URL-adresser i Safari der har tilladelse til at bruge SSO.
Udvidet Single Sign-on
App-udviklere kan levere deres egne implementeringer af SSO ved at bruge SSO-udvidelser til iOS, iPadOS, macOS og visionOS. SSO-udvidelserne kaldes, når en indbygget app eller en webapp skal bruge en IdP til brugergodkendelse. Udviklere kan levere to typer udvidelser:
Udvidelser til omdirigering, som omdirigerer til HTTPS
Udvidelser til udfordring/svar, f.eks. Kerberos
Det betyder, at godkendelsesmekanismerne OpenID Connect (OIDC), OAuth, SAML 2.0 og Kerberos kan bruges af udvidet Single Sign-on. SSO-udvidelser kan også understøtte godkendelse i FileVault og login-vinduet på macOS ved at implementere Platform SSO, som gør det muligt for Mac at hente SSO-tokens, når en bruger logger ind.
En app, der vil bruge en SSO-udvidelse, kan enten bruge API‘et AuthenticationServices eller benytte den mekanisme til opsnapning af URL-adresser, som er indeholdt i operativsystemet. WebKit og CFNetwork har et opsnapningslag, der giver alle indbyggede apps og WebKit-apps mulighed for at bruge SSO uden videre. Før en Single Sign-on-udvidelse kan kaldes, skal en konfiguration installeres via en tjeneste til enhedsadministration. Udvidelser af omdirigeringstypen skal derudover bruge tilknyttede domæner til at bevise, at den IdP, de understøtter, er klar over deres eksistens.
Platform Single Sign-on
Med Platform Single Sign-on (Platform SSO) kan udviklere bygge SSO-udvidelser til macOS, der omfatter macOS FileVault og login-vinduet. Platform SSO understøtter forskellige godkendelsesmekanismer med en IdP:
Adgangskode
Godkendelse af adgangskode understøtter WS-Trust. Dette gør det muligt for en bruger at godkende, også selvom den IdP, der administrerer brugerens konto, er på organisationsnetværket.
Brugere kan også synkronisere godkendelsesoplysningerne til deres lokale konto med en IdP. Adgangskoden til den lokale konto holdes automatisk ajour med adgangskoden til IdP-kontoen.
Secure Enclave-nøgle
Der oprettes og lagres en nøgle i Secure Enclave under brugerregistreringen, og den bruges til at godkende med IdP uden en adgangskode.
Smart Card
Der bruges et smart card til at godkende med IdP.
Adgangsnøgle
Et kort i Apple Wallet bruges til at godkende med IdP.
Registrering
Mac-computeren og hver bruger skal registreres hos IdP’en for at bruge Platform SSO. Afhængigt af understøttelsen af IdP og den anvendte konfiguration kan Mac udføre enhedsregistrering i baggrunden med:
Et registreringstoken i konfigurationen til enhedsadministration.
En attestering, der indeholder høj sikkerhed om enheds-id'erne (UDID og serienummer).
Efter en enhedsregistrering registrerer brugeren sig (medmindre brugerkontoen bruger Godkendt gæstefunktion). Hvis IdP kræver det, kan brugerregistrering omfatte, at brugeren bliver bedt om at bekræfte sin registrering. Brugerregistreringen foregår automatisk i baggrunden for lokale brugerkonti, som Platform SSO opretter efter behov.
Under registreringsprocessen opretter Mac to nøgler: en enhedsspecifik signeringsnøgle og en enhedsspecifik krypteringsnøgle. Afhængigt af SSO-udvidelsen kan nøglerne bruge følgende:
NIST P-256 ECDH-ES
HKPE med NIST P-256, NIST P-384 eller X25519
De opretholder en godkendt forbindelse med IdP, der er uafhængig af brugeren, og Platform SSO understøtter delte enhedsnøgler. Dette gør funktioner som f.eks. Platform SSO mulige under Automatisk tilmelding af enhed, oprettelse af brugerkonti efter behov baseret på oplysninger fra IdP’en, netværksgodkendelse og Godkendt gæstefunktion og bruger den samme signerings- og krypteringsnøgle til alle brugere på en bestemt enhed.
Bemærk: SSO-udvidelsen skal understøtte den ønskede metode til at udføre registreringen. Skift af metoder understøttes også. Når der f.eks. oprettes en ny brugerkonto med et brugernavn og en adgangskode ved login, kan den pågældende konto derefter skifte til at bruge en Secure Enclave-nøgle eller et smart card, når der er logget ind.
Hentning og opdatering af token
SSO-udvidelsen bruger SSO-tokens til at godkende brugeren i apps og på websteder efter behov. For at sikre, at SSO-udvidelsen altid er klar til at udføre en godkendelse forsøger Platform SSO at opdatere eller hente nye tokens fra IdP’en, hvis tokens:
Mangler
Er udløbet
Er mere end fire timer gamle
Ved anmodning om eller fornyelse af tokens fra IdP’en sendes der en login- eller opdateringsanmodning med JSON Web Token (JWT) og, afhængigt af metoden, der er defineret af SSO-udvidelsen, den signeres med enhedens signeringsnøgle vha. ES256, ES384 eller Ed25519. De oprettede tokens er en del af svardataene, som er AES-GCM-256-krypterede vha. den offentlige nøgle fra enhedens krypteringsnøgle.
Hvis SSO-udvidelsen anmoder om kryptering af adgangskode, sendes adgangskoden ikke i anmodningen om log ind og erstattes af en krypteret, integreret AES-GCM 256-påstand, der indeholder adgangskoden. Den tilknyttede krypteringsnøgle oprettes derefter (som defineret af SSO-udvidelsen vha. en af mekanismerne, der også er tilgængelig for enhedens krypteringsnøgle).
Når godkendelsesmekanismen kræver en digital signatur, bruger Platform SSO en integreret JWT-påstand til godkendelse af Secure Enclave-nøgle og smart card. Påstanden er enten:
Signeret med kontrolløren, når der bruges et smart card.
Krypteret vha. ES256, ES384 eller Ed25519, når der bruges en Secure Enclave-nøgle som defineret af SSO-udvidelsen.
SSO-tokens er uanset godkendelsesmetoden:
Lagret i nøgleringen vha. attributten til databeskyttelse af nøglering
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnlyKun delt med SSO-udvidelsen
Ikke-flytbare