doc-locale/fr-fr/administration/raketasks/ldap.md
{{< details >}}
{{< /details >}}
Les éléments suivants sont des tâches Rake liées à LDAP.
La tâche Rake de vérification LDAP teste les identifiants bind_dn et password (si configurés) et liste un échantillon d'utilisateurs LDAP. Cette tâche est également exécutée dans le cadre de la tâche gitlab:check, mais peut être exécutée indépendamment à l'aide de la commande ci-dessous.
{{< tabs >}}
{{< tab title="Paquet Linux (Omnibus)" >}}
sudo gitlab-rake gitlab:ldap:check
{{< /tab >}}
{{< tab title="Auto-compilée (source)" >}}
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:check
{{< /tab >}}
{{< /tabs >}}
Par défaut, la tâche renvoie un échantillon de 100 utilisateurs LDAP. Modifiez cette limite en transmettant un nombre à la tâche de vérification :
rake gitlab:ldap:check[50]
{{< details >}}
{{< /details >}}
La tâche suivante exécute immédiatement une synchronisation de groupe. Cela est utile lorsque vous souhaitez mettre à jour toutes les appartenances aux groupes configurés dans LDAP sans attendre la prochaine synchronisation de groupe planifiée.
[!note] Si vous souhaitez modifier la fréquence à laquelle une synchronisation de groupe est effectuée, ajustez le planning cron à la place.
{{< tabs >}}
{{< tab title="Paquet Linux (Omnibus)" >}}
sudo gitlab-rake gitlab:ldap:group_sync
{{< /tab >}}
{{< tab title="Auto-compilée (source)" >}}
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:group_sync
{{< /tab >}}
{{< /tabs >}}
Si vous modifiez l'ID du serveur LDAP dans gitlab.yml ou gitlab.rb, vous devez mettre à jour toutes les identités des utilisateurs, faute de quoi ceux-ci ne pourront pas se connecter. Saisissez l'ancien et le nouveau fournisseur, et cette tâche met à jour toutes les identités correspondantes dans la base de données.
old_provider et new_provider sont dérivés du préfixe ldap suivi de l'ID du serveur LDAP issu du fichier de configuration. Par exemple, dans gitlab.yml ou gitlab.rb, vous pouvez voir une configuration LDAP comme celle-ci :
main:
label: 'LDAP'
host: '_your_ldap_server'
port: 389
uid: 'sAMAccountName'
# ...
main est l'ID du serveur LDAP. Ensemble, le fournisseur unique est ldapmain.
[!warning] Si vous saisissez un nouveau fournisseur incorrect, les utilisateurs ne pourront pas se connecter. Si cela se produit, exécutez à nouveau la tâche en utilisant le fournisseur incorrect comme
old_provideret le fournisseur correct commenew_provider.
{{< tabs >}}
{{< tab title="Paquet Linux (Omnibus)" >}}
sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider]
{{< /tab >}}
{{< tab title="Auto-compilée (source)" >}}
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:rename_provider[old_provider,new_provider]
{{< /tab >}}
{{< /tabs >}}
Supposons que vous commenciez avec l'ID de serveur par défaut main (fournisseur complet ldapmain). Si nous remplaçons main par mycompany, le new_provider devient ldapmycompany. Pour renommer toutes les identités des utilisateurs, exécutez la commande suivante :
sudo gitlab-rake gitlab:ldap:rename_provider[ldapmain,ldapmycompany]
Exemple de sortie :
100 users with provider 'ldapmain' will be updated to 'ldapmycompany'.
If the new provider is incorrect, users will be unable to sign in.
Do you want to continue (yes/no)? yes
User identities were successfully updated
Si vous ne spécifiez pas de old_provider et de new_provider, la tâche vous les demande :
{{< tabs >}}
{{< tab title="Paquet Linux (Omnibus)" >}}
sudo gitlab-rake gitlab:ldap:rename_provider
{{< /tab >}}
{{< tab title="Auto-compilée (source)" >}}
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:rename_provider
{{< /tab >}}
{{< /tabs >}}
Exemple de sortie :
What is the old provider? Ex. 'ldapmain': ldapmain
What is the new provider? Ex. 'ldapcustom': ldapmycompany
Cette tâche accepte également la variable d'environnement force, qui ignore la boîte de dialogue de confirmation :
sudo gitlab-rake gitlab:ldap:rename_provider[old_provider,new_provider] force=yes
GitLab peut utiliser les secrets de configuration LDAP pour lire à partir d'un fichier chiffré. Les tâches Rake suivantes sont fournies pour mettre à jour le contenu du fichier chiffré.
Affichez le contenu des secrets LDAP actuels.
{{< tabs >}}
{{< tab title="Paquet Linux (Omnibus)" >}}
sudo gitlab-rake gitlab:ldap:secret:show
{{< /tab >}}
{{< tab title="Auto-compilée (source)" >}}
sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:secret:show
{{< /tab >}}
{{< /tabs >}}
Exemple de sortie :
main:
password: '123'
bind_dn: 'gitlab-adm'
Ouvre le contenu du secret dans votre éditeur, et écrit le contenu résultant dans le fichier secret chiffré lorsque vous quittez.
{{< tabs >}}
{{< tab title="Paquet Linux (Omnibus)" >}}
sudo gitlab-rake gitlab:ldap:secret:edit EDITOR=vim
{{< /tab >}}
{{< tab title="Auto-compilée (source)" >}}
sudo RAILS_ENV=production EDITOR=vim -u git -H bundle exec rake gitlab:ldap:secret:edit
{{< /tab >}}
{{< /tabs >}}
Écrivez le nouveau contenu du secret en le fournissant via STDIN.
{{< tabs >}}
{{< tab title="Paquet Linux (Omnibus)" >}}
echo -e "main:\n password: '123'" | sudo gitlab-rake gitlab:ldap:secret:write
{{< /tab >}}
{{< tab title="Auto-compilée (source)" >}}
echo -e "main:\n password: '123'" | sudo RAILS_ENV=production -u git -H bundle exec rake gitlab:ldap:secret:write
{{< /tab >}}
{{< /tabs >}}
Exemple avec un éditeur :
La tâche d'écriture peut être utilisée dans les cas où la commande d'édition ne fonctionne pas avec votre éditeur :
# Write the existing secret to a plaintext file
sudo gitlab-rake gitlab:ldap:secret:show > ldap.yaml
# Edit the ldap file in your editor
...
# Re-encrypt the file
cat ldap.yaml | sudo gitlab-rake gitlab:ldap:secret:write
# Remove the plaintext file
rm ldap.yaml
Exemple d'intégration KMS :
Elle peut également être utilisée comme application réceptrice pour du contenu chiffré avec un KMS :
gcloud kms decrypt --key my-key --keyring my-test-kms --plaintext-file=- --ciphertext-file=my-file --location=us-west1 | sudo gitlab-rake gitlab:ldap:secret:write
Exemple d'intégration de secrets Google Cloud :
Elle peut également être utilisée comme application réceptrice pour des secrets provenant de Google Cloud :
gcloud secrets versions access latest --secret="my-test-secret" > $1 | sudo gitlab-rake gitlab:ldap:secret:write