# Connexion par Google seulement : un jeton signé

> Votre application se connecte seulement avec Google ou Microsoft par Firebase ? Ondaclip ouvre la session avec un jeton signé, sans mot de passe.

Beaucoup d'applications se connectent seulement avec Google ou Microsoft, par
Firebase Auth. Un robot ne peut pas passer la fenêtre de connexion Google :
Google refuse les navigateurs automatisés. Ondaclip ouvre la session
autrement : **un jeton signé**.

Un jeton signé demande **votre infrastructure** : le jeton est signé par le
compte des tournages de votre propre projet Google Cloud. Sur Ondaclip Cloud,
décrivez plutôt un formulaire de connexion. Voir
[où ça tourne](/docs/fr/where-it-runs/).

## Comment ça marche

1. Avant un tournage, Ondaclip signe un jeton personnalisé Firebase pour l'uid
   de votre compte de démo. Il signe en tant que compte de service des
   tournages, dans votre projet Google Cloud. Aucune clé, aucun mot de passe.
2. Hors caméra, il échange le jeton contre une session, comme le ferait votre
   application, et la range là où le SDK Firebase de votre application la
   garde.
3. Votre application s'ouvre déjà connectée, et le SDK Firebase garde la
   session à jour pendant un long tournage.

Votre application ne change pas. La fenêtre Google ou Microsoft ne s'affiche
jamais.

## Ce que vous réglez

Dans `.ondaclip/config.yaml` :

```yaml
signIn: firebaseCustomToken
firebase:
  projectId: acme-dev          # le projet Firebase de l'environnement filmé
  apiKey: AIza...              # la clé web publique de votre application (dans sa config Firebase)
devGuard:
  appHostPattern: ^acme-dev\.web\.app$
  firebaseProjectPattern: ^acme-dev$
```

Dans le studio, **Réglages, Comptes de démo** : l'**uid** Firebase de chaque
compte de démo (`TUTO_<COMPTE>_UID`), pas un mot de passe. Vous le trouvez
dans la console Firebase, Authentication, Users. Il va dans le Secret Manager
de votre projet et n'est plus jamais affiché.

## Sécurité

- Ondaclip signe seulement pour un projet Firebase qui correspond à
  `devGuard.firebaseProjectPattern`. Un tournage sur un autre projet s'arrête
  avant qu'un jeton existe.
- Le signataire doit être un compte de service de ce même projet. Votre projet
  de staging ou de production n'a pas ce compte : aucun jeton ne peut être
  signé pour lui.
- Le droit de signer est un rôle de votre projet (Service Account Token
  Creator), donné au compte de service des tournages par la commande
  d'installation. Retirez-le et aucun jeton ne peut être signé.
- Utilisez un compte de démo fictif, sur un environnement aux données fictives.

## Prêt à filmer

Le studio le vérifie avant chaque tournage : les réglages Firebase, la garde,
le signataire et un uid pour chaque compte de démo. Une pièce manquante
arrête le tournage avec la seule chose à corriger.

## Autres services de connexion

Firebase Auth est le premier. Auth0, Supabase et Cognito ont la même idée (un
jeton fait par votre backend) : dites-nous si vous en avez besoin.

Source: https://ondaclip.com/docs/fr/signed-token/
