Files
twenty/packages/twenty-docs/l/fr/developers/extend/oauth.mdx
T
github-actions[bot] 7b17cac772 i18n - docs translations (#22273)
Created by Github action

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/22273?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->

Co-authored-by: github-actions <github-actions@twenty.com>
2026-06-29 04:44:55 +02:00

190 lines
7.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: OAuth
icon: key
description: Flux de code dautorisation avec PKCE et identifiants client pour laccès serveur à serveur.
---
Twenty implémente OAuth 2.0 avec code dautorisation + PKCE pour les applications destinées aux utilisateurs et des identifiants client pour laccès serveur à serveur. Les clients sont enregistrés dynamiquement via [RFC 7591](https://datatracker.ietf.org/doc/html/rfc7591) — aucune configuration manuelle dans un tableau de bord.
## Quand utiliser OAuth
| Scénario | Méthode dauthentification |
| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Scripts internes, automatisation | [Clé API](/l/fr/developers/extend/api#authentication) |
| Application externe agissant au nom dun utilisateur | **OAuth — Code dautorisation** |
| Serveur à serveur, aucun contexte utilisateur | **OAuth — Identifiants client** |
| Application Twenty avec des extensions dinterface utilisateur | [Applications](/l/fr/developers/extend/apps/getting-started) (OAuth est géré automatiquement) |
## Enregistrer un client
Twenty prend en charge **lenregistrement dynamique de clients** conformément à [RFC 7591](https://datatracker.ietf.org/doc/html/rfc7591). Aucune configuration manuelle requise — enregistrez le client par programmation :
```bash
POST /oauth/register
Content-Type: application/json
{
"client_name": "My Integration",
"redirect_uris": ["https://myapp.com/callback"],
"grant_types": ["authorization_code"],
"token_endpoint_auth_method": "client_secret_post"
}
```
**Réponse:**
```json
{
"client_id": "abc123",
"client_secret": "secret456",
"client_name": "My Integration",
"redirect_uris": ["https://myapp.com/callback"]
}
```
<Warning>
Stockez le `client_secret` en toute sécurité — il ne peut pas être récupéré ultérieurement.
</Warning>
## Périmètres
| Périmètre | Accès |
| --------- | ------------------------------------------------------------ |
| `api` | Accès complet en lecture/écriture aux API Core et Metadata |
| `profil` | Lire les informations de profil de lutilisateur authentifié |
Demandez les périmètres sous forme de chaîne séparée par des espaces : `scope=api profile`
## Flux de code dautorisation
Utilisez ce flux lorsque votre application agit au nom dun utilisateur Twenty.
### 1. Rediriger lutilisateur vers l’écran dautorisation
```
GET /oauth/authorize?
client_id=YOUR_CLIENT_ID&
response_type=code&
redirect_uri=https://myapp.com/callback&
scope=api&
state=random_state_value&
code_challenge=CHALLENGE&
code_challenge_method=S256
```
| Paramètre | Obligatoire | Description |
| ----------------------- | ----------- | ---------------------------------------------------------------- |
| `client_id` | Oui | Votre identifiant client enregistré |
| `response_type` | Oui | Doit être `code` |
| `redirect_uri` | Oui | Doit correspondre à une URI de redirection enregistrée |
| `scope` | Non | Périmètres séparés par des espaces (par défaut : `api`) |
| `état` | Recommandé | Chaîne aléatoire pour empêcher les attaques CSRF |
| `code_challenge` | Recommandé | Défi PKCE (hachage SHA-256 du vérificateur, encodé en base64url) |
| `code_challenge_method` | Recommandé | Doit être `S256` lors de lutilisation de PKCE |
Lutilisateur voit un écran de consentement et approuve ou refuse laccès.
### 2. Gérer la redirection
Après lautorisation, Twenty redirige vers votre `redirect_uri` :
```
https://myapp.com/callback?code=AUTH_CODE&state=random_state_value
```
Vérifiez que `state` correspond à ce que vous avez envoyé.
### 3. Échanger le code contre des jetons
```bash
POST /oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=AUTH_CODE&
redirect_uri=https://myapp.com/callback&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
code_verifier=YOUR_PKCE_VERIFIER
```
**Réponse:**
```json
{
"access_token": "eyJhbG...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "dGhpcyBpcyBh..."
}
```
### 4. Utiliser le jeton daccès
```bash
GET /rest/companies
Authorization: Bearer ACCESS_TOKEN
```
### 5. Actualiser à lexpiration
```bash
POST /oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&
refresh_token=YOUR_REFRESH_TOKEN&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET
```
## Flux des identifiants client
Pour les intégrations serveur à serveur sans interaction utilisateur :
```bash
POST /oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
scope=api
```
Le jeton renvoyé dispose dun accès au niveau de lespace de travail, non lié à un utilisateur spécifique.
## Découverte du serveur
Twenty publie sa configuration OAuth à un point de découverte standard :
```
GET /.well-known/oauth-authorization-server
```
Cela renvoie tous les points de terminaison, les types doctroi pris en charge, les périmètres et les capacités — utile pour créer des clients OAuth génériques.
## Résumé des points de terminaison API
| Point de terminaison | Objectif |
| ----------------------------------------- | ------------------------------------- |
| `/.well-known/oauth-authorization-server` | Découverte des métadonnées du serveur |
| `/oauth/register` | Enregistrement dynamique de clients |
| `/oauth/authorize` | Autorisation de lutilisateur |
| `/oauth/token` | Échange et actualisation de jetons |
| Environnement | URL de base |
| ---------------- | ------------------------ |
| **Cloud** | `https://api.twenty.com` |
| **Auto-hébergé** | `https://{your-domain}` |
## OAuth vs clés API
| | Clés API | OAuth |
| ------------------------ | ---------------------------------------- | ------------------------------------------------------ |
| **Installation** | Générer dans Paramètres | Enregistrer un client, implémenter le flux |
| **Contexte utilisateur** | Aucun (au niveau de lespace de travail) | Autorisations dun utilisateur spécifique |
| **Idéal pour** | Scripts, outils internes | Applications externes, intégrations multi-utilisateurs |
| **Rotation des jetons** | Manuel | Automatique via des jetons dactualisation |
| **Accès par périmètre** | Accès complet à lAPI | Granulaire via des périmètres |