ScoutId

Single Sign On

Knapp logga in med ScoutID
Ser du den här symbolen kan du logga in med ScoutID

För att kunna erbjuda fler och bättre webbtjänster utan att öka mängden inloggningsuppgifter du behöver hålla reda på har vi infört tjänsten ScoutID. ScoutID gör att du som är medlem i Scouterna bara behöver hålla reda på ett inlogg för att komma åt de flesta av våra webbsidor och etjänster.

Till en början är ScoutID endast tillgängligt för dig som är medlem i en direktansluten scoutkår, men vår ambition är att de samverkansorganisationer som är intresserade också ska anslutas och kunna använda samma inloggningslösning.

För scoutkårer och andra tjänsteleverantörer

Systemet erbjuder inloggning både för Scouternas centrala tjänster (kårsiter, webbkurser, m.m) och för externa tjänster. Det som krävs är att din tjänst har stöd för SAML2-protokollet eller JWT-tokens, något som är enkelt ordnat med plugins och bibliotek för de flesta vanliga ramverk och innehållshanteringssystem.

Några exempel:

Vi kan konfigurera ScoutID så att alla medlemmar i Scouterna kan logga in i din tjänst, eller styra så att endast de som uppfyller vissa kriterier ges tillgång. Du har också möjlighet att göra din egen filtrering baserat på data om den inloggade användaren:

  • Medlemskap i kår, avdelning, och patrull
  • Roller i organisation, distrikt, kår, avdelning, och patrull
  • Ålder
  • Namn och mailadress
  • Medlemsnummer (unikt ID)

Intresserad?

Har du en site som vänder sig till alla eller några av Scouternas medlemmar och vill erbjuda en enkel inloggning, kontakta oss på scoutid@scouterna.se så ser vi hur vi går vidare!

 

 

Instruktion: ScoutID på Joomla

Förutsättningar

  • Du är administratör med access till Joomla Backend på din webbsida (/administrator).
  • Medlemmarna är på plats som användare i Joomla. Om inte:
  • Skapa användarna manuellt eller
  • Tillåt att användare skapas i Joomla (HUR?)
  • Medlemmarnas användarnamn i Joomla är: medlemsnummer (eller stöder vi att det kan vara fornamn.efternamn@dindoman.se?)

Aktivering hos ScoutID

Skicka följande information till scoutid@scouterna.se:

  • Kårens nummer eller ID (från fliken Webbkoppling) i Scoutnet
  • Kårens domän/URL (dindomän.se)
  • Informationen på fliken Service Provider Metadata, i Pluginen, efter installation. Exempel nedan

SP-EntityID / Issuer: https://example.com/plugins/authentication/miniorangesaml/ ACS (AssertionConsumerService) URL / Single Sign-On URL (SSO): https://example.com/?morequest=acs

Installation i Joomla

Installera och aktivera en SAML2-plugin. Vi rekommenderar den från MiniOrange, gratisversionen räcker för enkel inloggning med ScoutID. Du hittar pluginen här:

https://plugins.miniorange.com/joomla-single-sign-on-sso

Konfiguration i Joomla

Konfigurera så här, fliken Service Provider Setup:

IDP https://scoutid.se/simplesaml/saml2/idp/metadata.php
Single Sign-On Service Url https://scoutid.se/simplesaml/saml2/idp/SSOService.php
X.509 Certificate ladda ned från: https://scoutid.se/simplesaml/module.php/saml/idp/certs.php/idp.crt

Spara och testa inloggningen med knapparna längst ned.

Inloggningsknapp i Joomla:

Gör en HTML-modul i Joomla med en inloggningsknapp för SCOUTID:


<a href="/?morequest=sso">
    <img src="https://cdn.scouterna.net/scoutid/login.png" 
         alt="Logga in med ScoutID" width="200"/>
</a>

Du bör också ta med en länk till:

Glömt lösenordet: https://www.scoutnet.se/request_password

Utloggning i Joomla:

Om du köpt MiniOrange Premium kan även ställa in Single Log-out:

Webbadress för utloggningssida: https://scoutid.se/simplesaml/saml2/idp/initSLO.php?RelayState=/simplesaml/logout.php

Om du inte köpt MiniOrange Premium, men ändå vill använda Single Logout-funktion kan du ställa in Logout Redirect i Joomla till: (om man nu kan det i Joomla – jag använder Community builder, där kan man ställa in det).

https://scoutid.se/simplesaml/logout.php

Hjälp

Kontakta scoutid@scouterna.se för hjälp.

ScoutID på GSuite

ScoutID kan användas för inloggning i GSuite. Det gör din användaradministration enklare samtidigt som användarna slipper hålla reda på ett separat konto för kårens epost- och fillagringstjänster.

Förutsättningar 

  • Du är administratör med access till admin.google.com 
  • Medlemmarna är på plats som användare på Gsuite. Om inte:  

Aktivering hos ScoutID

Skicka följande information till scoutid@scouterna.se: 

  • Kårens webbkopplings-id i Scoutnet (du hittar ert ID på fliken “webbkoppling” – det är inte samma som ert kårnummer!)
  • Kårens domän på GSuite (dindomän.se) 

Aktivering på Gsuite 

Ställ in följande under Säkerhet, Set up Single Sign On (SSO): 

  1. Kryssa i “Konfigurera enkel inloggning med extern identitetsleverantör” 
  2. Webbadress för inloggningssida: https://scoutid.se/simplesaml/saml2/idp/SSOService.php 
  3. Webbadress för utloggningssida: https://scoutid.se/simplesaml/saml2/idp/initSLO.php?RelayState=/simplesaml/logout.php 
  4. Ändra lösenordssida: https://www.scoutnet.se/request_password 
  5. Verifieringscertifikat: (ladda ned från: https://scoutid.se/simplesaml/module.php/saml/idp/certs.php/idp.crt) 
  6. Kryssa i rutan “Använd en domänspecifik utfärdare”. 

Testa inloggningen 

  1. Surfa till: https://mail.google.com/a/dindoman.se
  2. Se att ScoutID-inloggningen visas:
    1. Fyll i Användarnamn (medlemsnummer eller primär epost) och lösenord från Scoutnet.
    2. Se att du kommer tillbaka till Gmail och loggas in som den användaren (fornamn.efternamn@dindoman.se) 

Hjälp

Kontakta scoutid@scouterna.se för hjälp.

Generisk JWT

för tex javascript-ramverk så som react och vue.

Förutsättningar

  • Ditt projekt ligger online¹ och ansluts via https.
  • Ditt projekt har en backend som klarar av att verifiera JWT tokens med asymetic RS256-nyckel.

Hur vår JWT setup funkar

JWT lösningen är byggd ovanpå SAML2 lösningen, så:

  • Ditt projekt ställer en ajax förfrågan och frågar om användaren är inloggad i scoutid.
  • Om användaren inte är inloggad, så får du med en url i svaret, dit du kan skicka använaren för att logga in (där görs en SAML2-inloggning),
  • Efter att användaren loggat in i scoutid, landar användaren i ditt projekt igen. (på en url konfigurerad i scoutid).
  • Ditt projekt ställer igen en ajax förfrågan och frågar om användaren är inloggad i scoutid.
  • Som svar får du en JWT-token, men en gilltlighets tid på 15minuter, efter dessa 15 minuter så får du förnya / be om en ny, vilket du får om användaren fortfarande är inloggad i scoutid.
  • Denna JWT-token skickar du sen med till din backend, I backend verifierar du att tokenen är gilltlig, om den är för gammal, rekomenderas att du svarar med en felkod 498, och att du då i frontend automatiskt hämtar en ny token, och skickar om förfrågan till din backend.
  • Då tokenen innehåller informationen om kår med-mera (se ovan), så behöver din backend inte ha koll på sessioner.

Kod Exemple

const login = async () => {
   const response = await fetch("https://scoutid.se/jwt/jwt.php?app_id=" + location.hostname, {credentials: 'include'});
   if(!response.ok) throw response;
   const result = await response.json();
   if(!result || !result.ok || !result.token) {
      throw result;
   }
   return result.token;
};

login().then(console.log)

 

Vår nuvarande publika RS256-nyckel

-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApjMTez3ey8PjJtAx/XrA
nnburBb9DRcqbPYAuR75BSF3Nau8DIiCZEyc4MK88Vji7bLC16GfIldxnBc7AGmF
IG6u7sZJhFd1zb9ggoSVU68c5RM0AhTeCoYyuZj7Vd2rM6PkAzi+wVjVFIAntmIf
KMrUuQqstLof8vDoPhY/37ciI1tlrkLut3CMOyE5sFbFr/D8lvIX7wELUKaz0BIz
XzBsE5PhB7EoC4Ureglm2SRxHL/HcXMYjun1M2yaMDMTJEW8pom0UbRLePx9CT56
hmqVYBGZHKKt97nQiHrYjNeYlV1Czqu9NUzFYInRikhuUCtmSrjkeoDTBVFY79lx
NLnUlc4iyKu+RsHfB+bORuqc2ockxzz8CEwAkNvmqpVV+P1msGrq4aF5LjOvV+iq
mfZYXpe/9ECYHOKxN2rExyCwAU6bUTDtrSCMFIZc1SlZ7+OgcX/9V0Cxlh7DURh6
xpHgCBiAMK5LgcJt7LBth36+Kp7IjE0r4nY+HIfE8D5uTztscD2XAoA5K46TjLPy
XVQhIUSP/7nLuq+SNfam6TX4HDm0HP2AzX5I4am5amUGl7/fWWdS50T0ZmMH7s7C
GQ6VodVFuYVL+9VQTw6UtlWYpxcrsGbt6Ycpt18PZF/S/k4r55r330hJMRIbNb+4
ehXj1RGoxKDk09vDzXCsJnsCAwEAAQ==
-----END PUBLIC KEY-----

Hjälp

Kontakta scoutid@scouterna.se för hjälp.

Generisk SAML2

Förutsättningar

  • Ditt projekt är online, använder https
  • Ni har möjligheten att lägga till ett bibliotek för att hantera inloggning via SAML2

Vad vi behöver av dig

För att kunna konfigurerar scoutid för ditt projekt, så är det främst 4 uppgifter vi ställer in:

  • Namn, Vad kallar vi ditt projekt (så vi lätt hittar i vår lista)
  • Entity-id, vad presenterar ditt projekt sig som, beror lite på vilket bibliotek för SAML2 du använder, men är ofta domän-namnet “myproject.se” eller din url “https://myproject.se/”. Om du testar att logga in innan vi ställt in saker på vår sida, så kommer ditt Entity-id stå med i felmeddelandet.
  • URL:n dit vi återkopplar efter lyckad inloggning, ofta kallad ACS eller Assertion-Consumer-Service-URL.
  • URL:n dit vi återkopllar vid utloggning, ofta kallad SLS eller Single-Logout-Service-URL, i flera bibliotek så är det samma url som till ACS.

Utöver det så kan vi lägga in filtreringar för att bara släppa igenom medlemmar av en specifik kår, men har ditt bibliotek möjlighet att göra filtreringar, så kan det vara bekvämare att ni själv ha kontrollen över dessa.

Vad du behöver ställa in hos er

  • Du behöver lägga till scoutid som IDP, IDentity Provider
  • Du behöver ställa in att du litar på scoutid, genom att ladda ner och installera vårat certificat i ditt projekt.
  • Du behöver berätta på vilken URL du når scoutid, för SSO, Single Sign On, så är det https://scoutid.se/simplesaml/saml2/idp/SSOService.php
  • Ibland vill biblioteket istället ha “metadata”, den finns här: https://scoutid.se/simplesaml/saml2/idp/metadata.php
  • Ibland finns möjligheten att ställa in SLS, Single Logout Service, den är då https://scoutid.se/simplesaml/saml2/idp/SingleLogoutService.php

Hjälp

Kontakta scoutid@scouterna.se för hjälp.

OpenID Connect / oAuth2

ScoutiD implementerar OpenID Connect, ett autentiseringsprotokoll byggt på oAuth2.

Kom igång

Om du har frågor, kontakta oss gärna på scoutid@scouterna.se!

Implementera OpenID

Det finns OpenID Connect-bibliotek för de flesta programmeringsspråk och ramverk. Om du vill implementera din klient själv finns det bra guider och en tydlig specifikation. Läs t.ex:

Registrera en klient

För att registrera en klient skickar du ett mail till scoutid@scouterna.se. Vi återkommer då med den information du behöver. Inkludera detta i ditt mail:

Namn Namn på din applikation
Ansvarig Namn på den person eller organisation som är personuppgiftsansvarig för applikationen (t.ex. du eller din scoutkår)
Beskrivning En kort beskrivning av din applikation
Autentiseringsflöde Använder ni auth code flow (rekommenderas) eller implicit flow (endast för klienter utan server/backend).
redirect URL En eller flera URL:er dit ScoutID får omdirigera användare med kod eller token efter autentisering.
redirect URL för test Om du har en separat testmiljö eller vill testa lokalt.

 

När vi registrerat din klient får du mail med de uppgifter du behöver. Du får en klient för produktion, med live-data, och en testklient (om du uppgett en separat redirect URL för test). För testklienten får du också användaruppgifter till testkonton med fingerade användardata.

ClientID Publikt ID för din klient, som ett “användarnamn”
Client secret Hemlighet som används som “lösenord” för att identifiera din klient gentemot ScoutID. Får inte publiceras – om du misstänker att din klienthemlighet har läckt måste du genast kontakta oss via scoutid@scouterna.se.

 

Endpoints och konfiguration

ScoutID publicerar alla endpoints och nödvändig konfiguration i JSON-format. Många klienter och bibliotek kan läsa informationen direkt, andra kräver att du kopierar relevanta delar.

Testmiljö, test.scoutid.se https://test.scoutid.se/simplesaml/module.php/oidc/openid-configuration.php
Produktion, scoutid.se https://scoutid.se/simplesaml/module.php/oidc/openid-configuration.php