La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

EGEE-III INFSO-RI-222667 Enabling Grids for E-sciencE www.eu-egee.org EGEE and gLite are registered trademarks Proxy Management with the gLite API Virginia.

Presentaciones similares


Presentación del tema: "EGEE-III INFSO-RI-222667 Enabling Grids for E-sciencE www.eu-egee.org EGEE and gLite are registered trademarks Proxy Management with the gLite API Virginia."— Transcripción de la presentación:

1 EGEE-III INFSO-RI-222667 Enabling Grids for E-sciencE www.eu-egee.org EGEE and gLite are registered trademarks Proxy Management with the gLite API Virginia Martín-Rubio Pascual RedIRIS virginia.martinrubio@rediris.es gLite tutorial for users and applications developers 26-30 de Octubre de 2009 Madrid

2 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Planning 1.Introducción 2.Descripción del API 1.Estructuras 2.Variables 3.Funciones más importantes 3.Ejemplo publicado en el wiki de GILDA 1.Compilación del ejemplo 2.Ejecución del ejemplo Introducción a gLite

3 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Introducción (1/2) -El API para la gestión del VOMS está disponible tanto para C como para C++. Los paquetes que lo proporcionan son: glite-security-voms-api-c.x.y.z glite-security-voms-api-cpp.x.y.z -Este API permite realizar las siguientes funciones: Buscar información contenida en un VOMS proxy. Contactar con el servidor VOMS y obtener las extensiones VOMS. Pero entre las funciones de este API no se encuentra la de crear un proxy que incluya unas determinadas extensiones VOMS.

4 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Introducción (2/2) VOMS CC API Documentation by doxygen: http://egee-jra1-wm.mi.infn.it/egee-jra1- wm/voms/VOMS_CC_API/html/index.html Guía para desarrolladores sobre el API de C++ para VOMS: http://grid-auth.infn.it/docs/c++api.pdf VOMS C++ API (wiki de GILDA, ejemplos): http://grid.ct.infn.it/twiki/bin/view/GILDA/VomsCPPAPI

5 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Estructuras de datos Struct data: contiene los datos sobre un único atributo, almacenando sus especificaciones en términos de: groups, roles y capabilities. -group: tiene el formato /nombreVO/nombreGrupo. -role: indica si el usuario tiene algún papel especial dentro del grupo, de no ser así su valor sería NULL. -capabilities: capacidades que tiene el usuario por el hecho de pertenecer a un grupo y por tener un rol determinado, si no tiene ningún rol su valor sería NULL. Struct contactdata: muestra la información que utiliza el cliente (UI) para contactar con el servidor VOMS. -host: nombre del servidor VOMS. -contact: asunto del certificado del servidor VOMS. -port: puerto del servidor VOMS en el que este está escuchando. -vo: nombre de la VO a la que está sirviendo el servidor VOMS.

6 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Estructuras de datos Struct voms: agrupa conjuntamente toda la información que puede ser recogida en un único AC (Attribute Certificate). Se pueden modificar localmente sus campos públicos sin alterar el contenido del correspondiente AC que es de ámbito privado. Datos públicos: -user: DN del usuario que aparece en su certificado. -userca: nombre de la Autoridad Certificadora que ha emitido el certificado de usuario. -server: DN del servidor VOMS según aparece en su certificado. -voname: nombre de la VO a la que pertenecen este AC. -uri: URI del seridor VOMS en el formato fqdn:puerto. -date1, date2: fechas de inicio y de fin de vida del VOMS proxy. -std: contiene una estructura data (group, role, capabilities). Datos privados: -AC ac ; -X509 holder ; NOTA: Debido a que un usuario puede pertenecer a varias VOs a la vez, se definirá un vector de estas estructuras de datos para almacenar tantos ACs como VOs a las que pertenezca el usuario.

7 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Clase vomsdata Struct vomsdata: recoge en un mismo lugar toda la información presente en una extensión VOMS. Datos públicos: -vector data: vector de estructuras voms, en cada una de ellas estará almacenada la información sobre las credenciales VOMS de cada VO a la que pertenezca el usuario. -workvo: nombre de la VO con la que se ha iniciado el VOMS proxy (voms-proxy-init --vo nombreVO). FUNCIONES: -bool vomsdata::LoadSystemContacts(std::string dir= “”): carga los URIs de los servidores VOMS almacenados en el directorio indicado como parámetro en el vomsdata. -std::vector FindByVO(std::string vo): devuelve un vector con los servidores VOMS que sirven a una determinada VO. -void vomsdata::SetLifetime (int lifetime): establece un tiempo de vida para el certificado (que posteriormente se obtendrá con Contact). -bool Contact(std::string hostname, int port, std::string servsubject, std::string command): contacta con un servidor VOMS para obtener un certificado (equivalente a voms-proxy-init). -bool vomsdata::ContactRaw ( std::string hostname, int port, std::string servsubject, std::string command, std::string &raw, int &version): igual que Contact pero sin iniciar un proceso de verificación del certificado recibido. -cbool vomsdata::Retrieve(X509 *cert, STACK OF(X509) *chain, recurse type how = RECURSE CHAIN): extrae las extensiones VOMS de un certificado pasado como parámetro.

8 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Funciones AddTarget() : vomsdatavomsdata Contact() : vomsdatavomsdata ContactRaw() : vomsdatavomsdata DefaultData() : vomsdatavomsdata Export() : vomsdatavomsdata FindByAlias() : vomsdatavomsdata FindByVO() : vomsdatavomsdata Import() : vomsdatavomsdata ListTargets() : vomsdatavomsdata LoadSystemContacts() : vomsdatavomsdata LoadUserContacts() : vomsdatavomsdata operator=() : vomsvoms Order() : vomsdatavomsdata ResetOrder() : vomsdatavomsdata ResetTargets() : vomsdatavomsdata Retrieve() : vomsdatavomsdata ServerErrors() : vomsdatavomsdata SetLifetime() : vomsdatavomsdata SetVerificationType() : vomsdatavomsdata voms() : vomsvoms vomsdata() : vomsdata, vomsvomsdatavoms voms() : vomsvoms

9 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Variables cap : datadata contact : contactdatacontactdata custom : vomsvoms data : vomsdatavomsdata date1 : vomsvoms date2 : vomsvoms error : vomsdatavomsdata extra_data : vomsdatavomsdata fqan : vomsvoms group : datadata host : contactdatacontactdata nick : contactdatacontactdata port : contactdatacontactdata role : datadata serial : vomsvoms server : vomsvoms serverca : vomsvoms siglen : vomsvoms signature : vomsvoms std : vomsvoms type : vomsvoms uri : vomsvoms user : vomsvoms userca : vomsvoms version : voms, contactdatavomscontactdata vo : contactdatacontactdata voname : vomsvoms workvo : vomsdatavomsdata

10 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 EJEMPLOS DEL WIKI DE GILDA: http://grid.ct.infn.it/twiki/bin/view/GILDA/VomsCPPAPI

11 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Ejemplos del API C++ para VOMS 1. Comprobar que está el paquete instalado: [madrid03@glite-tutor ~]$ rpm -qa | grep -i glite-security-voms-api glite-security-voms-api-c-1.8.12-1.slc4.i386 glite-security-voms-api-cpp-1.8.12-1.slc4.i386 glite-security-voms-api-noglobus-1.8.8-2.slc4.i386 glite-security-voms-api-1.8.12-1.slc4.i386 2. Descargar el paquete de ejemplos: [madrid03@glite-tutor ~]$ wget http://grid.ct.infn.it/twiki/pub/GILDA/VomsCPPAPI/voms-api-examples.tar.gz 3. Descomprimir el paquete de ejemplos: [madrid03@glite-tutor ~]$ tar -xzf voms-api-examples.tar.gz 4. Entrar en el directorio creado: [madrid03@glite-tutor ~]$cd /home/madrid03/voms-API 5. Ejecutar script de inicialización de variables de entorno: [madrid03@glite-tutor voms-API]$./set-env-vomsapi.sh 6. Compilar ejemplos: [madrid03@glite-tutor voms-API]$ make

12 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Ejemplos del API C++ para VOMS -Browse Attribute Certificates (AC): (mirar voms-show-ext.cpp) [madrid03@glite-tutor voms-API]$./voms-api-show-ext Used proxy is /tmp/x509up_u12306 1 Attribute Certificate retrieved from proxy /tmp/x509up_u12306 ************************************************************************* Belonging vo is gilda Server subject is /C=IT/O=INFN/OU=Host/L=Catania/CN=voms.ct.infn.it User subject is /C=IT/O=GILDA/OU=Personal Certificate/L=MADRID/CN=MADRID03 2 sets of attributes retrieved from this AC ------------------------------ group is /gilda role is NULL ------------------------------ group is /gilda/generic-users role is NULL ------------------------------ *************************************************************************

13 Enabling Grids for E-sciencE EGEE-III INFSO-RI-222667 Ejemplos del API C++ para VOMS -Create a proxy with VOMS extensions: (mirar voms-create-proxy.cpp) [madrid03@glite-tutor voms-API]$./voms-api-create-proxy gilda Proxy file is /tmp/x509up_u504 Initializing proxy credential descriptor... Enter CERTIFICATE pass phrase: Private key succesfully loaded PCD correctly initialized Creating temporary proxy to contact VOMS server... X509_USER_PROXY succesfully set to /tmp/x509up_u504 System contacts loaded Voms server voms.ct.infn.it successfully contacted trying to put obtained AC into proxy VOMS Proxy successfully created !! End test


Descargar ppt "EGEE-III INFSO-RI-222667 Enabling Grids for E-sciencE www.eu-egee.org EGEE and gLite are registered trademarks Proxy Management with the gLite API Virginia."

Presentaciones similares


Anuncios Google