Le contrôle d’accès basé sur les rôles (RBAC) vous permet de définir qui peut effectuer quelles actions dans votre organisation et vos projets, via l’API comme dans le tableau de bord. Les mêmes permissions s’appliquent aux deux interfaces. Si un utilisateur peut appeler un point de terminaison (par exemple /v1/chat/completions), il peut utiliser la page correspondante du tableau de bord. Si une permission lui manque, les éléments d’interface associés sont désactivés, comme le bouton Importer dans le Playground. Le RBAC vous permet de :
- Regrouper les utilisateurs et attribuer des permissions à grande échelle
- Créer des rôles personnalisés avec les permissions précises dont vous avez besoin
- Définir la portée des accès au niveau de l’organisation ou du projet
- Appliquer les mêmes permissions dans le tableau de bord et l’API
Notions clés
- Organisation : votre compte de plus haut niveau. Les rôles attribués au niveau de l’organisation peuvent donner accès à tous ses projets.
- Projet : un espace de travail qui regroupe des clés, des fichiers et des ressources. Les rôles attribués au niveau d’un projet donnent accès à ce seul projet.
- Groupes : des ensembles d’utilisateurs auxquels vous pouvez attribuer des rôles. Vous pouvez synchroniser les groupes avec votre fournisseur d’identité via SCIM pour tenir automatiquement à jour la liste de leurs membres.
- Rôles : des ensembles de permissions, comme l’envoi de requêtes aux modèles ou l’écriture de fichiers. Vous pouvez créer des rôles pour l’organisation dans les Paramètres de l’organisation, ou pour un projet précis dans les paramètres de ce projet. Vous pouvez ensuite attribuer ces rôles à des utilisateurs ou à des groupes. Un utilisateur peut cumuler plusieurs rôles et bénéficie alors de toutes les permissions accordées par ces rôles.
- Permissions : les actions précises qu’un rôle autorise, comme envoyer des requêtes aux modèles, lire ou écrire des fichiers et gérer des clés.
Permissions
Le tableau ci-dessous indique les permissions disponibles, les rôles prédéfinis qui les incluent et les permissions que vous pouvez configurer pour des rôles personnalisés.
| Domaine | Actions autorisées | Permissions du propriétaire de l’organisation | Permissions du lecteur de l’organisation | Permissions du propriétaire du projet | Permissions du membre du projet | Permissions de l’observateur du projet | Disponible pour les rôles personnalisés |
|---|---|---|---|---|---|---|---|
| Liste des modèles | Lister les modèles auxquels l’organisation a accès | Read |
Read |
Read |
Read |
Read |
✓ |
| Groupes | Consulter et gérer les groupes | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| Rôles | Consulter et gérer les rôles | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
|
| Administration de l’organisation | Gérer les utilisateurs, les projets, les invitations, les clés API d’administration et les limites de débit de l’organisation | Read, Write |
|||||
| Utilisation | Consulter le tableau de bord d’utilisation et exporter les données | Read |
✓ | ||||
| Clés externes | Consulter et gérer les clés utilisées par Enterprise Key Management | Read, Write |
|||||
| Liste des adresses IP autorisées | Consulter et gérer la liste des adresses IP autorisées | Read, Write |
|||||
| mTLS | Consulter et gérer les paramètres d’authentification TLS mutuelle | Read, Write |
|||||
| OIDC | Consulter et gérer la configuration OIDC | Read, Write |
|||||
| Fonctionnalités des modèles | Envoyer des requêtes pour les complétions de discussion, l’audio, les embeddings et les images | Request |
Request |
Request |
Request |
✓ | |
| Assistants | Créer et récupérer des assistants | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Fils de discussion | Créer et récupérer des fils de discussion, des messages et des exécutions | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Évaluations | Créer, récupérer et supprimer des évaluations | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Ajustement fin | Créer et récupérer des tâches d’ajustement fin | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Fichiers | Créer et récupérer des fichiers | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Bases vectorielles | Créer et récupérer des bases vectorielles | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| Responses API | Créer des réponses | Read, Write |
Read, Write |
Read, Write |
Read, Write |
✓ | |
| Prompts | Créer et récupérer des prompts à utiliser comme contexte dans Responses API et Realtime API | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Webhooks | Créer et consulter les webhooks de votre projet | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
| Jeux de données | Créer et récupérer des jeux de données | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Applications | Créer et gérer des applications dans le tableau de bord et les soumettre pour examen | Read, Write |
✓ | ||||
| Tunnels | Inspecter, utiliser et gérer les tunnels au niveau de l’organisation | Read, Use, Manage |
✓ | ||||
| Clés API du projet | Permettre à un utilisateur de gérer ses propres clés API | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
✓ |
| Administration du projet | Gérer les utilisateurs, les comptes de service, les clés API et les limites de débit du projet via l’API de gestion | Read, Write |
Read, Write |
||||
| Traitement par lots | Créer et gérer des tâches de traitement par lots | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| Comptes de service | Consulter et gérer les comptes de service du projet | Read, Write |
Read, Write |
||||
| Voix | Créer et récupérer des voix | Read, Write |
Read, Write |
Read, Write |
Read, Write |
Read |
|
| Agent Builder | Créer et gérer des agents et des workflows dans Agent Builder | Read, Write |
Read |
Read, Write |
Read, Write |
Read |
✓ |
Accès accordés par les permissions de traitement par lots
Les permissions de traitement par lots comprennent les accès nécessaires pour préparer les fichiers d’entrée d’un lot, exécuter les requêtes et récupérer les résultats. Les points de terminaison que vous pouvez appeler dans un lot font l’objet d’une liste distincte dans le guide de l’API Batch.
| Permission de traitement par lots | Accès supplémentaires accordés |
|---|---|
Lecture (api.batch.read) |
Lecture des fichiers (api.files.read) pour /v1/files |
Écriture (api.batch.write) |
Lecture des lots Liste des modèles ( api.model.read et model.read) pour /v1/modelsLecture et écriture des fichiers ( api.files.read et api.files.write) pour /v1/filesEnvoi de requêtes aux fonctionnalités des modèles ( api.model.request et model.request) pour /v1/audio, /v1/chat/completions, /v1/embeddings, /v1/images, /v1/moderations, /v1/realtime et /v1/responses |
Mise en place du RBAC
Comptez jusqu’à 30 minutes pour que les modifications des rôles et la synchronisation des groupes prennent effet partout.
-
Créez des groupes Ajoutez des groupes pour vos équipes, par exemple Science des données et Assistance. Si vous utilisez un fournisseur d’identité (IdP), activez la synchronisation SCIM pour tenir à jour la liste des membres de chaque groupe.
-
Créez des rôles personnalisés Partez du principe du moindre privilège. Par exemple :
- Testeur de modèles : lecture des modèles, envoi de requêtes aux fonctionnalités des modèles, évaluations
- Ingénieur en modélisation : envoi de requêtes aux fonctionnalités des modèles, lecture et écriture des fichiers, ajustement fin
- Éditeur d’applications : lecture et écriture des applications
-
Attribuez les rôles
- Les rôles au niveau de l’organisation s’appliquent à tous les projets de l’organisation.
- Les rôles au niveau du projet s’appliquent uniquement au projet concerné. Vous pouvez attribuer des rôles à des utilisateurs et à des groupes. Un utilisateur peut cumuler plusieurs rôles. Ses permissions correspondent à l’union des permissions de ces rôles.
-
Vérifiez les accès Utilisez un compte sans rôle de propriétaire pour vérifier que les accès correspondent à vos attentes dans l’API et le tableau de bord. Ajustez les rôles si les utilisateurs peuvent consulter plus d’éléments que nécessaire.
Appliquez le principe du moindre privilège. Commencez par les permissions strictement nécessaires à la tâche, puis ajoutez-en uniquement si le besoin se présente.
Exemples de configuration des accès
Petite équipe
- Attribuez à l’équipe principale un rôle au niveau de l’organisation qui autorise l’envoi de requêtes aux fonctionnalités des modèles ainsi que la lecture et l’écriture des fichiers.
- Créez un projet par application. Ajoutez les prestataires uniquement aux projets concernés et attribuez-leur des rôles au niveau de ces projets.
Grande organisation
- Synchronisez les groupes depuis votre fournisseur d’identité, par exemple Recherche, Assistance et Finance.
- Créez des rôles personnalisés par fonction et attribuez-les au niveau de l’organisation. Si un projet nécessite un contrôle plus strict, attribuez uniquement des rôles propres à ce projet.
Prestataires et fournisseurs
- Créez un groupe « Prestataires » sans rôle au niveau de l’organisation.
- Ajoutez ses membres aux projets concernés et attribuez-leur des rôles de projet aux permissions restreintes, par exemple un accès en lecture seule.
Comment les droits d’accès des utilisateurs sont déterminés
Dans le tableau de bord, nous combinons :
- les rôles de l’organisation attribués directement à l’utilisateur ou via ses groupes
- les rôles du projet attribués directement à l’utilisateur ou via ses groupes
Les permissions effectives correspondent à l’union des permissions de tous les rôles attribués.
Lorsque vous envoyez une requête avec une clé API dans un projet, nous vérifions les permissions attribuées à la clé et nous nous assurons qu’un rôle de l’utilisateur dans ce projet lui accorde ces permissions. Par exemple, pour appeler /v1/models, la clé API doit disposer de la permission api.model.read et l’utilisateur doit détenir un rôle de projet qui inclut api.model.read.
Bonnes pratiques
- Créez des groupes à l’image de votre organisation : créez dans votre fournisseur d’identité des groupes correspondant aux équipes et attribuez les rôles à ces groupes plutôt qu’aux utilisateurs individuellement.
- Séparez les responsabilités : distinguez la lecture des modèles, l’importation de fichiers et la gestion des clés.
- Isolez les projets : utilisez des projets distincts pour les expérimentations, la préproduction et la production.
- Vérifiez régulièrement les rôles et les clés : supprimez les rôles et les clés inutilisés et renouvelez les clés sensibles.
- Testez avec un compte sans rôle de propriétaire : vérifiez que les accès correspondent à vos attentes avant de généraliser le déploiement.