Présentation de l'implémentation des clés d'accès côté serveur
Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
Présentation
Lorsqu'ils utilisent des clés d'accès synchronisées, les utilisateurs s'authentifient auprès d'un fournisseur de clés d'accès.
Pour créer et vous authentifier à l'aide de clés d'accès, vous utiliserez l'API WebAuthn pour le Web ou l'API Gestionnaire d'identifiants pour les applications Android. Ces API gèrent la communication entre le client et le fournisseur de clés d'accès.
Bien que ces API soient appelées à partir d'un client tel qu'une page Web ou une application Android, vous devez implémenter le reste des fonctionnalités sur le serveur pour terminer vos cas d'utilisation de l'authentification.
L'implémentation d'une clé d'accès comprend deux fonctionnalités:
Enregistrement de la clé d'accès. Utilisez l'API WebAuthn ou l'API Gestionnaire d'identifiants pour permettre à l'utilisateur de créer une clé d'accès. Stockez la clé publique associée sur le serveur.
Authentification via une clé d'accès Obtenez une question d'authentification auprès du serveur et utilisez l'API WebAuthn ou l'API Gestionnaire d'identifiants pour permettre à l'utilisateur de signer cette question avec sa clé d'accès. Vérifiez la signature sur le serveur. Si la signature est valide, authentifiez l'utilisateur.
Bibliothèques côté serveur
Bien qu'il soit possible d'implémenter de toutes pièces la fonctionnalité des clés d'accès côté serveur, nous vous recommandons de vous appuyer sur une bibliothèque.
Un serveur qui prend en charge la création et l'authentification de clés d'accès est appelé serveur FIDO2 (serveur FIDO en abrégé). Par extension, nous ferons référence ici aux bibliothèques côté serveur qui implémentent la prise en charge des clés d'accès en tant que bibliothèques côté serveur FIDO.
Pourquoi utiliser une bibliothèque ?
L'utilisation d'une bibliothèque FIDO côté serveur présente plusieurs avantages:
Temps passé et expérience des développeurs La spécification WebAuthn est complexe. Les bibliothèques FIDO côté serveur peuvent fournir des API simples pour implémenter des clés d'accès, ce qui peut vous faire économiser du temps et des ressources de développement.
Facilité de gestion. La spécification WebAuthn est encore susceptible d'être modifiée. L'utilisation de la dernière version d'une bibliothèque activement gérée permet de maintenir votre implémentation à jour.
Sécurité et conformité. Vous souhaitez que l'implémentation de votre clé d'accès soit conforme à la spécification WebAuthn et à ses exigences de sécurité. Les bibliothèques FIDO côté serveur peuvent vous aider à sécuriser votre implémentation et à la rendre conforme à la spécification. Selon votre produit et votre secteur d'activité, votre implémentation peut également être soumise à des réglementations qui vous obligent à utiliser des normes de sécurité spécifiques pour l'authentification.
Si possible, envisagez de soutenir financièrement les projets Open Source sur lesquels s'appuie votre produit.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/25 (UTC).
[null,null,["Dernière mise à jour le 2025/07/25 (UTC)."],[[["\u003cp\u003ePasskeys utilize passkey providers, like Google Password Manager or Apple iCloud Keychain, for secure credential generation and authentication.\u003c/p\u003e\n"],["\u003cp\u003eServer-side implementation involves passkey registration (storing public keys) and authentication (verifying signatures).\u003c/p\u003e\n"],["\u003cp\u003eUsing FIDO server-side libraries is recommended for simplified implementation, maintainability, and enhanced security.\u003c/p\u003e\n"],["\u003cp\u003eSeveral curated lists of FIDO server-side libraries are available for various programming languages, including JavaScript, Go, and Python.\u003c/p\u003e\n"]]],[],null,["| **Note:** This article is part of a series on server-side passkey implementation. Explore the other articles in this series: [Server-side passkey registration](/identity/passkeys/developer-guides/server-registration) and [Server-side passkey authentication](/identity/passkeys/developer-guides/server-authentication).\n\nOverview\n\nWhen using [synchronized passkeys](https://developers.google.com/identity/passkeys/supported-environments#:%7E:text=Passkeys%20can%20be%20synchronized%20across%20devices%20in%20the%20same%20ecosystem), people authenticate with a *passkey provider*.\n| **Key Term:** A *passkey provider* is a piece of software used to generate and provide cryptographically-secure credentials. Examples of passkey providers include Google Password Manager, Apple iCloud Keychain, Windows Hello, Dashlane and more.\n\nTo create and authenticate with passkeys, you will use the [WebAuthn API](https://developer.mozilla.org/docs/Web/API/Web_Authentication_API) for the web, or the [Credential Manager API](https://developer.android.com/training/sign-in/passkeys) for Android apps. These APIs handle the communication between the client and the passkey provider.\n\nWhile these APIs are called from a client such as a web page or Android app, you need to implement the rest of the functionality on the server to complete your authentication use cases.\n\nA passkey implementation consists of two functionalities:\n\n1. **Passkey registration.** Use the WebAuthn API or the Credential Manager API to let the user create a passkey. Store the associated public key on the server.\n2. **Authentication with a passkey**. Get an authentication challenge from the server and use the WebAuthn API or Credential Manager API to let the user sign this challenge with their passkey. Verify the signature on the server. If the signature is valid, authenticate the user.\n\nServer-side libraries\n\nWhile it's possible to implement server-side passkeys functionality from scratch, we recommend that you rely on a library instead.\n\nA server that supports passkey creation and authentication is called a *FIDO2 server* , or *FIDO server* for short. By extension, we'll refer here to server-side libraries that implement passkey support as *FIDO server-side libraries*.\n| **Note:** [FIDO2](https://fidoalliance.org/specifications/) is an umbrella term for the effort that produced the [WebAuthn API](https://developer.mozilla.org/docs/Web/API/Web_Authentication_API) and the [CTAP2 protocol](https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-client-to-authenticator-protocol-v2.0-id-20180227.html) that passkeys rely on.\n\nWhy use a library?\n\nUsing a FIDO server-side library has several advantages:\n\n- **Time and developer experience.** The [WebAuthn specification](https://www.w3.org/TR/webauthn/) is complex. FIDO server-side libraries can provide simple APIs for implementing passkeys, which can save you time and development resources.\n- **Maintainability.** The [WebAuthn specification](https://www.w3.org/TR/webauthn/) is still subject to change. Using the latest version of an actively maintained library helps keep your implementation up-to-date.\n- **Security and compliance.** You want your passkey implementation to conform to the WebAuthn specification and its security requirements. FIDO server-side libraries can help you keep your implementation secure and compliant with the specification. Depending on your product and industry, your implementation may also be subject to regulations that require you to use specific security standards for authentication.\n\nIf possible, consider financially supporting open source projects your product relies on.\n\nLibraries **Note:** To select your passkey library, refer to the [selection criteria](https://web.dev/blog/passkey-lib-criteria).\n\n- The [awesome-webauthn](https://github.com/herrjemand/awesome-webauthn) GitHub repository includes a [community-curated list of server-side libraries](https://github.com/herrjemand/awesome-webauthn#server-libraries). You'll find libraries for JavaScript and TypeScript, Go, Python, and more.\n- A [collection of libraries](https://passkeys.dev/docs/tools-libraries/libraries/) is available on [passkeys.dev](https://passkeys.dev/). It's maintained by the [W3C WebAuthn Adoption Community Group](https://www.w3.org/community/webauthn-adoption/).\n- FIDO Alliance references a [collection of FIDO2 servers](https://fidoalliance.org/certification/fido-certified-products/).\n\nNext up\n\n- [Server-side passkey registration](/identity/passkeys/developer-guides/server-registration)\n- [Server-side passkey authentication](/identity/passkeys/developer-guides/server-authentication)"]]