Förenkla SAML-autentiseringsintegration för utvecklare
Lär dig vad SAML är, hur du implementerar SSO och snabba steg för att integrera SAML-autentisering som en Identitetsleverantör (IdP) eller Tjänsteleverantör (SP).
Single Sign-On (SSO) är avgörande för moderna appar, och SAML möjliggör säker och smidig autentisering mellan företagsidentitetssystem. Denna guide förenklar SAML för utvecklare och designers med tydliga steg och praktiska exempel som hjälper dig att implementera det effektivt.
Vad är SAML-autentisering och SAML-appar?
Security Assertion Markup Language (SAML) är en XML-baserad standard som används för att utbyta autentiserings- och auktoriseringsdata mellan två nyckelaktörer: Identitetsleverantör (IdP) och Tjänsteleverantör (SP). Det är en vanlig lösning för Single Sign-On (SSO) inom organisationer, vilket förenklar livet för företagsanvändare genom att låta dem logga in en gång och få tillgång till flera applikationer.
Identitetsleverantör (IdP) ansvarar för att hantera och verifiera användaruppgifter, såsom användarnamn och lösenord. När en användare försöker komma åt en skyddad tjänst, bekräftar IdP deras identitet och skickar denna bekräftelse till tjänsten.
- Exempel: Tänk dig att du arbetar på ett stort företag som använder Microsoft Azure AD för att hantera anställdas konton. När du vill logga in på Salesforce, fungerar Azure AD som IdP. Den kontrollerar dina inloggningsuppgifter och informerar Salesforce om att du är behörig att använda tjänsten.
Tjänsteleverantör (SP) är den applikation eller tjänst som användarna faktiskt försöker komma åt. Den förlitar sig på IdP för att hantera autentiseringen.
- Exempel: I vårt scenario ovan är Salesforce SP. Den litar på Microsoft Azure AD (IdP) för att bekräfta din identitet. När Azure AD har intygat dig, släpper Salesforce in dig.
När man pratar om en “SAML-app” syftar man oftast på SP.
Genom att använda SAML-protokollet kan du konfigurera din tjänst som en IdP för att stödja applikationsintegrationer (som Azure Ad / Google Workspace); eller som en SP (som Salesforce / Slack) för att stödja SSO för användare.
En SAML-assertion är hjärtat i SAML-protokollet. Det är en digital “lapp” skapad av IdP och skickad till en SP som säger, “Jag har bekräftat denna användares identitet.” Nästa steg är att förklara hur processen fungerar för både IdP och SP.
När du agerar som en SAML Identitetsleverantör
När din tjänst fungerar som IdP möjliggör du SAML-autentisering över flera applikationer. Det här låter användare få tillgång till olika tjänster med en enhetlig företagsidentitet.
Här är ett typiskt arbetsflöde för SAML SSO för en IdP:
- Användaren försöker nå en applikation (SP), exempelvis Salesforce.
- Applikationen omdirigerar användaren till din IdP för autentisering.
- Användaren anger sina uppgifter på IdP:ns inloggningssida.
- IdP kontrollerar uppgifterna.
- Om uppgifterna är korrekta skickar IdP en SAML-assertion tillbaka till SP.
- SP behandlar assertionen, bekräftar dess giltighet och ger användaren tillgång.
När du agerar som en SAML Tjänsteleverantör
Om din tjänst är SP, integrerar du med flera identitetsleverantörer för att ge dina användare SSO-möjlighet. Detta låter företagsanvändare från olika organisationer eller hyresgäster få säker och effektiv tillgång till din applikation.
Så här ser arbetsflödet ut för SP-initierad SSO:
- Användaren försöker logga in i din applikation.
- Din applikation genererar en SAML-förfrågan och omdirigerar användaren till IdP:ns inloggningssida.
- Användaren loggar in hos IdP (eller hoppar över detta steg om hen redan är inloggad).
- IdP verifierar användarens identitet och, när det är bekräftat, packar användarens uppgifter in i en SAML-assertion.
- IdP skickar assertionen tillbaka till din applikation.
- Din tjänst verifierar assertionen. Om den är giltig får användaren tillgång till din applikation.
Viktiga parametrar i SAML SSO
För en lyckad SAML SSO-integrering måste både IdP:er och SP:er dela vissa specifika parametrar. Här är de viktigaste:
Parametrar från IdP
- IdP Entity ID: En unik identifierare för IdP i SAML-kommunikationen, som en digital namnskylt.
- SSO URL: Inloggningsendpunkt (URL) dit SP omdirigerar användaren för autentisering.
- X.509-certifikat: En publik nyckel som används för att signera SAML-assertionen och säkerställa att den är säker. Detta är “sigillet” som verifierar äktheten.
Tips: Om din IdP erbjuder en SAML Metadata URL så blir allt enklare. Den här URL:en innehåller all nödvändig information (som certifikat, SSO-URL:er och IdP Entity ID) på ett och samma ställe. Det minimerar risken för fel från manuellt kopierande och eliminerar krångel med att manuellt uppdatera certifikatfiler.
Parametrar från SP
- SP Entity ID: SP:s unika identifierare, liknande IdP Entity ID.
- Assertion Consumer Service (ACS) URL: Detta är SP-endpunkten där SP förväntar sig att ta emot SAML-assertionen från IdP.
- RelayState (valfritt): Används för att skicka data under SAML-processen, till exempel URL:en som användaren ursprungligen försökte nå.
SAML-attributmappning och kryptering
- NameID Format: Anger formatet för användaridentifieraren (t.ex. e-postadress eller användarnamn).
- SAML-attribut: Detta är kompletterande användaruppgifter, såsom roller, e-post eller avdelning, som IdP skickar till SP.
- Exempel: Om SAML-assertionen undertecknad av IdP inkluderar
email
([email protected]),role
(admin), ochdepartment
(engineering). SP kan användarole
för att tilldela administratörsrättigheter ellerdepartment
för att gruppera användaren i rätt team. Så för att få denna viktiga användardata måste både IdP och SP komma överens om hur attribut ska mappas. Till exempel kan IdP definiera “department” som team, medan SP förväntar sig det som group. Korrekt mappning säkerställer smidig kommunikation.
- Exempel: Om SAML-assertionen undertecknad av IdP inkluderar
- Krypterad assertion (valfritt): För att skydda känslig autentiseringsdata kan SAML-assertioner krypteras.
- IdP:s roll: Krypterar assertionen med SP:s publika nyckel.
- SP:s roll: Dekrypterar assertionen med sin privata nyckel för att läsa användaruppgifter.
Nu bör du ha den information som behövs för att ställa in en SAML-anslutning. Så här integrerar du Salesforce (Service Provider) med Azure AD (Identity Provider):
- Hämta IdP Entity ID, SSO URL och certifikat från Azure AD och konfigurera dessa i Salesforce.
- Ge Salesforces SP Entity ID och ACS URL till Azure AD.
Logto gör SAML-integrationen enkel
Logto kan fungera både som IdP och SP för att stödja SAML SSO för dina applikationer.
Använda Logto som SAML IdP
Logto låter andra appar förlita sig på den för federerad identitetsautentisering och stödjer flerfaktorsautentisering (MFA) för ökad säkerhet.
- Skapa en Logto-app Gå till Logto Console > Applications och skapa en ny SAML-app.
- Konfigurera SAML-parametrar Ange appen med tjänsteleverantörens (SP) Assertion Consumer Service URL och SP Entity ID.
- Tillhandahåll metadata-URL Logto erbjuder en IdP Metadata URL som SP:er kan använda för att automatiskt hämta viktiga detaljer såsom SSO-URL:er och certifikat.
- Avancerad konfiguration (valfritt)
- Du kan skapa flera nya certifikat med fingeravtryck och utgångsdatum, men bara ett certifikat kan vara aktivt åt gången.
- Anpassa Name ID-formatet efter dina affärsbehov.
- Aktivera SAML-assertionskryptering genom att klistra in x509-certifikatet från din tjänsteleverantör för att kryptera assertionerna.
- Mappa attribut (valfritt) Anpassa enkelt hur användarattribut delas med tjänsteleverantörer (SP).
För detaljerad vägledning, besök den officiella dokumentationen här: SAML App
Använda Logto som SAML SP
Logto integrerar även med valfri företags-IdP via SAML- eller OIDC-protokoll. Oavsett om du aktiverar SP-initierad SSO för dina samlade inloggningssidor eller konfigurerar IdP-initierad SSO är processen enkel.
- Skapa en företagsanslutning Gå till Logto Console > Enterprise SSO och skapa en ny företagsanslutning. Välj SAML som protokollstandard.
- Konfigurera SAML-parametrar Ange antingen metadata URL eller metadata XML-fil från din IdP. Om metadata inte finns, byt till manuell konfiguration och ange IdP Entity ID, SSO URL, och ladda upp signeringscertifikatet.
- Dela ACS URL och SP Entity ID Ge Logtos ACS URL och SP Entity ID till din IdP för att slutföra integrationen.
- Mappa attribut (valfritt) Konfigurera användardatamappning, t.ex. e-post eller namn, så att informationen överförs korrekt mellan IdP och Logto.
- Lägg till företags-e-postdomäner I fliken “SSO Experience” för anslutningen lägger du till en eller flera e-postdomäner. Detta säkerställer att endast användare med de angivna domänerna kan autentisera sig via SSO.
- Aktivera IdP-initierad SSO (valfritt) Aktivera IdP-initierad SSO endast om det krävs av dina företagskunder. Denna funktion låter användare logga in direkt via IdP-instrumentpanelen.
För detaljerad vägledning, besök den officiella dokumentationen här: Enterprise SSO dokumentation.
Avslutande tankar
SAML erbjuder en standardiserad och säker metod för SSO, vilket gör autentisering smidigare. Logto förenklar processen oavsett om du sätter upp det som IdP eller SP. Med sitt användarvänliga gränssnitt och stöd för både moln och öppen källkod tar Logto bort komplexiteten ur SAML-integrationen. Genom att bara konfigurera några parametrar kan du koppla dina tjänster till valfri SAML IdP eller SP och fokusera på att skapa en fantastisk användarupplevelse.