Suporte a organizações virtuais para autenticação e controle de acesso no CSGrid Vinicius G. Pinheiro1 , Maria Julia de Lima1 , Renato Maia1 , Noemi Rodriguez2 1 Instituto Tecgraf PUC-Rio – Rio de Janeiro – RJ – Brasil 2 Departamento de Informática PUC-Rio – Rio de Janeiro – RJ – Brasil {vgpinheiro,mjulia,maia}@tecgraf.puc-rio.br, [email protected] Abstract. Sharing resources located in different administrative domains is a typical need from multi-institutional projects. Such need implies at using Authentication and Authorization (A&A) mechanisms to normalize the access to the resources by the users. In the EUBrazilCC federation, VOMS (Virtual Organization Membership System) was adopted for this purpose what motivated adaptations on the CSGrid system to give support to virtual organizations for identifying and authenticating users from this federation. In this work, we present those modifications, how they were implemented and which possibilities they aggregate to CSGrid and to the project. Resumo. O compartilhamento de recursos localizados em diferentes domínios administrativos é uma necessidade típica em projetos multi-institucionais. Tal necessidade implica no uso de mecanismos de Autenticação e Autorização (A&A) para padronizar o acesso dos recursos aos usuários. Na federação EUBrazilCC, o VOMS (Virtual Organization Membership System) foi o serviço adotado para esse propósito, o que motivou adaptações no sistema CSGrid com o objetivo de dar suporte a organizações virtuais para identificação e autenticação de usuários dessa federação. Neste trabalho, apresentamos quais foram essas adaptações, como foram implementadas e quais as possibilidades que elas agregam ao CSGrid e ao projeto. 1. Introdução A necessidade de compartilhar recursos computacionais entre usuários de diferentes instituições de pesquisa tem motivado comunidades acadêmicas e científicas a integrarem seus recursos em federações1 . O projeto EU Brazil Cloud Connect2 tem como um de seus objetivos criar uma federação de clusters e clouds privadas, incentivando a colaboração de pesquisadores do Brasil e da Europa. No EUBrazilCC, o CSGrid [de Lima et al. 2005] é usado como middleware de serviços que oferece uma API de submissão de programas na infraestrutura computacional da federação para computação de alto desempenho. O sistema é uma das instâncias do CSBase [de Lima et al. 2006, de Lima et al. 2015], 1 2 Aqui estamos nos referindo a federações de recursos, e não a federações de identidade http://www.eubrazilcloudconnect.eu/ um framework que o Instituto Tecgraf da PUC-Rio vem desenvolvendo há uma década, e é utilizado como parte do middleware para desenvolvimento de portais científicos mc2 [Gomes et al. 2015], desenvolvido no LNCC. O EUBrazilCC é um exemplo de uma organização virtual [Foster et al. 2003], cujos membros e recursos estão espalhados por diferentes instituições e domínios administrativos. Organizações virtuais ainda constituem um desafio para a comunidade acadêmica no que diz respeito a mecanismos de autenticação e autorização. As federações de identidade [Wangham et al. 2010] vêm padronizando o acesso (web) a serviços disponíveis para toda a comunidade acadêmica ou para todos os membros de uma instituição que satisfaçam determinado critério, no caso deste critério ser gerenciado pela própria instituição (por exemplo, serviço disponível para todos os professores da PUC-Rio). No entanto, a participação de membros em uma organização virtual é iniciada ou cancelada segundo regras externas às organizações às quais são diretamente ligados. Por isso, os mecanismos convencionais de A&A de uma federação de identidade não são suficientes. Os participantes europeus do projeto EUBrazilCC já adotavam o VOMS [Alfieri et al. 2004] (Virtual Organization Membership Service) como mecanismo de autenticação e controle de acesso a seus recursos em outros projetos de cooperação, e foi natural que o VOMS fosse eleito como o sistema de controle no EUBrazilCC também. O sistema VOMS nasceu no âmbito de grades computacionais e é largamente utilizado nesse contexto. O CSGrid, por seu lado, já adotava o OpenBus [Maia and Roenick 2015] como mecanismo de integração com outros sistemas, que oferece um modelo de autenticação próprio. O OpenBus oferece algumas opções de autenticação, como uso de certificados digitais ou senhas, e tem possibilidade de ser estendido para se integrar com mecanismos de autenticação externos como o VOMS. Adicionalmente, o CSGrid adotava um modelo de autorizações próprio baseado na autenticação do OpenBus e em permissões definidas pelo administrador do sistema. Para adaptar o CSGrid para uso no EUBrazilCC com autenticação VOMS, exploramos a extensibilidade do modelo de autenticação do OpenBus e construímos novos mecanismos necessários para permitir integrar essa nova autenticação com o modelo de autorização próprio do CSGrid. Neste artigo discutimos as alterações que fizemos no CSGrid para permitir sua integração com mecanismos de autenticação externos, e em particular sua integração com o VOMS através do OpenBus. Inicialmente nosso objetivo era apenas permitir a integração do CSGrid com o VOMS, mas ao longo de nosso trabalho optamos por um redesenho que permite a integração de outros serviços. O artigo está organizado da seguinte forma. A seção 2 apresenta o sistema CSGrid e descreve o modelo de autenticação adotado para usuários que utilizam seus serviços através do barramento OpenBus. A seção 3 descreve as adaptações e extensões feitas no modelo de autenticação adotado pelo CSGrid para dar suporte a usuários da federação EUBrazilCC. A seção 4 apresenta trabalhos futuros e reflexões com relação à flexibilidade da solução e ao potencial de uso do VOMS em outras infraestruturas federadas. 2. CSGrid O CSGrid é um sistema da família CSBase [de Lima et al. 2006, de Lima et al. 2015] que oferece um ambiente de integração de aplicações cujos usuários solicitam a execução de programas em recursos computacionais distribuídos e heterogêneos. Nesta seção apresentamos uma visão geral do sistema CSGrid e sua arquitetura, assim como também o modelo de autenticação adotado por meio de um barramento OpenBus. 2.1. Visão Geral O CSGrid possui um repositório destes programas os quais o usuário pode selecionar para execução em uma das máquinas disponíveis, gerenciadas por um componente da arquitetura chamado SGA. O SGA implementa uma interface que (1) provê informações sobre os recursos computacionais que gerencia e (2) controla e monitora a submissão de programas executados pelos usuários do CSGrid. Em alguns casos, um SGA é um daemon que torna uma máquina apta a receber pedidos de execução de comandos e envia para o servidor as propriedades dessa máquina (e.g. memória, CPU) e dos comandos em execução. Em outros cenários, o SGA pode atuar como um mediador para outros escalonadores de terceiros como Portable Bach System (PBS)/Torque, Simple Linux Utility for Resource Management (SLURM), Sun Grid Engine (SGE) e outros. O CSGrid oferece também uma área de projetos para compartilhamento e organização dos dados de entrada e saída da execução de programas, dando apoio ao trabalho colaborativo entre os usuários de um mesmo projeto. Todos os recursos do sistema contam também com mecanismos locais de gestão de autenticação e autorização, podendo assim serem usados por organizações que lidam com dados sensíveis ou sistemas com propriedade intelectual. O CSBase, framework sobre o qual o CSGrid foi desenvolvido, já existe há mais de 10 anos e é utilizado por diferentes sistemas em produção na Petrobras com um número significativo de usuários. Desde 2011, o CSGrid também é adotado no SINAPAD3 , Sistema Nacional de Processamento de Alto Desempenho, como o middleware que gerencia seus recursos computacionais. A arquitetura do CSGrid dá suporte a dois modelos de integração de aplicações clientes, conforme a ilustração na Figura 1. No primeiro tipo de integração, as aplicações construídas com o toolkit CSDK (CSBase Development Kit) [Clinio and Almeida 2015] são instaladas no servidor CSGrid e se tornam automaticamente disponíveis no desktop padrão do CSGrid. Esse modelo de integração atende especificamente a construção de aplicações Java, com interfaces gráficas que facilmente são disponibilizadas para usuários de um sistema CSGrid já instalado. A comunicação com o servidor CSGGrid é baseada em chamadas remotas de serviços do CSGrid que exportam suas interfaces Java RMI. As aplicações construídas com o CSDK utilizam autenticação por usuário e senha que, dependendo da instalação do CSGrid, podem ser validadas em uma base local do próprio CSGrid ou pelos servidores LDAP configurados. Um outro conjunto de aplicações externas utiliza o servidor CSGrid através de um barramento de integração de serviços, o OpenBus. O OpenBus oferece um conjunto de serviços básicos CORBA4 que dão suporte a construção e integração de aplicações, independente de linguagem e plataforma. O mc2, desenvolvido pelo LNCC, é um exemplo de sistema que atualmente adota a integração com o CSGrid através do barramento OpenBus. 3 4 https://www.lncc.br/sinapad http://www.corba.org Cenário de integração entre o mc2 e o CSGrid no EUBrazilCC Aplicações Externas Openbus SDK OpenBus Aplicações CSGrid CORBA CSDK Desktop CSGrid CSGrid Java RMI SGA SGA SGA SGA Nuvens privadas e infraestrutura HPC Figura 1. Integração de aplicações no CSGrid Em particular, no trabalho aqui apresentado, estamos interessados em investigar o suporte a organizações virtuais no CSGrid com aplicações integradas através do barramento OpenBus. Essa arquitetura de integração através da autenticação de usuários no OpenBus é a solução adotada pelo CSGrid na federação EUBrazilCC. No projeto EUBrazilCC, portais científicos construídos com a plataforma mc2 usam os serviços do CSGrid para submeter a execução de programas nos recursos computacionais da infraestrutura de clusters e clouds privadas de instituições no Brasil e na Europa. 2.2. Autenticação pelo OpenBus No projeto EUBrazilCC, o CSGrid adota o OpenBus como solução de integração com os portais científicos construídos na plataforma mc2. O OpenBus oferece um barramento de integração de sistemas por meio de um conjunto de serviços básicos baseados em CORBA. Essa interface de integração via OpenBus tem por objetivo prover comunicação eficiente e independente de plataforma, autenticação das partes comunicantes, descoberta de serviços e governança sobre o acesso e serviços publicados no barramento. O OpenBus vem sendo desenvolvido e mantido pelo Instituto Tecgraf/PUC-Rio para a Petrobras desde 2006, sendo que nesse período diversos sistemas de E&P (Exploração e Produção) já se integraram através de barramentos OpenBus. Os principais serviços publicados pelo servidor CSGrid no barramento OpenBus são o OpenDreams, o ProjectService e o ServerMonitor. O OpenDreams é um serviço para submissão, monitoramento e controle de execução remota de programas. O ProjectService é um serviço que oferece funcionalidades para acesso e transferência de dados utilizados na execução de programas. Os usuários podem compartilhar seus projetos com outros usuários do CSGrid. O ServerMonitor é o serviço que provê informações sobre os recursos computacionais disponíveis para execução dos programas, de acordo com as políticas de acesso configuradas no CSGrid para utilização desses recursos pelos usuários autenticados. Toda comunicação feita entre as aplicações e serviços do CSGrid através do OpenBus é realizada através de chamadas de objetos distribuídos usando o padrão CORBA. Contudo, ao contrário das chamadas de CORBA comuns, nas chamadas feitas através do barramento, é imposto um rigoroso controle de acesso que só permite chamadas provenientes de sistemas previamente autenticados junto ao barramento. O controle de acesso ao barramento é assegurado através de credenciais ocultas nas chamadas de objetos CORBA. Essas credenciais de acesso contém informações de identificação da origem da chamada, ou mais especificamente o login de acesso do processo que originou a chamada. Todo login é sempre autenticado em nome de uma entidade, que é responsável por todos os acessos feitos através daquele login. Além disso, as credenciais do OpenBus podem incluir múltiplos logins, formando uma cadeia de logins. Esse suporte é usado para indicar que múltiplas identidades atuam por trás de uma dada chamada. Por exemplo, quando um sistema faz uma chamada em nome de outro (delegação) ou como consequência de uma chamada proveniente de outro sistema autenticado com uma entidade diferente. Nesses casos, a credencial inclui informações do login de todos os sistemas envolvidos. A cadeia de logins do OpenBus é ordenada, de forma que é possível identificar o login mais imediato que originou a chamada em que a credencial está contida. Os sistemas que recebem chamadas pelo barramento com credenciais podem inspecionar essa cadeia e obter um identificador único de cada login participante. Através dos identificadores de login é possível obter informações sobre um dado login, tal como a entidade de autenticação, ou mesmo outros dados adicionais disponibilizados através de serviços especializados. Com base nessas informações o CSGrid é capaz de impor seu próprio mecanismo de permissionamento em cada chamada recebida pelo barramento, baseando-se nas informações de identificação provenientes da credencial do OpenBus. Por padrão, o OpenBus permite um conjunto básico de mecanismos de autenticação, tais como autenticação por senha proveniente de um sistema LDAP ou certificado digital. Contudo o OpenBus também provê a possibilidade de se estender o seu suporte a autenticação através de plugins denominados validadores de token. Um validador de token tem por objetivo validar uma prova de autenticação externa fornecida ao barramento no momento da autenticação de um sistema. Uma vez que a prova de autenticação externa seja validada por um validador de token, o barramento gera um novo login para representar essa autenticação, e o associa permanentemente à identidade da entidade validada pelo validador de token. O novo login pode então ser utilizado para formar credenciais OpenBus que identifiquem chamadas como provenientes dessa entidade autenticada por um provedor de identidade externo. 3. Suporte a federação EUBrazilCC no CSGrid O VOMS foi adotado pelo projeto EUBrazil Cloud Connect como o serviço de autenticação e autorização dos usuários. Essa escolha foi uma opção natural, dado seu uso em outros projetos de cooperação. Nessa seção, discutimos as adaptações feitas no CSGrid para utilizar o VOMS no controle de acesso das requisições provenientes dos portais desenvolvidos pelo mc2. Os portais do mc2 se integram ao CSGrid através do barramento OpenBus e, portanto, a extensão desenvolvida para a solução de autenticação com o VOMS envolve adaptações no suporte ao OpenBus do CSGrid. 3.1. O serviço VOMS O VOMS (Virtual Organization Membership Service) [Alfieri et al. 2004] é um serviço de autenticação e autorização (A&A) para organizações virtuais (VOs) originalmente dese- nhado para uso em grades computacionais. A infraestrutura de autenticação e autorização tradicionalmente utilizada em grades utiliza o conceito de VOs e certificados de atributo (AC) para implementar acordos de serviço entre uma VO e os provedores de recursos computacionais. Esses provedores de recursos aceitam usuários que apresentem certificados de atributo assinados por um intermediário confiável, e utilizam os atributos contidos nos certificados para definir permissões. O VOMS funciona como uma base de dados sobre organizações virtuais, emitindo certificados de atributo de curta duração para usuários cadastrados para que esses possam apresentá-los a provedores de recursos. O serviço ainda dá suporte ao conceito de Single Sign On (SSO), possibilitando que usuários autenticados em um sistema possam ser identificados por outros sistemas sem a necessidade de novas autenticações. Para que isso seja possível, cada sistema deve estar preparado para autenticar não somente seus usuários locais como também usuários externos representados por tokens VOMS. As organizações virtuais possuem administradores que fazem o cadastro de usuários e papéis da organização virtual. Um usuário pode estar cadastrado em várias organizações virtuais, e em cada uma ter papéis específicos. O usuário, ao contactar o serviço VOMS, apresenta seu certificado de usuário (certificado digital X509 assinado por uma autoridade certificadora reconhecida pelo VOMS) e informa que organização virtual deseja utilizar. O serviço VOMS então gera (e assina) um certificado de curta validade (certificado proxy compatível com a RFC 3281) contendo a identificação do usuário e o certificado de atributo que contém seus atributos na VO desejada. O proxy é usado como token de autenticação perante provedores de recursos da VO desejada. Além de utilizar o certificado proxy para autenticação do usuário, o provedor de recursos pode consultar os atributos constantes no certificado para definir autorizações e direitos. O certificado também pode ser enviado para fazer delegações, isto é, para que o recurso possa se comunicar com um outro serviço em nome do usuário. Os atributos VOMS refletem a estrutura de uma VO: os grupos ao qual um usuário pertence, os papéis de um usuário em cada grupo e atributos genéricos na forma de pares chave-valor. Esses atributos genéricos podem ser usados para associar outras informações úteis ao membro de uma VO, como por exemplo atributos Shibboleth. Atualmente os serviços VOMS também permitem utilizar asserções SAML para descrever atributos VOMS, facilitando a interoperabilidade entre os provedores de serviços. O código do VOMS é mantido e disponibilizado pela EMI (European Middleware Intiative). A federação EUBrazilCC utiliza o serviço VOMS hospedado pela Universidade Politécnica de Valência. 3.2. Arquitetura do modelo de A&A com o VOMS no CSGrid Para dar suporte no CSGrid à autenticação de usuários representados por proxies VOMS, estendemos o modelo de A&A do CSGrid com a implementação dos seguintes artefatos: • VOMSTokenValidator: Um validador de token VOMS implementado de acordo com o modelo de validador de token do OpenBus (vide seção 2.2). Ele possibilita que sistemas autenticados no barramento gerem chamadas que sejam identificadas como provenientes de usuários externos. • VOMSACInfoService: Uma aplicação CORBA que provê uma API simples para a consulta de informações sobre proxies VOMS como data de expiração, atributos Figura 2. Autenticação VOMS na infraestrutura EUBrazil Cloud Connect. dos usuários na forma de FQANs5 (Fully Qualified Attribute Names) etc. Os dados desse serviço são populados pelo validador de tokens VOMS durante a validação de um certificado proxy, e esses dados ficam disponíveis para o CSGrid. Na Figura 2, descrevemos passo a passo como tais artefatos se inserem na arquitetura da solução. Nessa figura, os portais desenvolvidos pela plataforma mc2 servem como porta de entrada através da qual os usuários da organização virtual EUBrazilCC tem acesso aos recursos computacionais da infraestrutura federada. Assumimos que tanto a plataforma mc2 como o sistema CSGrid estejam previamente autenticados junto ao barramento, que é tipicamente feito usando os mecanismos básicos de autenticação do OpenBus através de certificados digitais gerados para esses sistemas. Similarmente assumimos que o CSGrid tenha publicado seus serviços no registro de ofertas do barramento de forma que possa ser encontrado pela plataforma mc2 para submissão de execuções. Quando um usuário da federação EUBrazilCC (e.g. Pedro) faz acesso a um portal mc2, ele pode fornecer um certificado proxy VOMS como forma de autenticação (passo 1). A plataforma mc2 então converte esse certificado numa credencial OpenBus através da operação importChain do barramento (passo 2). Essa operação recebe como parâmetros um token de autenticação e uma identificação do domínio no qual este token deve ser validado. Nesse caso, o token passado como parâmetro é o proxy VOMS e o domínio é “voms”. O domínio é uma informação necessária para que o OpenBus saiba qual vali5 FQANs são atributos VOMS que guardam informações dos usuários no formato “/<vo>/Role=<função>/Capability=<aptidão>”. Um exemplo de FQAN para um usuário cadastrado na VO “eubrazilcc” com função de administrador seria “/eubrazilcc/Role=administrador/Capability=NULL”. dador de token deve ser utilizado já que múltiplos validadores podem estar configurados em uma instância do barramento. Para validar o token no domínio “voms”, o barramento utiliza um validador de token especializado (VOMSTokenValidator) instalado no barramento OpenBus que atende a integração entre o mc2 e o CSGrid. O validador VOMSTokenValidator então utiliza a operação validate do serviço VOMSACInfoService para validar o ceritificado proxy (passo 3). Essa validação consiste em verificar a assinatura do proxy e do certificado de atributos (AC) contido no proxy (passo 4). A validação de proxies VOMS requer a configuração de arquivos e diretórios que contenham informações sobre certificados digitais de autoridades certificadoras e servidores VOMS confiáveis. Sendo assim, tal serviço roda em uma máquina especialmente configurada para este fim e que não precisa ser necessariamente a mesma máquina que hospeda os serviços que compõem a infraestrutura do barramento e o validador de tokens do OpenBus. A validação do certificado proxy extrai o distinguished name (DN6 ) e outras informações que são associadas ao DN (passo 5). O DN é usado como resultado da operação validate (passo 6) e servirá para identificar a entidade que representa o usuário Pedro dentro do barramento OpenBus. Ao receber como resultado da validação a identificação da entidade autenticada (Pedro), a operação importChain gera uma credencial indicando uma cadeia de logins com entidade Pedro, que é devolvida para a plataforma mc2 (passo 7). De posse dessa credencial a plataforma mc2 utiliza a operação joinChain da biblioteca de acesso ao barramento para que todas as chamadas seguintes sejam feitas como extensão dessa credencial (passo 8). Dessa forma, quando uma chamada é feita para o CSGrid através do barramento, ela é feita com uma credencial contendo uma cadeia de logins com a entidade do usuário (Pedro) e a entidade da plataforma mc2 (passo 9). O CSGrid, ao receber a chamada, pode inspecionar a cadeia de logins da credencial através da operação getCallerChain da biblioteca de acesso ao barramento (passo 10). Nesse ponto, o CSGrid é capaz de identificar não apenas que a chamada ao serviço é proveniente do usuário Pedro, mas também que a mesma é proveniente de um portal do mc2, pois ambas as entidades fazem parte da mesma cadeia de logins. Em seguida, o CSGrid verifica junto ao barramento se o domínio de autenticação do login do usuário requisitante é “voms”. Note que a informação do domínio é necessária para que o CSGrid mantenha o suporte a requisições de usuários que não tenham se autenticado com o proxy VOMS. Por exemplo, usuários autenticados no barramento com o mecanismo padrão de certificados digitais ou com LDAP, também podem ser atendidos pelo CSGrid. No nosso exemplo, como “Pedro” se autenticou pelo domínio “voms”, o CSGrid se dirige ao VOMSACInfoService para obter o conjunto de atributos deste usuário na sua VO. A operação getFQANs (passo 11) retorna todos os atributos presentes do proxy VOMS utilizado na autenticação do usuário. O CSGrid implementa um modelo de controle de acesso baseado em atributos, que não detalhamos aqui por estar fora do escopo do trabalho. Vale destacar, que o token VOMS não é necessário ao CSGrid já que para consultar o VOMSACInfoService o DN do usuário é usado como chave. 6 O distinguished name é uma sequência de atributos no formato chave/valor que identificam um usuário. O seu formato foi definido no RFC 2459 [Housley et al. 1999]. A sequência C=BR, O=ICPEDU, O=UFF BrGrid CA, O=PUC-Rio, OU=Tecgraf, CN=Pedro Silva é um exemplo de DN, onde “C” refere-se ao país, “O” à organização, “OU” à unidade dentro da organização e "“CN” ao nome do usuário. 4. Conclusão e trabalhos futuros O compartilhamento de recursos localizados em diferentes domínios administrativos é uma necessidade típica em sistemas ditribuídos que envolvem múltiplas instituições. As organizações virtuais estabelecem uma forma de agrupamento dos usuários de acordo com seus papéis no uso desses recursos, independente das políticas administrativas próprias das suas instituições de origem. Nesse trabalho, descrevemos uma solução de uso do VOMS para controle de acesso aos usuários da organização virtual EUBrazilCC no sistema CSGrid. No projeto EUBrazilCC, o CSGrid é um dos componentes utilizados para acesso a infraestrutura de cloud privada e clusters de alto desempenho das instituições participantes. A solução aqui apresentada se baseia no modelo atual de integração do CSGrid com aplicações externas através de um barramento de serviços CORBA, o OpenBus. As adaptações e extensões que fizemos nesse modelo permitem que os portais desenvolvidos com a plataforma mc2 autentiquem e autorizem usuários da federação EUBrasilCC a submeterem seus programas para execução na infraestrutura de recursos computacionais integrados com o CSGrid. Essa solução já vem sendo utilizada pelo Laboratório Nacional de Computação Científica (LNCC). O modelo descrito aqui não atende apenas ao projeto EUBrazilCC mas introduz flexibilidade para dar suporte a outras federações de usuários. Ele permite a utilização de diferentes provedores de identidade externos nos acessos a sistemas CSGrid via OpenBus. Uma preocupação natural é a integração de um ambiente como o descrito neste artigo com a federação de autenticação CAFe7 . O papel do VOMS é organizar informação sobre organizações virtuais, que não cabe em provedores de identidade de uma federação. Mas o usuário não precisa ir além dos serviços da própria federação CAFe para conseguir o certificado com o qual se autentica perante o VOMS. A federação pode oferecer um serviço como o descrito por Wangham e outros [Wangham et al. 2012] para geração de certificados de usuários no formato X509 a partir dos dados mantidos pelos provedores de identidade. Além de permitir a autenticação de usuários com proxies VOMS através do OpenBus, o CSGrid está sendo modificado para dar suporte ao login de usuários VOMS diretamente através do seu cliente desktop. Dessa forma, esses usuários terão acesso a um outro conjunto de aplicações do CSGrid, construídas sobre o modelo de integração que usa o toolkit CSDK. O uso do VOMS surgiu e se consolidou nos cenários de projetos de grades computacionais, como o DataGrid [Gagliardi et al. 2002] e outros projetos da EGI8 que utilizam o Globus Toolkit [Foster and Kesselman 1997]. A experiência adquirida com o VOMS em projetos de grade da EGI tem motivado explorar o uso do VOMS para federação de identidades entre provedores de serviços em infraestruturas de nuvens, trazendo novos cenários de uso e, consequentemente, novos requisitos de A&A. Isso pode ser observado em trabalhos recentes como a inclusão de autenticação VOMS na plataforma de software OpenStack [Garcia et al. 2013] e a readequação do seu serviço de identidade Keystone v3 para que este funcione como um servidor VOMS (KeyVOMS) [Lee et al. 2014]. 7 8 http://www.rnp.br/servicos/servicos-avancados/cafe http://www.egi.eu É também nesse contexto que o trabalho aqui apresentado pretende contribuir. No projeto EUBrazilCC, não apenas o CSGrid mas outros provedores de serviço participam e cooperam para atender aos usuários da federação. Em particular, no EUBrazilCC, o CSGrid foi integrado ao Fogbow [Barros et al. 2015], um middleware para federação de nuvens privadas que emprestam seus recursos computacionais ociosos e utilizam recursos ociosos de outras nuvens da federação. O Fogbow também provê suporte ao uso do VOMS. Proxies VOMS devem ser usados como credenciais levando em consideração suas limitações e questões de segurança. Qualquer pessoa de posse de um certificado proxy pode se fazer passar por outra durante um tempo limitado, tipicamente 12 horas, o que reduz a janela de tempo para possíveis fraudes. Serviços de autenticação devem ser programados para verificar a validade dos proxies e recusá-los em caso de expiração. Requisitos como delegação de proxies VOMS entre diferentes provedores de serviço, renovação de proxies em caso de longas interações e flexibilidade no suporte a outras federações de usuários são alguns exemplos de questões sendo discutidas atualmente no projeto. Referências Alfieri, R., Cecchini, R., Ciaschini, V., dell’Agnello, L., Frohner, A., Gianoli, A., Lorentey, K., and Spataro, F. (2004). VOMS, an authorization system for virtual organizations. In Grid Computing, pages 33–40. Springer. Barros, A., Brasileiro, F., Farias, G., Germano, F., Nóbrega, M., Ribeiro, A. C., Silva, I., and Teixeira, L. (2015). Using fogbow to federate private clouds. Salão de Ferramentas do XXXIII Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. Clinio, A. and Almeida, I. (2015). CSDK: Uma forma de modularização de componentes do desktop no CSBase. Technical report, Tecgraf/PUC-Rio Institute. de Lima, M., Ururahy, C., de Moura, A., Melcop, T., Cassino, C., Santos, M., Silvestre, B., Reis, V., and Cerqueira, R. (2006). CSBase: A framework for building customized grid environments. In Enabling Technologies: Infrastructure for Collaborative Enterprises, 2006. WETICE ’06. 15th IEEE International Workshops on, pages 187–194. de Lima, M. J., Melcop, T., Cerqueira, R., Cassino, C., Silvestre, B., Nery, M., and Ururahy, C. (2005). CSGrid: um sistema para integraç ao de aplicações em grades computacionais. In Salão de Ferramentas do 23o. Simpósio Brasileiro de Redes de Computadores, 2005, Fortaleza. Anais do 23o. Simpósio Brasileiro de Redes de Computadores, pages 1207–1214, Porto Alegre. de Lima, M. J., Rodriguez, N., Ururahy, C., Almeida, I., and Clinio, A. (2015). CSBase: 10 years of experience with a framework for batch processing in heterogeneous computing environments. Technical report, Tecgraf/PUC-Rio Institute. Foster, I. and Kesselman, C. (1997). Globus: A metacomputing infrastructure toolkit. International Journal of High Performance Computing Applications, 11(2):115–128. Foster, I., Kesselman, C., and Tuecke, S. (2003). The anatomy of the grid. Berman et al.[2], pages 171–197. Gagliardi, F., Jones, B., Reale, M., and Burke, S. (2002). European Datagrid Project: Experiences of deploying a large scale Testbed for e-Science applications. In Performance Evaluation of Complex Systems: Techniques and Tools, pages 480–499. Springer. Garcia, A. L., del Castillo, E. F., and Puel, M. (2013). Identity federation with voms in cloud infrastructures. 2013 IEEE 5th International Conference on Cloud Computing Technology and Science, 1:42–48. Gomes, A. T. A., Bastos, B. F., Medeiros, V., and Moreira, V. M. (2015). Experiences of the Brazilian national High-Performance Computing Network on the Rapid Prototyping of science gateways. Concurrency and Computation: Practice and Experience, 27(2):271–289. Housley, R., Ford, W., Polk, W., and Solo, D. (1999). Internet X.509 Public Key Infrastructure Certificate and CRL Profile. RFC 2459 (Proposed Standard). Obsoleted by RFC 3280. Lee, C., Desai, N., and Brethorst, A. (2014). A keystone-based virtual organization management system. In Cloud Computing Technology and Science (CloudCom), 2014 IEEE 6th International Conference on, pages 727–730. Maia, R. and Roenick, H. (2015). Secure authentication in system integrations with OpenBus. Technical report, Tecgraf/PUC-Rio Institute. Wangham, M., Mello, E., Böger, D., , Guérios, M., and Fraga, J. (2010). Gerenciamento de identidades federadas. In Anais do XII Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais, Fortaleza. Minicurso. Wangham, M., Mello, E., Böger, D., Fraga, J., and Guérios, M. (2012). Geração de certificados digitais a partir da autenticação federada shibboleth. In Anais do XII Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais, Curitiba. In: In: Workshop de Gestão de Identidades (WGID).