|
|
[:arrow_backward: Gestion de son compte](Gestion%20de%20son%20compte) | [Gestion des groupes et des projets :arrow_forward:](Gestion%20des%20groupes%20et%20des%20projets)
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
|
|
## Contexte
|
|
|
|
|
|
L'authentification à Koda se fait via Janus. Or il n'est pas possible de déclencher une authentification Janus depuis un terminal (pour lancer des commandes telles que `git clone`) ni depuis un IDE (VSCode, Eclipse, outils de JetBrains, ...).
|
|
|
|
|
|
Pour cela, nous allons utiliser un _Personal Access Token_ (voir également la [documentation Gitlab à ce sujet](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)).
|
|
|
|
|
|
## Création d'un _Personal Access Token_
|
|
|
|
|
|
Il faut se rendre dans son profil en cliquant sur le lien _Edit Profile_ :
|
|
|
|
|
|
![image](uploads/b3549a93fc712c7c4bd544836febb13a/image.png)
|
|
|
|
|
|
Cliquer ensuite sur le menu _Access Tokens_ à gauche :
|
|
|
|
|
|
![image](uploads/b179c30bd6719735ef06effd8f6425b9/image.png)
|
|
|
|
|
|
Renseigner ensuite le formulaire comme suit :
|
|
|
|
|
|
* _Token name_ : mettre un nom explicite, par exemple `Shell Linux` ou `PyCharm`
|
|
|
* _Expiration date_ : il est possible de limiter dans le temps ce token en renseignant une valeur (facultative) dans ce champ
|
|
|
* _Select scopes_ : ici, pour pouvoir interagir avec le dépôt git (clone, push, pull), il faut sélectionner le scope `write_repository`
|
|
|
|
|
|
Cliquer enfin sur le bouton _Create personal access token_.
|
|
|
|
|
|
Le token est alors généré et est affiché en haut de la page :
|
|
|
|
|
|
![image](uploads/e4f14452454e409ba8053dd0dbab3c47/image.png)
|
|
|
|
|
|
Il est important de le noter et conserver car il ne sera plus accessible ensuite. Par contre, il est tout à fait possible de le révoquer et de regénérer un autre token. Il n'y a pas de limites sur le nombre de tokens.
|
|
|
|
|
|
Le token est à considérer comme un mot de passe.
|
|
|
|
|
|
La liste des tokens générés est disponible en bas de cette page :
|
|
|
|
|
|
![image](uploads/38337062dd98674de252e0fa458dd6b8/image.png)
|
|
|
|
|
|
## Utilisation d'un _Personal Access Token_
|
|
|
|
|
|
Une fois le token généré, on peut l'utiliser de la manière suivante quand les informations d'authentification sont demandées :
|
|
|
|
|
|
* identifiant : cette valeur est obligatoire [mais n'est pas utilisée](https://gitlab.com/gitlab-org/gitlab/-/issues/212953), on peut donc mettre ce que l'on veut, par exemple la valeur `oauth2`
|
|
|
* mot de passe : mettre ici la valeur du token
|
|
|
|
|
|
## Authentification par SSH non disponible
|
|
|
|
|
|
Le mode d'authentification par SSH n'est pas disponible sur Koda, seul le mode d'authentification par HTTPS avec le _Personal Access Token_ est possible pour le moment.
|
|
|
|
|
|
## Sécurisation du _Personal Access Token_
|
|
|
|
|
|
Par défaut, chaque commande git demandera le token. Les solutions suivantes sont possibles pour fluidifier et sécuriser l'utilisation de ce token.
|
|
|
|
|
|
La [documentation officielle de git à ce sujet](https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage) peut être intéressante à lire également. On peut y lire notamment que ces options existent de base pour le _credential helper_ :
|
|
|
|
|
|
- par défaut : pas de stockage des informations d'authentification, elles seront demandées à chaque fois
|
|
|
- mode _cache_ : les informations d'authentification sont stockées en mémoire (15 minutes par défaut)
|
|
|
- mode _store_ : les informations d'authentification sont stockées sur disque (attention, le stockage est en clair)
|
|
|
|
|
|
### Outils Jetbrains
|
|
|
|
|
|
Les outils de Jetbrains permettent d'utiliser un Credential Helper, il suffit de cocher dans les paramètres _Version Control > Git > Use credential helper_ :
|
|
|
|
|
|
![image](uploads/8126031f140ece725c2b32b0769f5642/image.png)
|
|
|
|
|
|
Ils permettent également de stocker des mots de passes, cela est paramétrable dans les paramètres _Appearance & Behaviour > System Settings > Passwords_ :
|
|
|
|
|
|
![image](uploads/99b16dd33509531540fbd56f52e4729a/image.png)
|
|
|
|
|
|
### Windows
|
|
|
|
|
|
Sous Windows, depuis la version 2.29 de _Git for Windows_, le _Credential Manager_ pour Windows est intégré et proposé lors de l'installation :
|
|
|
|
|
|
![image](uploads/e26ff2055ec1df423be9d0405fb5b870/image.png)
|
|
|
|
|
|
Lors du lancement d'une commande git nécessitant une authentification, Windows affiche une popup invitant à saisir les informations :
|
|
|
|
|
|
![image](uploads/3c2e4280c3a8b2a8296d6a323b3bfe5b/image.png)
|
|
|
|
|
|
Ces informations sont stockées et accessibles dans le Panneau de configuration > Comptes d'utilisateurs > Gérer les informations d'identification Windows :
|
|
|
|
|
|
![image](uploads/b6e7a9a0d8f036b27f5a0dc735003899/image.png)
|
|
|
|
|
|
### Windows - WSL
|
|
|
|
|
|
Sous WSL, la [documentation Microsoft ](https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-git#git-credential-manager-setup)indique comment utiliser le _credential helper_ de Windows en ligne de commande Linux. Il suffit de pointer sur le binaire `git-credential-manager-core.exe` de Windows depuis WSL.
|
|
|
|
|
|
Par exemple pour une installation de git avec [scoop](https://scoop.sh/) :
|
|
|
|
|
|
```shell
|
|
|
git config --global credential.helper /mnt/c/Users/sdr/scoop/apps/git/current/mingw64/libexec/git-core/git-credential-manager-core.exe
|
|
|
```
|
|
|
|
|
|
Lorsque git demande alors une authentification, le _credential manager_ de Windows s'affiche :
|
|
|
|
|
|
![image](uploads/45f6437d74a3c516b46ec29b606abebc/image.png)
|
|
|
|
|
|
### Linux
|
|
|
|
|
|
Sous Linux, il est possible d'utiliser GPG et Netrc afin de conserver de manière sûre les informations d'authentification. La procédure qui suit a été réalisée sur une Ubuntu 20.04.
|
|
|
|
|
|
Commencer d'abord par installer l'outil `pass` :
|
|
|
|
|
|
```shell
|
|
|
sudo apt update
|
|
|
sudo apt install pass
|
|
|
```
|
|
|
|
|
|
Ensuite, générer si nécessaire une clé GPG :
|
|
|
|
|
|
```shell
|
|
|
gpg --gen-key
|
|
|
```
|
|
|
|
|
|
Initialiser le trousseau avec `pass` :
|
|
|
|
|
|
```shell
|
|
|
pass init NomDeLaCleGPG
|
|
|
```
|
|
|
|
|
|
Puis y stocker les informations d'authentification :
|
|
|
|
|
|
```plaintext
|
|
|
pass add -m koda
|
|
|
Enter contents of koda and press Ctrl+D when finished:
|
|
|
|
|
|
machine src.koda.cnrs.fr
|
|
|
protocol https
|
|
|
login oauth2
|
|
|
password valeur_du_personal_access_token
|
|
|
^D
|
|
|
```
|
|
|
|
|
|
Rendre le _credential manager_ `netrc` exécutable (c'est un script Perl) :
|
|
|
|
|
|
```shell
|
|
|
chmod +x /usr/share/doc/git/contrib/credential/netrc/git-credential-netrc
|
|
|
```
|
|
|
|
|
|
Enfin, configurer git :
|
|
|
|
|
|
```shell
|
|
|
git config --global credential.helper "/usr/share/doc/git/contrib/credential/netrc/git-credential-netrc -v -f $HOME/.password-store/koda.gpg"
|
|
|
```
|
|
|
|
|
|
Quand une commande git nécessite une authentification pour la première fois, alors le mot de passe du trousseau GPG est demandé :
|
|
|
|
|
|
![image](uploads/f92e79d3600cae45d9b09e7848029918/image.png)
|
|
|
|
|
|
Les fois suivantes, les informations d'authentification seront réutilisées.
|
|
|
|
|
|
---
|
|
|
|
|
|
[:arrow_backward: Gestion de son compte](Gestion%20de%20son%20compte) | [Gestion des groupes et des projets :arrow_forward:](Gestion%20des%20groupes%20et%20des%20projets) |
|
|
\ No newline at end of file |