> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Les utilisateurs ClickHouse existants et correctement configurés peuvent être authentifiés à l'aide du protocole d'authentification Kerberos.

# Kerberos

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Non pris en charge par ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

<Note>
  Cette page ne s'applique pas à [ClickHouse Cloud](https://clickhouse.com/cloud). La fonctionnalité décrite ici n'est pas disponible dans les services ClickHouse Cloud.
  Consultez le guide ClickHouse [Compatibilité Cloud](/docs/fr/products/cloud/guides/cloud-compatibility) pour plus d'informations.
</Note>

Les utilisateurs ClickHouse existants et correctement configurés peuvent être authentifiés via le protocole d’authentification Kerberos.

À l’heure actuelle, Kerberos ne peut être utilisé comme authentificateur externe que pour des utilisateurs existants, définis dans `users.xml` ou dans les chemins locaux de contrôle d’accès. Ces utilisateurs ne peuvent utiliser que des requêtes HTTP et doivent pouvoir s’authentifier à l’aide du mécanisme GSS-SPNEGO.

Avec cette approche, Kerberos doit être configuré sur le système et activé dans la configuration de ClickHouse.

<div id="enabling-kerberos-in-clickhouse">
  ## activation de Kerberos dans ClickHouse
</div>

Pour activer Kerberos, il faut inclure la section `kerberos` dans `config.xml`. Cette section peut contenir des paramètres supplémentaires.

<div id="parameters">
  #### Paramètres
</div>

* `principal` - nom canonique du service principal qui sera obtenu et utilisé lors de l’acceptation des contextes de sécurité.
  * Ce paramètre est facultatif ; s’il est omis, le principal par défaut sera utilisé.

* `realm` - realm utilisé pour limiter l’authentification aux seules requêtes dont le realm de l’initiateur correspond.
  * Ce paramètre est facultatif ; s’il est omis, aucun filtrage supplémentaire par realm ne sera appliqué.

* `keytab` - chemin vers le fichier keytab du service.
  * Ce paramètre est facultatif ; s’il est omis, le chemin vers le fichier keytab du service doit être défini dans la variable d’environnement `KRB5_KTNAME`.

Exemple (à placer dans `config.xml`) :

```xml theme={null}
<clickhouse>
    <!- ... -->
    <kerberos />
</clickhouse>
```

Avec un principal spécifié :

```xml theme={null}
<clickhouse>
    <!- ... -->
    <kerberos>
        <principal>HTTP/clickhouse.example.com@EXAMPLE.COM</principal>
    </kerberos>
</clickhouse>
```

Avec filtrage par domaine Kerberos :

```xml theme={null}
<clickhouse>
    <!- ... -->
    <kerberos>
        <realm>EXAMPLE.COM</realm>
    </kerberos>
</clickhouse>
```

<Note>
  Vous ne pouvez définir qu’une seule section `kerberos`. La présence de plusieurs sections `kerberos` entraînera la désactivation de l’authentification Kerberos dans ClickHouse.
</Note>

<Note>
  Les sections `principal` et `realm` ne peuvent pas être spécifiées en même temps. La présence simultanée des sections `principal` et `realm` entraînera la désactivation de l’authentification Kerberos dans ClickHouse.
</Note>

<div id="kerberos-as-an-external-authenticator-for-existing-users">
  ## Kerberos comme authentificateur externe pour les utilisateurs existants
</div>

Kerberos peut être utilisé comme méthode pour vérifier l’identité des utilisateurs définis localement (utilisateurs définis dans `users.xml` ou dans les chemins locaux de contrôle d’accès). Actuellement, **seules** les requêtes via l’interface HTTP peuvent être *authentifiées avec Kerberos* (via le mécanisme GSS-SPNEGO).

Le format du nom de principal Kerberos suit généralement ce modèle :

* *primary/instance\@REALM*

La partie */instance* peut apparaître zéro, une ou plusieurs fois. **La partie *primary* du nom de principal canonique de l’initiateur doit correspondre au nom d’utilisateur authentifié avec Kerberos pour que l’authentification réussisse**.

<div id="enabling-kerberos-in-users-xml">
  ### Activation de Kerberos dans `users.xml`
</div>

Pour activer l’authentification Kerberos pour l’utilisateur, spécifiez la section `kerberos` au lieu de `password` ou d’une section similaire dans la définition de l’utilisateur.

Paramètres :

* `realm` - un realm utilisé pour limiter l’authentification aux seules requêtes dont le realm de l’initiateur correspond.
  * Ce paramètre est facultatif ; s’il est omis, aucun filtrage supplémentaire par realm ne sera appliqué.

Exemple (à placer dans `users.xml`) :

```xml theme={null}
<clickhouse>
    <!- ... -->
    <users>
        <!- ... -->
        <my_user>
            <!- ... -->
            <kerberos>
                <realm>EXAMPLE.COM</realm>
            </kerberos>
        </my_user>
    </users>
</clickhouse>
```

<Note>
  Notez que l’authentification Kerberos ne peut pas être utilisée en parallèle d’un autre mécanisme d’authentification. La présence de toute autre section, comme `password` en plus de `kerberos`, entraînera l’arrêt de ClickHouse.
</Note>

<Info>
  **Rappel**

  Notez que désormais, une fois que l’utilisateur `my_user` utilise `kerberos`, Kerberos doit être activé dans le fichier principal `config.xml`, comme décrit précédemment.
</Info>

<div id="enabling-kerberos-using-sql">
  ### Activation de Kerberos via SQL
</div>

Lorsque le [contrôle d’accès et la gestion des comptes pilotés par SQL](/docs/fr/concepts/features/security/access-rights#access-control-usage) sont activés dans ClickHouse, il est également possible de créer avec des instructions SQL des utilisateurs identifiés par Kerberos.

```sql theme={null}
CREATE USER my_user IDENTIFIED WITH kerberos REALM 'EXAMPLE.COM'
```

...ou, sans filtrage par realm :

```sql theme={null}
CREATE USER my_user IDENTIFIED WITH kerberos
```
