Sökresultat :

×

Moderna Drupal-applikationer förlitar sig ofta på OAuth 2.0-identitetsleverantörer för centraliserad autentisering. Även om denna metod stärker autentiseringen kan den skapa en lucka i hur användarsessioner hanteras inuti Drupal.

Autentisering kan delegeras till identitetsleverantören, men sessionshanteringen finns kvar inom Drupal, vilket skapar en separation mellan tokengiltighet och sessionens livslängd.

Lösningen introducerar en viss nivå av anpassningsbarhet som fungerar direkt i Drupal. Resultatet är konsekvent åtkomstkontroll, minskad säkerhetsrisk och sessionsbeteende som korrekt speglar OAuth-auktoriseringspolicyer.

I det här avsnittet diskuterar vi allt från krav och implementeringsprocess till resultat.

usecase-kortlogotyp

OAuth-klientmodul

Ladda ner modul

När en Drupal-webbplats använder OAuth för autentisering förväntas åtkomstbeslut följa OAuth-tokens giltighetstid. I teorin bör åtkomsten upphöra omedelbart när token löper ut. I praktiken är det inte alltid så som händer.

Drupal-sessioner fortsätter ofta även efter att den associerade OAuth-token har löpt ut. Eftersom sessionshantering och tokenvalidering fungerar separat finns det ingen inbyggd mekanism för att automatiskt avsluta en aktiv Drupal-session när token blir ogiltig.

  • Denna frånkoppling skapar ett allvarligt gap i åtkomstkontrollen. Användare kan behålla åtkomst bortom det avsedda auktoriseringsfönstret. Utgångna tokens utlöser inte på ett tillförlitligt sätt en sessionsavstängning. Det finns ingen centraliserad verkställighetspunkt för att säkerställa att sessionens livslängd strikt återspeglar tokens livslängd.
  • Med detta kan du som administratör:
    • Synkronisera Drupals sessionstid med OAuth-tokens utgångsdatum.
    • Välj exakt den parameter för tokenutgång från identitetsleverantören som du vill använda.
    • Bestäm exakt vad som händer i Drupal när token löper ut
  • Med den här konfigurationen slutar Drupal att hantera autentisering och sessionshantering separat; de fungerar tillsammans, precis som de ska.

När du loggar in överlämnar OAuth-identitetsleverantören en åtkomsttoken med en egen utgångstid. Modulen hämtar det utgångsvärdet från token och använder det för att ställa in hur länge din Drupal-session ska vara.

  • När du har aktiverat synkronisering händer följande:
    • Drupal matchar din sessionslängd med OAuth-tokens giltighet.
    • Den kontrollerar hela tiden om token fortfarande är giltig medan du är inloggad.
    • I det ögonblick som token löper ut följer Drupal den åtgärd du har ställt in.
  • Som administratör får du ett par alternativ:
    • Du kan välja att kasta ut användare direkt när token löper ut.
    • Eller så kan du försöka automatisera och få Drupal att försöka förnya token med en uppdateringstoken. Friskrivningsklausul – Detta beror på din identitetsleverantör.
  • Allt detta körs av sig självt; det behövs ingen extra kod eller externa schemaläggare. Drupal tar bara hand om det.
  • Synkronisering mellan OAuth-tokengiltighet och Drupal-sessioner.
  • Eliminering av inaktuella eller ohanterade användarsessioner.
  • Förbättrad konsekvens i åtkomstkontrollen.
  • Minskad säkerhetsrisk från utgången token.

Sessionshantering med synkronisering av tokenutgång gör det möjligt för Drupal att framtvinga åtkomstkontroll – specifikt återkallelse av åtkomst – baserat på giltigheten av OAuth-token. Hela poängen med OAuth-token är att ha något närvarande med dig som ger dig åtkomst till något. Det är bara logiskt att när den token löper ut, bör även åtkomsten återkallas.

Vi kontaktar dig så snart som möjligt

mo-form

 Tack för ditt svar. Vi återkommer snart.

Något gick fel. Skicka din fråga igen

Innehållsförteckning

Hej där!

Behövs hjälp? Vi är här!

stödja