Tarifs
Actualités
Inscription
Connexion
TarifsÀ proposNous contacterTémoignages
Se connecterS’inscrireMot de passe oublié ?
Conditions d’utilisationPolitique de confidentialitéConditions pour les développeursSécuritéParamètres de confidentialitéRGPD
ActualitésFonctionnalitésCentre d’aideÉtat du système
Application iOSApplication AndroidApplication web

Authentification

L’API utilise OAuth 2.0 avec PKCE pour l’authentification.

Avertissement

L’authentification de base est obsolète et sera supprimée dans une prochaine mise à jour. Passe à OAuth 2.0.

Fonctionnement

  1. Tu crées une seule fois une application OAuth pour obtenir un client_id
  2. Tu rediriges l’utilisateur vers le point de terminaison d’autorisation, où il se connecte
  3. Tu reçois un code d’autorisation, que tu échanges contre un jeton d’accès et un jeton d’actualisation
  4. Tu utilises le jeton d’accès pour envoyer des requêtes à l’API

La plupart des bibliothèques clientes OAuth 2.0 gèrent ce flux automatiquement quand tu leur indiques le point de terminaison des métadonnées du serveur /.well-known/oauth-authorization-server.

Tous les points de terminaison ci-dessous sont relatifs à https://api.attendium.com.

Créer ton application OAuth

Crée une application OAuth dans Attendium pour obtenir ton client_id, ainsi que ton client_secret s’il s’agit d’une application confidentielle. Tu n’as besoin de le faire qu’une fois par application. Voir Applications OAuth.

Les URI de redirection doivent utiliser https, ou http avec une adresse de bouclage (localhost, 127.0.0.1 ou ::1) pour le développement local. Une application publique peut aussi utiliser un schéma d’URI à usage privé en notation de domaine inversé, comme com.example.app:/oauth/callback.

En créant une application OAuth, que ce soit dans Attendium ou par inscription dynamique de clients, tu acceptes les Conditions pour les développeurs dans la version publiée à ce moment-là.

Autoriser

Génère un vérificateur de code et un défi de code PKCE :

  1. Crée une chaîne aléatoire (43–128 caractères, parmi A-Z, a-z, 0-9, -, ., _, ~) : c’est ton code_verifier
  2. Calcule le hachage SHA-256 du vérificateur et encode-le en base64url : c’est ton code_challenge

Redirige ensuite l’utilisateur vers :

GET /oauth2/authorize?response_type=code
  &client_id=your-client-id
  &redirect_uri=https://yourapp.example.com/callback
  &code_challenge=your-code-challenge
  &code_challenge_method=S256
  &state=random-state-value

L’utilisateur se connecte à Attendium et est redirigé vers ton redirect_uri avec un code d’autorisation et ta valeur state.

Échanger le code contre des jetons

POST /oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&client_id=your-client-id
&redirect_uri=https://yourapp.example.com/callback
&code=the-authorization-code
&code_verifier=your-code-verifier

Une application confidentielle doit aussi s’authentifier, soit avec l’authentification de base (client_secret_basic), soit en envoyant client_secret dans le corps de la requête (client_secret_post) :

POST /oauth2/token
Authorization: Basic base64(your-client-id:your-client-secret)
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&redirect_uri=https://yourapp.example.com/callback
&code=the-authorization-code
&code_verifier=your-code-verifier

La réponse contient un access_token et un refresh_token.

Envoyer des requêtes à l’API

Inclus le jeton d’accès dans l’en-tête Authorization :

curl -H "Authorization: Bearer your-access-token" \
     -H "Content-Type: application/json" \
     -d '{"query": "{ me { id } }"}' \
     https://api.attendium.com/graphql

Actualiser le jeton d’accès

La réponse du jeton contient un champ expires_in qui indique la durée de validité du jeton d’accès. Utilise le jeton d’actualisation pour obtenir un nouveau jeton d’accès avant son expiration :

POST /oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&client_id=your-client-id
&refresh_token=your-refresh-token

Une application confidentielle authentifie cette requête de la même façon que lors de l’échange du code d’autorisation.

Inscription dynamique de clients

Les applications qui se configurent à partir des métadonnées du serveur, y compris les assistants d’IA qui se connectent via MCP (voir Configurer MCP), s’inscrivent elles-mêmes en envoyant une requête POST à /oauth2/register. Tu n’en as pas besoin si tu crées ton application OAuth dans Attendium.

POST /oauth2/register
Content-Type: application/json

{
  "redirect_uris": ["https://yourapp.example.com/callback"],
  "client_name": "Mon application"
}

Une application inscrite de cette façon n’apparaît pas dans « Applications OAuth », donc son nom, ses URI de redirection et son secret client ne peuvent pas y être modifiés.

Pour aller plus loin

  • OAuth 2.0 — oauth.net
  • PKCE — RFC 7636
  • Inscription dynamique de clients — RFC 7591
Applications OAuth