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

Natalia Markoborodova
Natalia Markoborodova

Gepubliceerd: 8 september 2025

Leiders in diverse sectoren begrijpen hoe belangrijk het is om de privacy te beschermen en tegelijkertijd een uitstekende gebruikerservaring te bieden. Seznam zet zich in voor een compromisloze gebruikerservaring en privacy en heeft met succes Federated Credential Management (FedCM) geïntegreerd.

Bedrijven die profiteren van FedCM

Organisaties in uiteenlopende sectoren integreren FedCM in hun oplossingen. Omdat FedCM is ontworpen voor federatief identiteitsbeheer, profiteren identiteitsproviders (IdP's) er het meest van. Zij gebruiken het om een ​​verbeterde aanmeldervaring te bieden. Aanbieders van e-commercediensten en betaalproviders, waarvan velen ook als identiteitsproviders fungeren, zien eveneens mogelijkheden om de gebruikerservaring via FedCM te verbeteren.

Seznam

Seznam is een Europees technologiebedrijf en identiteitsaanbieder die 90% van de Tsjechische bevolking bereikt. Het fungeert als een sociaal, kennis- en contentplatform. Seznam heeft FedCM geïmplementeerd om klanten van webwinkels die actief zijn op de platforms van haar partners te laten inloggen met hun Seznam-account.

FedCM-dialoogvenster op eshop.starkl.com, waarin een gebruiker wordt gevraagd in te loggen met zijn Seznam-account.
Een FedCM-dialoogvenster waarin een gebruiker wordt gevraagd om in te loggen met Seznam op de website van een partner.

Met FedCM realiseerde Seznam een ​​aanzienlijke toename van het aantal gebruikersaanmeldingen 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 een aantal erkende voordelen:

  • FedCM is ontworpen met de eindgebruiker in gedachten, waardoor gebruikers controle hebben over de informatie die aan de identiteitsprovider wordt verstrekt. Dit sluit aan bij Seznams visie op een veilige en privacyvriendelijke 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 bijvoorbeeld het bezoek van de gebruiker aan de relying party (RP) alleen met de IdP gedeeld als de gebruiker zich aanmeldt. Dit sluit aan bij Seznams visie op duurzaam ondernemen.

Implementatiedetails

Seznam implementeerde FedCM als een extra laag bovenop hun bestaande OAuth-oplossing. In deze architectuur verzendt de FedCM-flow op een veilige manier een OAuth-autorisatiecode van de IdP naar de RP's.

FedCM-flow, die laat zien hoe het FedCM-token aan de kant van de identiteitsprovider wordt uitgewisseld voor een OAuth-autorisatiecode.
FedCM-flow geïntegreerd met OAuth. Zie het diagram en de code .

Implementatie-inspanning

Seznam vond de FedCM-implementatie eenvoudig en passend bij hun bestaande werkwijze. 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, waarbij veel tijd werd besteed aan het bestuderen van de API.

Uitdagingen

Als een van de eerste gebruikers signaleerde Seznam verschillende uitdagingen en gaf waardevolle feedback die heeft bijgedragen aan de verdere ontwikkeling van de API.

Ondersteuning voor meerdere identiteitsaanbieders

Seznam was geïnteresseerd in de ondersteuning van FedCM voor meerdere identiteitsproviders. Met deze functie wilde het gebruikers de mogelijkheid bieden om te kiezen tussen Seznam- of Google-accounts op partner-RP's. Toen Seznam echter voor het eerst de implementatie van FedCM benaderde, bevond de functie zich nog in een vroeg stadium. Ontwikkelaars moesten zich aanmelden voor een origin trial en een token gebruiken om de functie voor gebruikers te activeren. Daarom besloot Seznam te wachten tot de functie in Chrome Stable beschikbaar zou komen.

Deze functie is beschikbaar vanaf Chrome versie 136, en ontwikkelaars kunnen ondersteuning voor meerdere identiteitsproviders configureren. Om bijvoorbeeld zowel Seznam als Google als identiteitsproviders te ondersteunen, kan de IdP beide providers in één get() aanroep opnemen, 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 functie onderdeel zal uitmaken van hun oplossing. Daarnaast implementeert het FedCM-team ondersteuning voor meerdere SDK's , inclusief ondersteuning voor meerdere get() aanroepen.

Privé-DNS

Seznam stuitte tijdens de testfase op een probleem met de netwerkconfiguratie. De test-IdP-server bevond zich in een privénetwerk dat alleen toegankelijk was via een privé-DNS-adres. Deze configuratie is gebruikelijk voor interne test- en ontwikkelomgevingen voordat de dienst openbaar wordt gemaakt.

Deze opzet leidt echter tot een probleem: omdat een well-known bestand moet worden aangeboden 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 het ontwikkelingsdomein op te halen.

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

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

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

Je 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 voor testdoeleinden over. Lees hoe je testvlaggen in Chrome inschakelt .

Aangepaste informatie openbaarmaking

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

Het FedCM-team heeft feedback verwerkt en de API uitgebreid om de weergave van de informatie die aan de gebruiker wordt getoond, aan te passen. Met de functie 'Doorgaan op' kan de identiteitsprovider de gebruiker bijvoorbeeld doorverwijzen naar een aangepaste pagina om aanvullende informatie of toestemmingen op te vragen. De functies voor aangepaste parameters en velden , die vanaf Chrome versie 132 worden ondersteund, maken verdere aanpassing mogelijk.

Op de IdP-pagina wordt aangegeven dat een gebruiker extra machtigingen moet verlenen om de FedCM-registratie te voltooien, 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 aanvullende machtigingen verlenen met behulp van de `Parameters`-API .

Validatie van de oorsprong door de vertrouwende partij

De IdP-server moet de Origin HTTP-header van een inkomend FedCM-verzoek valideren om ervoor te zorgen dat het verzoek overeenkomt met de oorsprong die de RP vooraf bij de IdP heeft geregistreerd. Dit garandeert dat het FedCM ID-verificatieverzoek afkomstig is van een geautoriseerde RP en niet van een aanvaller die client_id gebruikt.

Seznam kent een uitzondering: wanneer partner-RP's zich bij Seznam registreren, vraagt ​​Seznam niet om 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 is gekozen voor een alternatieve aanpak waarbij zowel client_id als client_secret van de Relying Party (RP) worden gevalideerd om de veiligheid van de oplossing te garanderen zonder de oorsprong te controleren.

domein van de identiteitsaanbieder dat zichtbaar is voor de gebruiker

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

Het FedCM-dialoogvenster toont het daadwerkelijke oorsprongsdomein van de IdP-eindpunten: szn.cz Gebruikers die bekend zijn met het merk seznam.cz kunnen verwarring ervaren en aarzelen wanneer ze tijdens het aanmeldingsproces worden gevraagd om in te loggen met het minder bekende domein szn.cz

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

Invloed

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

Hoewel Seznam een ​​aanzienlijke toename in gebruikersbetrokkenheid constateerde op websites die overstapten op FedCM-aanmelding, voerde het bedrijf geen uitgebreide analyse uit om de precieze directe impact te isoleren van andere factoren. Vóór de FedCM-integratie stond de implementatie afrekenen als gast toe met behulp van goedgekeurde, gehashte e-mailadressen voor gebruikersidentificatie. De uitdaging bij het uitvoeren van een dergelijke analyse was om te bepalen of een gebruikersconversie kon worden toegeschreven aan FedCM, of dat de gebruiker de aankoop sowieso via de gastcheckout zou hebben voltooid. Seznams hypothese suggereert dat het verbeterde gebruiksgemak van FedCM mogelijk heeft bijgedragen aan dit hogere conversiepercentage.

Conclusie

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