Naadloze en privé-gebruikersauthenticatie met FedCM: de aanpak van Seznam

Natalia Markoborodova
Natalia Markoborodova

Gepubliceerd: 8 september 2025

Brancheleiders in diverse sectoren begrijpen hoe belangrijk het is om privacy te beschermen en tegelijkertijd een geweldige gebruikerservaring te bieden. Seznam streeft naar een compromisloze gebruikerservaring en privacy en heeft Federated Credential Management (FedCM) succesvol geïntegreerd.

Bedrijven die profiteren van FedCM

Organisaties in diverse domeinen integreren FedCM met hun oplossingen. Omdat FedCM is ontworpen voor federatief identiteitsbeheer, zijn identiteitsproviders (IdP's) de belangrijkste begunstigden. Zij gebruiken het om een ​​verbeterde aanmeldervaring te bieden. E-commercedienstverleners en betalingsproviders, waarvan velen ook als identiteitsprovider fungeren, zien ook mogelijkheden om de gebruikerservaring via FedCM te verbeteren.

Seznam

Seznam is een Europees technologiebedrijf en identiteitsprovider die 90% van de Tsjechische bevolking bereikt. Het fungeert als een sociaal, kennis- en contentcentrum. Seznam implementeerde FedCM zodat klanten van webwinkels die op de platforms van partners actief zijn, zich konden aanmelden met hun Seznam-account.

FedCM-dialoog op eshop.starkl.com, waarin een gebruiker wordt gevraagd zich aan te melden met zijn of haar Seznam-account.
FedCM-dialoogvenster waarin een gebruiker wordt gevraagd zich aan te melden bij Seznam op de site van een partner.

Dankzij FedCM wist Seznam een ​​aanzienlijke stijging te realiseren in het aantal gebruikers dat zich aanmeldde op partnernetwerken, een verbeterde gebruikerservaring en een consistente identiteitsstroom, ongeacht de beschikbaarheid van cookies van derden.

Motivatie

Seznam koos voor de implementatie van FedCM vanwege verschillende erkende voordelen:

  • FedCM is ontworpen met de eindgebruiker in gedachten en geeft gebruikers controle over de informatie die aan de IdP wordt verstrekt. Dit sluit aan bij Seznam's visie op een veilige en privéomgeving voor haar gebruikers.
  • FedCM is een ingebouwde browserfunctie en is compatibel met de bestaande aanmeldervaring van Seznam, die gebruikmaakt van de OAuth 2.0-standaard.
  • FedCM is een privacygerichte benadering van identiteitsfederatie. Zo wordt het bezoek van de gebruiker aan de Relying Party (RP) alleen gedeeld met de IdP als de gebruiker inlogt. Dit sluit aan bij Seznams visie op duurzaam ondernemen.

Implementatiedetails

Seznam implementeerde FedCM als een laag bovenop zijn bestaande OAuth-oplossing. In deze architectuur verzendt de FedCM-flow veilig een OAuth-autorisatiecode van de IdP naar de RP's.

FedCM-stroom, waarin het FedCM-token wordt weergegeven dat is uitgewisseld voor een OAuth-autorisatiecode aan de IdP-zijde
FedCM-flow geïntegreerd met OAuth. Zie de diagramcode .

Implementatie-inspanning

Seznam vond de implementatie van FedCM eenvoudig en in lijn met de bestaande aanpak. Het onderzoek en de API-implementatie duurden een maand en vereisten twee ontwikkelaars. Het duurde minder dan twee maanden om FedCM in productie te nemen. Het proces was iteratief, met veel tijd voor het bestuderen van de API.

Uitdagingen

Als early adopter identificeerde Seznam diverse uitdagingen en gaf waardevolle feedback die hielp bij het verder ontwikkelen van de API.

Ondersteuning voor meerdere identiteitsproviders

Seznam was geïnteresseerd in de ondersteuning van FedCM voor meerdere identiteitsproviders. Met deze functie wilde het gebruikers laten kiezen tussen Seznam- of Google-accounts op partner-RP's. Toen Seznam echter voor het eerst met de FedCM-implementatie begon, bevond de functie zich nog in een vroeg implementatiestadium en moesten ontwikkelaars zich aanmelden voor een proefversie en een token gebruiken om de functie voor gebruikers te activeren. Daarom besloot Seznam te wachten tot de functie beschikbaar zou zijn in Chrome Stable.

De functie is beschikbaar vanaf Chrome 136 en ontwikkelaars kunnen ondersteuning voor meerdere identiteitsproviders configureren. Om bijvoorbeeld zowel Seznam- als Google-identiteitsproviders te ondersteunen, kan de IdP de twee providers opnemen in één get() -aanroep, en de RP kan dit onafhankelijk doen:

  // Executed on the RP's side:
    const credential = await navigator.credentials.get({
      identity: {
        providers: [
          {
            // IdP1: Seznam config file URL
            configURL: 'https://szn.cz/.well-known/web-identity',
            clientId: '123',
          },
          {
            // Allow Google Sign-in
            configURL: 'https://accounts.google.com/gsi/fedcm.json',
            clientId: '456',
          },
        ],
      },
    });

Seznam geeft aan dat deze functionaliteit deel zal uitmaken van hun oplossing. Daarnaast implementeert het FedCM-team ondersteuning voor meerdere SDK's , met ondersteuning voor meerdere get() -aanroepen.

Privé DNS

Seznam ondervond tijdens de testfase een uitdaging met betrekking tot de netwerkconfiguratie. De test-IdP-server bevond zich in een privénetwerk, dat alleen toegankelijk was via een privé-DNS. Deze configuratie is gebruikelijk voor interne test- en ontwikkelomgevingen vóór openbare bekendmaking.

Deze opstelling leidt echter tot een uitdaging: omdat een well-known bestand moet worden geserveerd vanaf een eTLD+1 en een privé-ontwikkelingsdomein niet is geregistreerd in de Public Suffix List , zal de browser geen verzoeken versturen om het well-known bestand op te halen dat op het ontwikkelingsdomein is gehost:

  • login.idp.example : voorbeeld van productiedomein.
  • idp.example/.well-known/web-identity : voorbeeld van well-known bestand in productie.
  • login.dev.idp.example : voorbeeld van ontwikkelingsdomein.
  • login.dev.idp.example/.well-known/web-identity : voorbeeld van een well-known bestand in een ontwikkelomgeving.

Wanneer de FedCM-implementatie op een privédomein wordt gehost, resulteren browserverzoeken aan het well-known bestand in de volgende fout:

The fetch of the well-known file resulted in a network error: ERR_NAME_NOT_RESOLVED

U kunt deze fout oplossen door de Chrome-vlag #fedcm-without-well-known-enforcement in te schakelen. Wanneer deze vlag is ingeschakeld, slaat de browser het ophalen van het well-known bestand over voor testdoeleinden. Lees hoe u testvlaggen in Chrome inschakelt .

Aangepaste informatieverstrekking

Seznam wilde ook aanvullende informatie toevoegen aan het oorspronkelijke FedCM UI-ontwerp. Het standaard FedCM-dialoogvenster toont een vaste melding aan de gebruiker, waarin staat dat specifieke gegevens – meestal de profielfoto, naam en het e-mailadres van de gebruiker – met de RP worden gedeeld.

Het FedCM-team verwerkte feedback en breidde de API uit om de openbaarmaking die aan de gebruiker wordt gepresenteerd, aan te passen. Met de functie 'Doorgaan' kan de IdP de gebruiker bijvoorbeeld doorverwijzen naar een aangepaste pagina om aanvullende informatie of rechten aan te vragen. Aangepaste parameters en velden , ondersteund vanaf Chrome 132, maken verdere aanpassing mogelijk.

IdP-pagina waarop wordt aangegeven dat een gebruiker aanvullende machtigingen moet verlenen om door te kunnen gaan met de aanmelding bij FedCM, zoals het bekijken en downloaden van Drive-bestanden en agenda-evenementen.
De gebruiker kan de door de RP aan het ID-assertie-eindpunt doorgegeven machtigingen bekijken en verlenen met de `Parameters`-API .

Validatie van de oorsprong van de vertrouwende partij

De IdP-server moet de HTTP-header van de Origin van een binnenkomende FedCM-aanvraag valideren om er zeker van te zijn dat de aanvraag overeenkomt met de oorsprong die de RP vooraf bij de IdP heeft geregistreerd. Dit garandeert dat de FedCM ID-assertieaanvraag afkomstig is van een geautoriseerde RP en niet van een aanvaller die client_id gebruikt.

Seznam heeft een bijzonder geval: wanneer zijn partner-RP's zich bij Seznam registreren, vraagt ​​het bedrijf niet naar de herkomstgegevens van de RP. Dit betekent dat de herkomst van de RP niet kan worden geverifieerd.

De FedCM-integratie van Seznam bouwt voort op een bestaande OAuth-oplossing. Er werd gekozen voor de alternatieve methode, namelijk het valideren van zowel client_id als client_secret van RP, om ervoor te zorgen dat de oplossing veilig bleef zonder de oorsprong te controleren.

Identiteitsprovider gebruikersgericht domein

De infrastructuur voor gebruikersauthenticatie van Seznam draait primair op het domein szn.cz , waar de benodigde IdP-eindpunten voor FedCM worden gehost. De belangrijkste bedrijfsidentiteit en het domein waaronder gebruikers de services breed herkennen en vertrouwen, is echter seznam.cz .

Het FedCM-dialoogvenster geeft het werkelijke oorspronkelijke domein van de IdP-eindpunten weer: szn.cz Gebruikers die bekend zijn met het merk seznam.cz kunnen in de war raken en aarzelen wanneer ze tijdens het aanmelden worden gevraagd om zich aan te melden met het minder bekende domein szn.cz

Vanaf Chrome 141 staat FedCM niet toe dat een ander domein wordt weergegeven dan het domein dat de IdP-implementatie host. Deze beperking is een bewuste ontwerpkeuze, bedoeld om transparantie voor de gebruiker te garanderen. Het FedCM-team erkent echter de uitdagingen die deze beperking met zich mee kan brengen en bespreekt mogelijke aanpassingen.

Invloed

Met de FedCM API kan Seznam nu autorisatiestromen met één tik aanbieden aan partnergebruikers. Het benadrukte de voordelen van de gebruikerservaring van FedCM ten opzichte van andere authenticatiemethoden.

Hoewel Seznam een ​​significante toename in gebruikersbetrokkenheid constateerde op websites die overstapten op FedCM-aanmelding, voerde het geen uitgebreide analyse uit om de precieze directe impact van andere factoren te isoleren. Vóór de integratie met FedCM maakte de implementatie gastafrekeningen mogelijk met behulp van gehashte e-mailadressen met toestemming voor gebruikersidentificatie. De uitdaging bij het uitvoeren van een dergelijke analyse was om in te schatten of een gebruikersconversie aan FedCM kon worden toegeschreven, of dat de gebruiker een aankoop zou hebben voltooid via gastafrekening. Seznams hypothese suggereert dat het verbeterde gebruiksgemak van FedCM mogelijk heeft bijgedragen aan deze hogere conversieratio.

Conclusie

Seznam heeft FedCM succesvol geïmplementeerd en biedt een alternatieve autorisatiestroom naast de bestaande OAuth-oplossing. Hoewel Seznam enkele uitdagingen ondervond met betrekking tot de ondersteuning van identiteitsproviders, privé-DNS-instellingen, aanpassing van de openbaarmakingstekst, validatie van de oorsprong van de vertrouwende partij en de weergave van domeinen aan de gebruiker, is de API sinds de implementatie volwassener geworden. Het FedCM-team heeft feedback van Seznam en andere early adopters verwerkt, waardoor er betere tools beschikbaar zijn om deze uitdagingen aan te pakken. Als volgende stap is Seznam van plan de ondersteuning van FedCM voor meerdere identiteitsproviders te implementeren.