wiki:Tutorial/Authorization

Version 10 (modified by manyong, 17 years ago) (diff)

--

Authentification et Autorisation

Authentification et Autorisation

Demande de certificat

On va utiliser la procédure normale pour obtenir un certificat. Les certificats pour cette formation ont une limite de validité de quelques jours. Normalement un certificat a une limite de validité d'un an et peut être renouvellé.

  1. Connectez-vous sur l'authorité de certification CNRS pour la France. N'utilisez pas le navigateur safari.
  2. Cliquez sur Certificat personnel à gauche de la page.
  3. Remplissez les données du premier formulaire. Pour le nom utilisez EtudiantUn, EtudiantDeux'', etc. Utilisez votre propre prenom. Cliquez sur `[suite]. La procédure vérifie votre adresse électronique. Il est impératif que vous fournissiez une adresse valide et que vous puissiez accéder à votre boîte aux lettres à distance.
  4. Choisissez votre organisme, puis cliquez sur [suite]. Indiquez CNRS\@.

\item Choisissez votre laboratoire en consultant la liste, puis cliquez sur [suite]. Indiquez le LAL\@.

\item Un récapitulatif des informations apparaît. Vérifiez que les

informations sont correctes. Si vous cliquez sur [suite], la demande est envoyée.

\item L'authorité de certification envoie un message électronique à l'adresse que vous avez indiquée. Dans ce message il y a un lien que vous devez visiter pour valider votre demande. Si vous utilisez les filtres SPAM, vérifiez que ce message de confirmation n'est pas marqué comme SPAM\@.

\item Une fois la demande acceptée, vous allez recevoir un deuxième message électronique contenant un lien à cliquer. A l'ouverture de la page correspondante, votre certificat est importé dans votre navigateur. \em{Vous devez ensuite utiliser le même navigateur que vous avez utilisé pour faire la demande}.

\end{enumerate}

\subsection{L'enregistrement dans une VO}

L'accès aux ressources de la grille est contrôlé par des organisations virtuelles (VO). Il est nécessaire d'être membre d'au moins une VO\@. Une fois que vous avez votre certificat, il est nécessaire de contacter le VO Manager d'une VO pour faire l'enregistrement.

Le site du \htmladdnormallinkfoot{CIC Operations Portal}{https://cic.gridops.org/} contient les informations pour les VOs principales et le lien pour s'enregistrer dans ces VOs. Cette page ne contient pas toutes les VOs\@. Il peut être nécessaire de contacter quelqu'un de votre organisation pour connaître le serveur correct.

Aujourd'hui, vous allez utiliser la VO \voname.

\begin{enumerate}

\item Allez au serveur

\htmladdnormallinkfoot{VOMS}{https://grid12.lal.in2p3.fr:8443/voms/\voname} pour la VO \voname avec un navigateur sur lequel votre certificat est installé.

\item Cliquez sur le lien New user registration dans la liste à

gauche.

\item Remplissez le formulaire et cliquez sur le bouton I have read

and agree to the VO's Usage Rules.

\item Vous allez recevoir un message électronique pour confirmer votre adresse électronique. (Vérifiez encore que le message n'est pas marqué comme SPAM\@.) Cliquez sur l'URL de confirmation indiquée.

\item Le VO Manager doit valider votre demande. Une fois

la demande validée, vous allez recevoir un message électronique.

\end{enumerate}

\subsection{Exportation, installation et utilisation du certificat}

Votre certificat est installé dans votre browser. Pour utiliser la grille, on doit extraire ce certificat et l'installer dans le User Interface \uimachine.

\begin{enumerate}

\item Utilisez la fonction export de votre navigateur pour faire

une sauvegarde de votre certificat au format pkcs12 (fichier .p12).

\begin{description}

\item[Firefox] Sélectionnez le menu FireFox/Preferences\@. Cliquez sur Avancer à droite et l'onglet Chiffrement. Cliquez sur le bouton Afficher les resultats..., sélectionnez votre certificat et utilisez la fonction importer.

\item[Mozilla] Dans le menu Edit/Preferences allez dans l'onglet Privacy \& Security puis dans certificates. Cliquez sur Manage Certificates, et utilisez la fonction backup.

\item[Netscape] Cliquez sur l'icône sécurité (ou passez par le menu Communicator/outils/Information sur la sécurité), puis cliquez sur le choix vos certificats.

\item[Internet Explorer] Dans le menu Outils/Options Internet, allez dans l'onglet contenu et cliquez sur certificats. Cliquez ensuite sur exporter.

\end{description}

La procédure va demander un mot de passe pour sauvegarder votre certificat. Ne l'oubliez pas.

\item Copiez votre certificat dans la machine \uimachine. Remplacez

\file{cert.p12} par le nom exact de votre certificat dans toutes les commandes suivantes. Il a peut-être une extension .pfx.

\begin{yexample}\begin{verbatim} scp cert.p12 etud01@…:~/cert.p12 \end{verbatim}\end{yexample}

\item Connectez-vous via \cmd{ssh} sur \uimachine\ et

créez, dans votre home directory, le répertoire \file{.globus}. Descendez dans ce répertoire.

\begin{yexample}\begin{verbatim} mkdir .globus cd .globus mv ~/cert.p12 . \end{verbatim}\end{yexample}

\item Convertissez votre certificat au bon format et donnez-lui les bons

droits. Pour utiliser la grille, vous avez besoin de deux fichiers \file{usercert.pem} et \file{userkey.pem} qui contiennent votre clé publique et votre clé privée.

\begin{yexample}\begin{verbatim} openssl pkcs12 -in cert.p12 -clcerts -nokeys -out usercert.pem openssl pkcs12 -in cert.p12 -nocerts -out userkey.pem \end{verbatim}\end{yexample}

Ces commandes vont vous demander d'entrer le mot de passe que vous avez utilisé pour créer le fichier \file{cert.p12}. Pour créer le fichier \file{userkey.pem}, la commande vous demande aussi de donner un nouveau mot de passe associé pour protéger le fichier. Normalement on utilise le même mot de passe que pour le fichier \file{cert.p12}.

\item Vérifiez que les fichiers disposent des bons droits. Le fichier

\file{userkey.pem} doit avoir les droits 0400; le fichier \file{usercert.pem} doit avoir les droits 0444. Changez les droits avec \cmd{chmod} si nécessaire.

\begin{yexample}\begin{verbatim} ls -l ~/.globus chmod 0400 ~/.globus/userkey.pem chmod 0444 ~/.globus/usercert.pem \end{verbatim}\end{yexample}

\item Repérez les différents champs du certificat (sujet,

validité...) en lisant son contenu avec la commande \cmd{openssl}.

\begin{yexample}\begin{verbatim} openssl x509 -text -noout -in ~/.globus/usercert.pem \end{verbatim}\end{yexample}

Quel est votre Subject? Quelle est la date de fin de validité de votre certificat?

\end{enumerate}

\subsection{Manipulation d'un proxy}

Pour permettre à vos jobs d'accéder aux services de la grille, vous devez créer un proxy. Un proxy est un fichier signé avec votre certificat qui est envoyé avec vos jobs. Les proxies sont valables pour une durée limitée, normalement 12 à 24 heures.

\begin{enumerate}

\item Depuis la machine \uimachine, demandez un proxy.\footnote{L'erreur Cannot find file or dir: ... /.glite/vomses est normale.}

\begin{yexample}\begin{verbatim} voms-proxy-init --voms vo.u-psud.fr \end{verbatim}\end{yexample}

Cette commande crée un fichier signé avec votre certificat que vos jobs peuvent utiliser pour accéder aux services de la grille. Il vous est demandé de donner votre mot de passe.

\item Affichez les informations du proxy créé.

\begin{yexample}\begin{verbatim} voms-proxy-info \end{verbatim}\end{yexample}

Les informations intéressantes sont le subject, l'équivalent de votre username dans la grille, le timeleft, le temps durant lequel le certificat est encore valable, et le nom de fichier pour le proxy.

\item Supprimez explicitement le proxy.

\begin{yexample}\begin{verbatim} voms-proxy-destroy \end{verbatim}\end{yexample}

Cette commande supprime le proxy dans l'ordinateur local. Les copies éventuellement envoyées avec vos jobs ne sont pas affectées. Vérifiez que le proxy a bien été supprimé avec la commande \cmd{voms-proxy-info}.

\item Regardez les autres options disponibles avec la commande

\cmd{voms-proxy-init}. (Utilisez \cmd{man} ou l'option -help.) On peut changer, par exemple, la durée de vie et la taille (nombre de bits) du proxy. Normalement les valeurs par défauts sont correctes.

\end{enumerate}

Les anciennes commandes \cmd{grid-proxy-*} pour manipuler les proxies existent toujours. Mais ces commandes ne supportent pas de mettre les informations de votre VO dans le proxy. Les proxies VOMS sont 100\% compatibles avec l'ancien format et il est préférable d'utiliser les commandes \cmd{voms-proxy-*}.

Il existe aussi des commandes \cmd{myproxy-*}. Elles permettent le renouvellement automatique des proxies pour des jobs de très longue durée. Ces commandes ne seront pas utilisées dans ce tutorial.

\subsection{Utilisation des groupes et rôles dans une VO}

Les organisations virtuelles qui utilisent VOMS (Virtual Organisation Membership Server) peuvent définir des groupes et des rôles. Tous les groupes que vous avez le droit d'utiliser sont décrits dans votre proxy VOMS\@. Quand on crée un proxy, il est nécessaire de demander d'ajouter les rôles explicitement.

Actuellement les groupes et les rôles ne sont pas respectés par tous les services grille. Dans le futur on pourra les utiliser pour le contrôle d'accès aux fichiers et aux services.

\begin{enumerate}

\item Pour lister les groupes de votre proxy utilisez la commande

\cmd{voms-proxy-info} avec l'option -all (peut-être vous devrez créer un nouveau proxy avec \cmd{voms-proxy-init}). Les groupes dans les lignes marquées attribute. Une VO peut créer une hiérarchie dans les groupes.

\begin{yexample}\begin{verbatim} voms-proxy-info -all \end{verbatim}\end{yexample}

De quel(s) groupe(s) faites vous partie?

\item Ajouter le rôle Tutorial1 ou Tutorial2 dans

votre proxy. La moitié des participants à ce tutoriel possède les droits pour utiliser le rôle Tutorial1 et les autres pour utiliser Tutorial2. Si vous demandez un rôle pour lequel vous n'avez pas les droits, la commande \cmd{voms-proxy-init} échoue.

\begin{yexample}\begin{verbatim} voms-proxy-init --voms vo.u-psud.fr:/Role=Tutorial1 \end{verbatim}\end{yexample}

Vérifiez le rôle dans votre proxy avec la commande \cmd{voms-proxy-info}. Vérifiez aussi que la commande génère une erreur quand vous demandez le mauvais rôle.

\end{enumerate}