Configuration de l'authentification
Configurez l'authentification pour contrôler l'accès aux pages et références d'API avec mot de passe, OAuth, JWT ou accès privé géré par Mintlify.
L’authentification privée pour votre organisation Mintlify est disponible sur toutes les offres.
L’authentification par mot de passe nécessite une offre Pro ou Enterprise.
L’authentification OAuth et JWT nécessite une offre Enterprise.
L’authentification exige que les utilisateurs se connectent avant d’accéder à votre contenu.
Vous pouvez configurer une authentification complète pour toutes les pages ou une authentification partielle où certaines pages sont publiques et d’autres nécessitent une authentification.
L’authentification n’est disponible que pour les sites hébergés sur un domaine personnalisé ou un sous-domaine Mintlify. Par exemple, docs.exemple.com ou exemple.mintlify.site. L’authentification n’est pas prise en charge pour les sites avec un sous-chemin personnalisé. Par exemple, exemple.com/docs.
Utilisez ce comparatif pour choisir la méthode adaptée à votre cas d’usage. Consultez Disponibilité des fonctionnalités pour savoir comment chaque méthode interagit avec les autres fonctionnalités de Mintlify.
| Méthode | Idéal pour | Offre | Accès basé sur les groupes | Pré-remplissage du bac à sable d’API | Personnalisation |
|---|---|---|---|---|---|
| Password | Accès partagé simple sans suivi par utilisateur | Pro ou Enterprise | — | — | — |
| Private authentication | Documentation interne pour les membres de votre organisation Mintlify | Toutes les offres | — | — | — |
| OAuth 2.0 | Fournisseur d’identité existant ou SSO avec sessions par utilisateur | Enterprise | ✓ | ✓ | ✓ |
| JWT | Backend d’authentification personnalisé ou documentation intégrée derrière votre propre connexion | Enterprise | ✓ | ✓ | ✓ |
L’authentification par mot de passe fournit uniquement un contrôle d’accès et ne prend pas en charge les fonctionnalités spécifiques aux utilisateurs comme le contrôle d’accès basé sur les groupes ou le pré-remplissage du bac à sable d’API.
Prérequis du mot de passe
- Vos exigences de sécurité autorisent le partage de mots de passe entre les utilisateurs.
Configuration du mot de passe
Créer un mot de passe.
- Dans votre Dashboard, accédez à Authentication.
- Dans la section Authentication method, définissez la visibilité du site sur Private.
- Cliquez sur Password.
- Saisissez un mot de passe sécurisé.
- Cliquez sur Save changes.
Après avoir enregistré, votre site est redéployé. Une fois le déploiement terminé, toute personne visitant votre site doit entrer le mot de passe pour accéder à votre contenu.
Distribuer l'accès.
Partagez de manière sécurisée le mot de passe et l’URL de la documentation avec les utilisateurs autorisés.
Exemple de mot de passe
Vous hébergez votre documentation sur docs.foo.com et vous avez besoin d’un contrôle d’accès de base sans suivi des utilisateurs individuels. Vous voulez empêcher l’accès public tout en gardant la configuration simple.
Créez un mot de passe robuste dans votre Dashboard. Partagez les identifiants de connexion avec les utilisateurs autorisés.
Lorsque vous utilisez l’authentification, toutes les pages nécessitent par défaut une authentification pour y accéder. Vous pouvez autoriser l’accès à certaines pages sans authentification, au niveau de la page ou du groupe, à l’aide de la propriété public.
Pour rendre une page publique, ajoutez public: true au frontmatter de la page.
---
title: "Page publique"
public: true
---Pour rendre toutes les pages d’un groupe publiques, ajoutez “public”: true sous le nom du groupe dans l’objet navigation de votre docs.json.
{
"navigation": {
"groups": [
{
"group": "Groupe public",
"public": true,
"icon": "play",
"pages": [
"quickstart",
"installation",
"settings"
]
},
{
"group": "Groupe privé",
"icon": "pause",
"pages": [
"private-information",
"secret-settings"
]
}
]
}
}Lorsque vous utilisez l’authentification OAuth ou des JWT (JSON Web Tokens), vous pouvez restreindre certaines pages à des groupes d’utilisateurs spécifiques. C’est utile si vous souhaitez que différents utilisateurs voient des contenus différents selon leur rôle ou leurs attributs.
Gérez les groupes via les données utilisateur transmises lors de l’authentification. Voir Format des données utilisateur pour plus de détails.
{
"groups": ["admin", "beta-users"],
"expiresAt": 1735689600
}Indiquez quels groupes peuvent accéder à des pages spécifiques à l’aide de la propriété groups dans le frontmatter.
---
title: "Dashboard administrateur"
groups: ["admin"]
---Les utilisateurs doivent appartenir à au moins un des groupes répertoriés pour accéder à la page. Si un utilisateur tente d’accéder à une page sans le groupe requis, il recevra une erreur 404.
- Par défaut, toutes les pages nécessitent une authentification.
- Les pages comportant une propriété
groupsne sont accessibles qu’aux utilisateurs authentifiés appartenant à ces groupes. - Les pages sans propriété
groupssont accessibles à tous les utilisateurs authentifiés. - Les pages avec
public: trueet sans propriétégroupssont accessibles à tout le monde.
---
title: "Guide public"
public: true
---Lorsque vous utilisez l’authentification OAuth ou JWT, votre système renvoie des données utilisateur qui contrôlent la durée de la session et l’appartenance à des groupes pour le contrôle d’accès, ainsi que la personnalisation du contenu.
type User = {
host?: string;
expiresAt?: number;
groups?: string[];
content?: Record<string, any>;
apiPlaygroundInputs?: {
server?: Record<string, string>;
header?: Record<string, unknown>;
query?: Record<string, unknown>;
cookie?: Record<string, unknown>;
path?: Record<string, unknown>;
};
};hoststringRequis pour l’authentification JWT. Le nom d’hôte de votre site de documentation. La chaîne doit correspondre exactement au domaine sur lequel vous déployez votre documentation. Mintlify valide que l’hôte du JWT correspond à l’hôte de la requête afin d’empêcher la réutilisation du jeton sur différents sites.
expiresAtnumberHeure d’expiration de la session, en secondes depuis l’époque Unix. Lorsque l’heure actuelle dépasse cette valeur, l’utilisateur doit s’authentifier de nouveau.
exp d’un JWT, qui détermine le moment où un JWT est considéré comme invalide. Par mesure de sécurité, définissez la revendication exp du JWT sur une durée courte (10 secondes ou moins). Utilisez expiresAt pour la durée réelle de la session (de quelques heures à plusieurs semaines).groupsstring[]Liste des groupes auxquels l’utilisateur appartient. Les pages dont le champ groups dans le frontmatter contient une valeur correspondante sont accessibles à cet utilisateur.
Exemple : Un utilisateur avec groups: ["admin", "engineering"] peut accéder aux pages étiquetées avec admin ou engineering dans leur champ groups du frontmatter.
contentRecord<string, any>Données personnalisées accessibles dans les pages MDX via la variable user pour le contenu personnalisé.
apiPlaygroundInputsobjectPréremplit les champs du bac à sable d’API avec des valeurs propres à l’utilisateur. Lorsqu’un utilisateur s’authentifie, ces valeurs renseignent les champs de saisie correspondants dans le bac à sable d’API. Les utilisateurs peuvent remplacer les valeurs préremplies, et leurs remplacements sont conservés dans le stockage local.
Mintlify n’applique que les valeurs qui correspondent au schéma de sécurité du point de terminaison actuel.
Show Hide propriétés
headerRecord<string, unknown>Valeurs d’en-tête à préremplir, indexées par nom d’en-tête.
queryRecord<string, unknown>Valeurs de paramètres de requête à préremplir, indexées par nom de paramètre.
cookieRecord<string, unknown>Valeurs de cookie à préremplir, indexées par nom de cookie.
serverRecord<string, string>Valeurs de variables de serveur à préremplir, indexées par nom de variable.
pathRecord<string, unknown>Valeurs de paramètres de chemin à préremplir, indexées par nom de paramètre.
Certaines fonctionnalités se comportent différemment ou ne sont pas disponibles lorsque vous activez l’authentification. Mintlify ne prend pas en charge l’hébergement de fichiers publics arbitraires sur un site authentifié. Tous les fichiers hébergés, y compris llms.txt, llms-full.txt et skill.md, sont soumis aux mêmes exigences d’authentification que vos pages de documentation.
| Fonctionnalité | Public | Entièrement authentifié (toutes les pages protégées) | Partiellement authentifié (certaines pages publiques) |
|---|---|---|---|
| llms.txt and llms-full.txt | Prise en charge complète | Disponible derrière l’authentification, les outils d’IA peuvent donc ne pas avoir accès aux fichiers | Disponible derrière l’authentification, les outils d’IA peuvent donc ne pas avoir accès aux fichiers |
| MCP server | Prise en charge complète | Nécessite une authentification pour se connecter | Disponible sans authentification pour les pages publiques et avec authentification pour les pages protégées |
| Markdown export | Prise en charge complète | Prise en charge complète, respecte les groupes d’utilisateurs | Prise en charge complète, respecte les groupes d’utilisateurs |
| Export PDF | Prise en charge complète | Prise en charge complète, respecte les groupes d’utilisateurs. Les pages authentifiées sont exportées avec les images et les ressources incluses. | Prise en charge complète, respecte les groupes d’utilisateurs. Les pages authentifiées sont exportées avec les images et les ressources incluses. |
| Search | Prise en charge complète | Prise en charge complète, respecte les groupes d’utilisateurs | Prise en charge complète, respecte les groupes d’utilisateurs |
| Assistant | Prise en charge complète | Prise en charge complète, respecte les groupes d’utilisateurs | Prise en charge complète, respecte les groupes d’utilisateurs |
| skill.md | Prise en charge complète | Non pris en charge | Non pris en charge |
| Sitemap | Prise en charge complète | Disponible derrière l’authentification, mais exclut les pages dans des groupes | Disponible derrière l’authentification, mais exclut les pages dans des groupes |
| robots.txt | Prise en charge complète | Disponible derrière l’authentification | Disponible derrière l’authentification |