IdP-initierad SSO vs SP-initierad SSO
Lär dig mer om skillnaderna mellan IdP-initierad SSO och SP-initierad SSO och varför SP-initierad SSO är mer säker.
Lär dig mer om skillnaderna mellan IdP-initierad SSO och SP-initierad SSO och varför SP-initierad SSO är mer säker.
Som namnet antyder initieras SP-initierad SSO av tjänsteleverantören. Användaren startar autentiseringsprocessen genom att få åtkomst till en resurs på SP:s webbplats. SP omdirigerar sedan användaren till IdP för autentisering. När användaren har autentiserats genererar IdP en token (OIDC) eller en SAML-assertion (SAML) och skickar den tillbaka till SP. SP validerar tokenen eller assertionen och ger användaren åtkomst.
Till skillnad från SP-initierad SSO initieras IdP-initierad SSO av identitetsleverantören. Användaren startar autentiseringsprocessen från IdP:s webbplats. Normalt hittar användaren en lista över stödda SP-applikationer på IdP:s portal. Användaren klickar på SP-applikationen och omdirigeras till SP:s webbplats med en för-autentiserad identitet.

IdP-initierad SSO används mer av stora företag och organisationer som förlitar sig på olika tredjepartsappar eller tjänster. Som Workday, Salesforce etc. Det ger ett centraliserat sätt att hantera användaråtkomst till flera applikationer och tillämpa SSO-autentiseringar. Genom att möjliggöra IdP-initierad SSO kan anställda direkt få åtkomst till de anslutna applikationerna från IdP:s portal utan att behöva besöka varje applikations webbplats. Detta minskar tid för introduktion och förbättrar användarupplevelsen.
IdP-initierad SSO medför större risker jämfört med SP-initierad SSO.
Brist på autentiseringskontext: Alla autentiseringsförfrågningar som initieras från IdP är oönskade. Således kan SP initiera autentiseringsprocessen, vilket potentiellt öppnar dörren för obehörig åtkomst. Det finns en risk att användarens session kan kapas. En illasinnad aktör kan initiera inloggningsprocessen för en legitim användare utan deras vetskap eller samtycke.
Sessionsfixering: Eftersom SP inte initierar autentiseringsprocessen kan användarens session fixeras till IdP:s session. Detta kan leda till sessionsfixeringsattacker där en angripare kan fixera användarens session till IdP:s session och få obehörig åtkomst till användarens konto.
Phishingattacker: IdP-initierad SSO kan vara sårbar för phishingattacker. En illasinnad aktör kan lura användaren att besöka en falsk IdP:s portal och stjäla användarens uppgifter. När användaren loggar in kan angriparen omdirigera användaren till SP med en för-autentiserad identitet.
Ingen försäkran om förfrågningsvalidering: I en SP-initierad SSO inkluderar oftast SP nödvändig säkerhetsinformation i förfrågan till IdP för att upprätthålla förfrågningens integritet. När SP mottar autentiseringssvaret kommer det att validera denna information för att förhindra CSRF-attacker. Exempelvis state-parametern i OIDC och RelayState i SAML. Men i IdP-initierad SSO initierar inte SP autentiseringsprocessen och har därför ingen försäkran om förfrågningsvalidering.
IdP-initierad SSO stöds inte av OIDC på grund av ovanstående sårbarheter. OIDC kräver att SP initierar autentiseringsprocessen för att säkerställa förfrågningens integritet. Även i fall där användare börjar autentiseringsprocessen från en tredje part som inte är SP, bör användaren först styras till SP för att initiera autentiseringsprocessen.
Men i SAML är IdP-initierad SSO möjligt. IdP kan generera en SAML-assertion utan att SP initierar autentiseringsprocessen. I en SAML IdP-initierad SSO kan en SAML-assertion utan en ordentlig RequestID och RelayState skickas direkt till SP:s ACS URL. SP bör kunna hantera denna typ av assertion och ge användaren åtkomst. (Obs: Utan RequestID och RelayState har SP ingen försäkran om förfrågningens integritet).
Även om IdP-initierad SSO ger ett centraliserat sätt att hantera användaråtkomst till flera applikationer, medför det större risker jämfört med SP-initierad SSO. SP-initierad SSO är mer säker och ger mer försäkran om autentiseringsförfrågningens integritet. Det rekommenderas att använda SP-initierad SSO för både OIDC- och SAML-baserad SSO.