# SSO et SAML

Bien que gérer manuellement les membres de votre organisation soit parfaitement acceptable pour les petites équipes ou les personnes qui veulent un contrôle total, il suffit parfois d’ouvrir les choses de manière plus automatisée. GitBook vous permet de configurer cela de plusieurs façons, via un SSO de base par domaine e-mail et une intégration SAML plus complexe.

## Authentification unique via le domaine e-mail

Lorsque vous créez ou gérez votre organisation, vous pouvez ajouter une liste de domaines e-mail que vous souhaitez autoriser à accéder à votre organisation GitBook. Cela signifie que toute personne disposant d’une adresse e-mail vérifiée correspondant à vos domaines SSO configurés sera autorisée à rejoindre votre organisation.

Vous pouvez activer le SSO par domaine e-mail dans la **SSO** section de **Paramètres**votre organisation ; saisissez une liste de domaines e-mail séparés par des virgules pour lesquels vous souhaitez autoriser l’accès SSO, et le tour est joué.

<figure><img src="https://3903131528-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2FF860Y1oqJmnsPKOjZ1n2%2Faccount-settings-sso.svg?alt=media&#x26;token=c63d515a-a261-4f6e-b3aa-c39f3d03f0b4" alt="A GitBook screenshot showing how to configure SSO"><figcaption><p>Configurez le SSO pour votre organisation.</p></figcaption></figure>

{% hint style="info" %}
Toute personne qui rejoint via un domaine e-mail SSO sera par défaut en accès invité ; vous pouvez modifier son rôle à tout moment dans la section des membres des paramètres de votre organisation.
{% endhint %}

**Authentification unique basée sur SAML** (SSO) donne aux membres l’accès à GitBook via un fournisseur d’identité (IdP) de votre choix.

GitBook s’intègre facilement à votre fournisseur d’identité (IdP) existant afin que vous puissiez offrir à vos employés une authentification unique sur GitBook en utilisant les mêmes identifiants et la même expérience de connexion que pour vos autres fournisseurs de services.

En utilisant le SSO, vos employés pourront se connecter à GitBook via l’interface familière du fournisseur d’identité, au lieu de la page de connexion GitBook. Le navigateur de l’employé sera alors redirigé vers GitBook. L’IdP accorde l’accès à GitBook lorsque le SSO est activé et que le mécanisme de connexion propre à GitBook est désactivé. De cette manière, la sécurité de l’authentification est déplacée vers votre IdP et coordonnée avec vos autres fournisseurs de services.

## Prérequis pour le SSO avec GitBook <a href="#prerequisites-for-sso-with-gitbook" id="prerequisites-for-sso-with-gitbook"></a>

* Le fournisseur d’identité (IdP) de votre entreprise doit prendre en charge le **SAML 2.0** standard.
* Vous devez disposer des autorisations administratives sur l’IdP.
* Vous devez être administrateur de l’organisation GitBook sur laquelle vous souhaitez configurer SAML.

### Configuration sur GitBook <a href="#setup-on-gitbook" id="setup-on-gitbook"></a>

Vous devez être [administrateur de l’organisation](https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/documentation/fr/member-management/roles#admin) pour activer le SSO pour votre organisation GitBook.

Après avoir configuré le SSO sur votre IdP, vous pourrez saisir les métadonnées. Lorsque la configuration est réussie, les administrateurs verront une boîte de dialogue de confirmation et l’URL de connexion SSO pour les utilisateurs finaux s’affichera. **GitBook n’envoie pas d’e-mails d’annonce lorsque la configuration est terminée**. Il incombe à l’administrateur d’informer les employés de l’entreprise (et de leur transmettre l’URL de connexion) afin qu’ils puissent accéder à GitBook via le SSO.

{% hint style="info" %}
Les administrateurs de l’organisation peuvent toujours se connecter avec des méthodes non SSO, vous pouvez donc encore voir les boutons Google, GitHub ou e-mail. C’est normal, même avec **Forcer le SSO** activé.&#x20;

Cela évite un verrouillage hors de votre organisation après une mauvaise configuration du SSO. Les administrateurs peuvent toujours se connecter et supprimer ou corriger les paramètres SSO.
{% endhint %}

Vous aurez besoin des éléments suivants à partir des métadonnées de votre IdP pour enregistrer un fournisseur SAML :

* Un **label** – cela peut être n’importe quoi, cela sera affiché sur la page de connexion
* Un **ID d’entité**
* Un **URL d’authentification unique**
* Un **certificat X.509** – assurez-vous de copier-coller l’intégralité du certificat !

### Configuration sur l’IdP <a href="#setup-on-the-idp" id="setup-on-the-idp"></a>

La plupart des fournisseurs d’identité conformes à SAML 2.0 requièrent les mêmes informations sur le fournisseur de services (GitBook, dans ce cas) pour la configuration. Ces valeurs sont spécifiques à votre organisation GitBook et sont disponibles dans l’onglet **Paramètres -> SSO** de l’organisation GitBook pour laquelle vous souhaitez activer le SSO.

La plupart de ces valeurs peuvent être copiées directement dans votre IdP pour terminer la configuration de SAML.

GitBook exige que le **NameID** contienne l’adresse e-mail de l’utilisateur. Techniquement, nous recherchons : `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` comme format de Name-ID – de nombreux fournisseurs (tels que Google) vous permettront de définir un format tel que **E-MAIL**.

### Attributs personnalisés

GitBook récupérera les attributs personnalisés suivants à partir de la réponse d’assertion SAML et les utilisera lors de la création de l’utilisateur.

| Champ            | Description                                                                                                        |
| ---------------- | ------------------------------------------------------------------------------------------------------------------ |
| `prénom`         | `prénom` et `nom de famille` les champs seront combinés pour produire le nom affiché de l’utilisateur dans GitBook |
| `nom de famille` | `prénom` et `nom de famille` les champs seront combinés pour produire le nom affiché de l’utilisateur dans GitBook |

## Création de comptes pour les utilisateurs finaux <a href="#creating-end-user-account" id="creating-end-user-account"></a>

Pour ajouter des membres, créez des comptes pour eux dans votre IdP. Lorsqu’un nouveau membre se connecte pour la première fois à GitBook via l’IdP, un compte GitBook sera créé pour lui via le provisionnement automatique de l’IdP. L’utilisateur aura accès aux ressources de l’organisation en tant que membre de l’organisation.

{% hint style="danger" %}
La configuration nécessite des adresses e-mail en minuscules. N’utilisez pas d’adresses e-mail avec des majuscules et minuscules mélangées.
{% endhint %}

## Suppression de comptes <a href="#removing-end-user-accounts" id="removing-end-user-accounts"></a>

La suppression d’un membre de l’IdP empêchera l’utilisateur de se connecter au compte GitBook correspondant, **mais ne supprimera pas le compte de GitBook**. Nous conseillons également de supprimer le compte de l’organisation GitBook.

## Contrôle de l’accès

Une fois que vous avez configuré le SSO SAML, il revient à l’IdP de contrôler qui peut accéder à votre compte GitBook.

## Avis de sécurité <a href="#security-notice" id="security-notice"></a>

Si vous avez un compte GitBook existant sous la même adresse e-mail que celle que nous recevons du fournisseur d’identité et que vous n’êtes pas membre de l’organisation à laquelle vous essayez de vous connecter, nous ne pourrons pas vous ajouter automatiquement à l’organisation avec la configuration SAML pour des raisons de sécurité. Vous avez deux options :

1. Supprimez votre compte GitBook existant, puis connectez-vous à l’organisation souhaitée avec SAML. GitBook créera alors un nouveau compte pour vous et vous serez ajouté à l’organisation
2. Ou demandez à votre administrateur de vous inviter à l’organisation :

Si votre organisation n’a pas activé « Forcer le SSO », un administrateur de votre organisation peut inviter des utilisateurs via la page Membres dans les paramètres de votre organisation.

Si votre organisation a activé « Forcer le SSO », un administrateur devra utiliser le point de terminaison API des `invites` de GitBook pour inviter des utilisateurs à l’organisation. Un appel à cette API ressemblerait à ce qui suit ;

```
curl --request POST --header "Authorization: Bearer <your_access_token>" --url "https://api.gitbook.com/v1/orgs/<org_id>/invites" --header 'Content-Type: application/json' --data-raw '{ "sso": true, "role": "<role>", "emails":["<email>"] }'
```
