Aller au contenu
Bastide Connexion Créer un compte
Appuyez sur / pour chercher

account.passkey.accept

Markdownv0.3.0

Confirmer une clé d'accès en attente par ce que rend « navigator.credentials.create » : elle devient active, les autres sessions se ferment, et le premier facteur rend dix codes, une fois.

  • APIPOST /v1/account/passkeys/{secondFactorId}/accept
  • CLIbastide account passkey accept

§ 7.7.3. La cérémonie est vérifiée : le défi émis, l'origine et la partie de confiance de la console, la présence et la vérification de l'utilisateur, un algorithme accepté. Seule la clé publique est gardée. Le premier facteur actif du compte rend dix codes de récupération.

PropriétéValeur
Niveauaccount
Rang minimal—
Rôle transversal—
Portéesorg:admin
Compte de servicene la mène pas : elle est réservée à une personne
RéversibilitéE — réversible avec effort : validation d'une personne avant l'appel, puis cinq minutes pour tout défaire d'un seul appel
Idempotenceune clé d'idempotence est acceptée : le rejeu rend la première réponse
Limites de débit, par jeton600 appels par 60 secondes (general), et 60 appels par 60 secondes (sensitive)

API

POST /v1/account/passkeys/{secondFactorId}/accept — succès en 200.

ParamètreOùTypeRequisDescription
secondFactorIdchemintexte, motif ^sfa_[0-9A-HJKMNP-TV-Z]{26}$ouiIdentifiant de second facteur
Idempotency-Keyen-têtetexte, de 8 à 128 caractèresnonClé d'idempotence. Un rejeu portant la même clé retourne le résultat initial sans nouvel effet de bord, et la réponse porte alors « Idempotency-Replayed: true ». Équivaut au champ « idempotencyKey » du corps ; les deux à la fois ne sont acceptés que s'ils sont identiques.
clientDataJSONcorpstexte, 4096 caractères au plus, motif ^[A-Za-z0-9_-]+$oui« response.clientDataJSON », en base64url.
attestationObjectcorpstexte, 16384 caractères au plus, motif ^[A-Za-z0-9_-]+$oui« response.attestationObject », en base64url.
idempotencyKeycorpstexte, de 8 à 128 caractèresnonClé d'idempotence, obligatoire. Un rejeu portant la même clé rend le résultat initial, sans nouvel effet de bord.

La réponse :

ChampTypeDescription
secondFactorIdtexte, motif ^sfa_[0-9A-HJKMNP-TV-Z]{26}$Identifiant de second facteur
statetoujours active
confirmedAttexte, format date-time
recoveryCodesliste de de 10 à 10 éléments — chaque élément : texte, motif ^[0-9A-HJKMNP-TV-Z]{4}(-[0-9A-HJKMNP-TV-Z]{4}){3}$, ou nul
closedSessionsentierLes autres sessions du compte, fermées par ce changement.
undoTokennul

En-têtes de la réponse : RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, RateLimit-Policy, Idempotency-Replayed.

Autres réponses : 400, 401, 403, 404, 409, 429, 500, 503 — communes à toute opération.

Ligne de commande

bastide account passkey accept --second-factor-id <valeur> --client-data-j-s-o-n <valeur> --attestation-object <valeur>

OptionTypeRequiseDéfautDescription
--second-factor-idtexteoui—Identifiant de second facteur
--client-data-j-s-o-ntexteoui—« response.clientDataJSON », en base64url.
--attestation-objecttexteoui—« response.attestationObject », en base64url.
--idempotency-keytextenon—Clé d'idempotence, obligatoire. Un rejeu portant la même clé rend le résultat initial, sans nouvel effet de bord.

La commande demande une confirmation avant d'agir, sauf avec « --yes ».

MCP

Aucun outil : elle rend la valeur d'un secret, une seule fois, ou la refuse à tous : aucun outil MCP ne renvoie la valeur d'un secret, quelle que soit la portée du jeton (EX-MCP-070, EX-SEC-270).

Erreurs

CodeSurfaceCause
session_requiseles deuxCe geste ne se fait que sous une session de console, ouverte par un mot de passe : un jeton personnel ne le fait pas.
cle_d_acces_refuseeles deuxLa clé d'accès n'a pas pu être enrôlée : la cérémonie n'a pas été faite pour cette console, pour ce défi, avec la vérification de l'utilisateur, ou par un algorithme accepté — ou la clé est déjà enrôlée.
idempotency_key_conflictAPIDeux clés d'idempotence différentes ont été présentées, dans le corps et dans l'en-tête.
valeur_rendue_une_foisAPICe que l'opération crée n'est rendu qu'au premier appel : la plateforme n'en garde pas de copie, et un rejeu ne peut pas le rendre.

S'y ajoutent les refus communs à toute opération — entrée invalide, authentification, autorisation, cible introuvable, conflit, limite de débit, indisponibilité — que le catalogue des erreurs décrit.

Exemples

Confirmer la clé d'accès :

{
  "secondFactorId": "sfa_01JQ8ZK4M7NP2RSTVWXYZ34567",
  "clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIn0",
  "attestationObject": "o2NmbXRkbm9uZQ",
  "idempotencyKey": "confirmation-cle-2026-10-03"
}

Signaler une erreur sur cette page