Requisitos para a Federação de um serviço web Serviço Utilizador RCTS Janeiro de 2010 15 de Janeiro de 2010
Requisitos para a Federação de um serviço web Serviço Utilizador RCTS Janeiro de 2010 EXT/2010/Serviço Utilizador RCTS Nuno Gonçalves e Esmeralda Câmara 15 de Janeiro de 2010
ÍNDICE 1 O QUE É UM SERVIÇO WEB FEDERADO...1 1.1 Enquadramento federação rctsaai... 1 1.2 como funciona um serviço federado... 1 2 REQUISITOS DE IMPLEMENTAÇÃO... 4 2.1 software e Tipos de Implementação... 4 2.2 Condições de Implementação... 4 2.3 Pontos de contacto... 6 3 BIBLIOGRAFIA... 7 i
1 O QUE É UM SERVIÇO WEB FEDERADO 1.1 ENQUADRAMENTO FEDERAÇÃO RCTSAAI Uma federação consiste num grupo de organizações que partilham um conjunto de políticas e regras, estabelecendo-se desta forma uma confiança com o objectivo de se atingir uma autenticação e autorização entre os vários domínios existentes. A federação RCTSaai (1) foi criada pela FCCN no âmbito do serviço Utilizador RCTS. Este projecto tem como objectivo a concepção de uma federação a nível nacional para a utilização de serviços federados entre as instituições intervenientes. A FCCN para além de coordenar as tarefas inter-instituicionais fornece também serviços técnicos e de suporte para garantir a plena funcionalidade da federação. Um dos requisitos para a utilização de serviços federados é a existência de um componente de fornecimento de identidade numa instituição ( Identity Provider ). É este componente que é responsável pela autenticação dos utilizadores de uma instituição e que fornece atributos necessários relacionados com o utilizador para os serviços federados. 1.2 COMO FUNCIONA UM SERVIÇO FEDERADO No seio de uma federação assente numa infra-estrutura de autenticação e autorização existem três componentes essenciais: 1) O componente de autenticação (designado como Identity Provider ) consiste num conjunto de software que autentica os utilizadores perante pedidos efectuados a recursos protegidos ("Service Provider"), e fornece atributos com base em políticas para que possa ser efectuada uma autorização no acesso ao serviço inicialmente requisitado. 2) O componente "Service Provider" consiste numa camada de software que protege e autoriza o acesso a um determinado recurso web. A Autorização é realizada com base nos atributos necessários enviados pelo componente "Identity Provider". Caso Fundação para a Computação Científica Nacional 1
o utilizador não esteja devidamente autenticado pelo Identity Provider é automaticamente redireccionado para o serviço de descoberta. 3) O componente WAYF (iniciais de "Where Are You From") tem como objectivo canalizar os utilizadores não autenticados para as respectivas instituições de origem que são apresentadas no browser utilizado. Após a selecção por parte do utilizador da sua instituição este serviço redirecciona o utilizador automaticamente para que possa ser efectuado o processo de autenticação. Figura 1 - Componentes numa federação Quando um utilizador requer o acesso a um serviço Web federado, o Service Provider avalia o pedido e verifica se o utilizador já efectuou uma autenticação no Identity Provider através da existência de uma sessão válida. Caso a sessão não exista o Service Provider redirecciona o utilizador para o sistema de descoberta ( WAYF ), onde são apresentadas as instituições que pertencem à federação RCTSaai. O utilizador selecciona a instituição onde pretende realizar a autenticação e automaticamente é redireccionado para o Identity Provider da instituição. Ao realizar a autenticação com as credenciais que habitualmente utiliza na instituição de origem o utilizador é finalmente redireccionado para o serviço acompanhado de uma sessão válida e de atributos que permitem realizar a respectiva autorização no serviço Web. Os atributos necessários para cada serviço são configurados no Identity Provider de cada instituição permitindo que sejam enviados para o serviço web (após uma autenticação bem Fundação para a Computação Científica Nacional 2
sucedida) utilizando o protocolo SAML2 (2), de uma forma segura recorrendo a uma infraestrutura de PKI baseada em certificados SSL. Fundação para a Computação Científica Nacional 3
2 REQUISITOS DE IMPLEMENTAÇÃO 2.1 SOFTWARE E TIPOS DE IMPLEMENTAÇÃO A implementação de um serviço federado pode ser obtida recorrendo a vários ambientes e configurações. No que diz respeito ao software, existem diversas distribuições que permitem implementar um serviço Web federado através do protocolo SAML2 (2). À semelhança da federação RCTSaai existem outras federações internacionais que utilizam na sua generalidade o software open-source shibboleth (3) desenvolvido pela Internet2 nos Estados Unidos da América, e o software open-source simplesamlphp (4) desenvolvido pela UNINETT na Noruega. O Service Provider Shibboleth 2.x (IdP) é uma aplicação desenvolvida em C++ que pode ser instalado em qualquer sistema (Linux, Mac Os X, Windows ou Solaris). O simplesamlphp é desenvolvido em PHP pelo que tem como requisito um servidor Web que proporcione a execução de scripting PHP. 2.2 CONDIÇÕES DE IMPLEMENTAÇÃO Para a criação de um serviço Web federado é necessária a garantia das seguintes condições: 1. Os trabalhos necessários para a instalação e configuração inicial do serviço Web federado pressupõem a existência de um sistema operativo funcional; 2. O sistema operativo deverá comportar uma política de segurança que permita o acesso de pedidos TCP nas portas 80 e 443; 3. Os pedidos realizados nas portas enunciadas no ponto 2 deverão ser servidas por um servidor HTTP com suporte para SSL; 4. A instalação do software que permite realizar a federação de serviço deverá ser correctamente instalado de acordo com o sistema operativo apropriado; 5. O servidor HTTP com suporte para SSL deverá ser configurado e interligado com o software de federação de serviço escolhido enunciado no ponto 4; 6. A configuração do serviço federado em desenvolvimento deverá remeter utilizadores não autenticados para o sistema de descoberta da Federação de teste RCTSaai, existente em https://wayf.fccn.pt/fccndesenvolvimento; 7. A configuração do serviço federado em produção deverá remeter utilizadores não autenticados para o sistema de descoberta da Federação RCTSaai existente em https://wayf.fccn.pt/fccnds; Fundação para a Computação Científica Nacional 4
8. A metadata que identifica o serviço federado deverá ser enviada por correio electrónico para rctsaai@fccn.pt no formato SAML2. A metadata descritiva do serviço federado está disponível no software shibboleth em https://url_serviço/shibboleth.sso/metadata ou acessível na interface de administração no caso do software simplesamlphp. 9. O administrador do serviço em conjunto com a equipa de desenvolvimento deve especificar os atributos (com base nos schemas de eduperson (5) e schac (6)) que garantem as regras de controlo de acesso ao serviço. 10. Após realizada a especificação dos atributos, o software que permite a federação do serviço deverá ser configurado para realizar o mapeamento dos atributos enviados pelo Identity Provider em variáveis utilizadas para efectuar a componente de autorização na linguagem de programação utilizada. 11. Após a interligação na federação de teste bem sucedida, o serviço Web federado deverá disponibilizar, instruções claras de como realizar a configuração do serviço na componente de autenticação ( Identity Provider ) e enviar as mesmas para rctsaai@fccn.pt para disponibilizar a todos os membros da federação RCTSaai. Fundação para a Computação Científica Nacional 5
A tabela seguinte sumariza a disponibilidade do software em arquitecturas do tipo Linux e Windows. Tabela 1 - Possibilidades de configuração Service Provider Sistema Operativo Pacote Software Servidor WWW Certificados SSL Shibboleth Windows Disponível ficheiro Listener HTTP/HTTPS Software para executável em formato Normalmente utilizado IIS criação de infra- msi. estrutura PKI com Linux Disponíveis pacotes necessários em SRPM para instalação Listener http/https normalmente utilizado Apache recurso a certificados SSL. Normalmente utilizado software SimpleSAMLphp Windows/Linux Pacote constituído por Qualquer servidor Web capaz de openssl conjunto de scripts executar scripts PHP. Linux escritos em php Para informações específicas de como instalar detalhadamente o Service Provider e de como efectuar uma configuração, por favor consulte os cookbooks no site da federação RCTSaai (1) ou contacte a equipa RCTSaai através de uma mensagem de correio electrónico para rctsaai@fccn.pt. 2.3 PONTOS DE CONTACTO Para questões relacionadas com a federação RCTSaai ou na utilização dos conceitos enunciados neste documento, envie uma mensagem de correio electrónico para rctsaai@fccn.pt. Fundação para a Computação Científica Nacional 6
3 BIBLIOGRAFIA 1. FCCN. Federação RCTSaai. [Online] http://rctsaai.fccn.pt. 2. OASIS. SAML2. [Online] http://www.oasisopen.org/committees/tc_home.php?wg_abbrev=security. 3. Internet2. Shibboleth. [Online] https://spaces.internet2.edu/display/shib2/installation. 4. UNINETT. simplesamlphp. [Online] http://rnd.feide.no/content/usingsimplesamlphp-service-provider. 5. educause. eduperson. [Online] http://middleware.internet2.edu/eduperson/docs/internet2-mace-dir-eduperson- 200806.html. 6. Terena, TF-EMC2. SCHAC. [Online] http://www.terena.org/activities/tfemc2/docs/schac/schac-schema-iad-1.4.0.pdf. Fundação para a Computação Científica Nacional 7