Partager via


Azure Services Platform : falando sobre "Geneva" e a integração entre a nuvem e o enterprise.

image

Olá pessoal, tudo certo?

Uma pergunta que surge sobre o uso do Windows Azure é quando iremos para o ambiente enterprise e quando iremos para a nuvem, isto é, quais aplicações são indicadas para o enterprise e quais podem ser colocadas na nuvem.

Para essa análise podemos avaliar dois aspectos interessantes: controle e economia de escala.

image

Já falamos um pouco sobre essa visão aqui no blog, veja aqui.

Pensando em controle vs. economia de escala, temos 3 grandes participantes em nossa composição de TI: o ambiente on-premise (onde participa o hardware de nossa empresa, local), o ambiente de hosting (baseado em provedores locais, onde podemos inclusive fazer o deploy de servidores colocados) e o ambiente elástico da nuvem, the cloud (onde contratamos por demanda capacidades de computação, provisionando de forma dinâmica e acessando esses recursos através de tecnologias de internet, SOAP, REST, etc.).

image

Porém, mesmo após nossa decisão sobre a melhor composição entre os diferentes ambientes de TI, vamos conviver com questões de integração entre os ambientes. Aplicações presentes no on-premise deverão ser integradas com aplicações e serviços em hoster's locais ou mesmo na nuvem. Como tratar aspectos de controle de acesso, autenticação e autorização entre esses ambientes?

Pensando na integração com a nuvem, o Windows Azure oferece um mecanismos de autenticação e autorização chamado "Geneva" .

O que é o "Geneva"?

  • O "Geneva" é um modelo de autenticação/autorização que trabalha baseado em declarações, o chamado Claim Based Authorization/Claim Based Authentication. O "Geneva" permite a integração de aplicações do enterprise com a nuvem, de uma forma transparente, fornecendo ainda interfaces de programação que permitem a manipulação dos atributos das declarações tanto no enterprise como na nuvem.

O modelo de Claims-Based Access previsto para o Azure envolve vários componentes no ambiente enterprise e cloud, como vemos na arquitetura a seguir:

image

O que é uma declaração? (Claim)

  • Uma declaração é uma informação que pode ser associada a uma entidade no sistema. Em geral, essa entidade é um usuário, mas também pode ser um serviço ou recurso qualquer. Uma declaração consiste de três informações: o tipo da declaração, seu conteúdo e se ela descreve a entidade ou um recurso do objeto.

O que é o "Geneva Server"?

  • A partir do desenho acima, o "Geneva Server" fica instalado no ambiente enterprise e fornece um serviço de tokens de segurança, um STS - Security Token Service. Esse serviço suporta o padrão SAML 2.0 (Federated Claims-Based Application), o que permite uma maior flexibilidade na escolha do método de autenticação local para os usuários e aplicações. Ao mesmo tempo, o "Geneva Server" é o componente do enterprise que mantém uma relação de confiança com a nuvem, tornando a autenticação transparente para o usuário junto às aplicações e serviços publicados no Windows Azure.

O que é o Microsoft Services Connector?

  • No ambiente enterprise também é possível utilizar o "Microsoft Services Connector", um conector que permite a autorização de usuários junto ao Azure, sem todo o conjunto de serviços do Geneva Server. De fato, o Services Connector é um pacote gratuíto, que já está disponível através do link abaixo:

Microsoft Services Connector - Connecting Business to Services
Ref.: https://www.microsoft.com/servicesconnector/

O que é o Federation Gateway?

  • No modelo Windows Azure, o Microsoft Federetaion Gateway é uma camada de segurança presente no sistema operacional que permite a integração com o enterprise, falando o protocolo SAML 2.0, sendo baseado em declarações de segurança. O Federation Gateway está acessível para as aplicações instaladas no Azure através do .NET Services Access Control, o que permite a manipulação de declarações e atributos de forma programática. Ainda, o ambiente enterprise conversa com o Federeation Gateway via "Geneva" Server ou via Microsoft Services Connector, como apresentado no desenho de arquitetura acima.

O que é o "Geneva Framework"?

  • O "Geneva" Framework, inicialmente chamado de "Zermatt", é o nome código do novo framework Microsoft para a construção de aplicações e serviços baseados em declarações de segurança (claims-based), permitindo a implementação de cenários de federated security. O "Geneva Framework" fornece um conjunto de API's no ambiente enterprise e no ambiente Azure, tornando a autenticação/autorização de forma programática ainda mais flexível para aplicações e serviços.

Como ficaria uma solução envolvendo o "Geneva" para a integração entre o enterprise e a nuvem?

  • Uma solução do enteprise pode autenticar usuários localmente, no AD do enterprise, e exportar declarações baseadas em atributos selecionados para a autorização junto a serviçcos publicados na nuvem. Essa integração será feita através do "Geneva" e seus componentes, como apresentado na figura a seguir:

image

Como sempre, esse post foi apenas uma introdução sobre o assunto.

Resumindo, podemos dizer que o "Geneva" Server implementa um serviço de tokens de segurança (Windows-based STS), o CardSpace "Geneva" oferece um seletor de identidades para clientes Windows, o "Geneva" Framework é uma biblioteca padrão para a criação de aplicações e serviços que suportam segurança por declarações (claims-aware) e finalmente, o Windows Azure oferece o Federation Gateway e o Access Control, que oferecem mecanismos de autenticação/autorização para aplicações na nuvem, de uma forma integrada com o ambiente enterprise.

Alguns links que usei para escrever esse post relaciono a seguir:

Microsoft Code Name “Geneva”
Ref.: https://www.microsoft.com/downloads/details.aspx?familyid=1e3c3efc-e980-4895-9095-86e51c1cd9d8&displaylang=en&tm

“Geneva” Team Blog
Ref.: https://blogs.msdn.com/card/default.aspx

Geneva Whitepapers and Datasheet
Ref.: https://www.microsoft.com/downloads/details.aspx?familyid=9CA5C685-3172-4D8F-81CB-1A59BDC9F7E3&displaylang=en#filelist

Também, temos algumas sessões gravadas do PDC 2008 no Channel9 que são imperdíveis, confira:

.NET Services: Access Control Service Drilldown
Ref.: https://channel9.msdn.com/pdc2008/BB28/

Identity: "Geneva" Server and Framework Overview
Ref.: https://channel9.msdn.com/pdc2008/BB42/

Identity: "Geneva" Deep Dive
Ref.: https://channel9.msdn.com/pdc2008/BB43/

Identity: Windows CardSpace "Geneva" Under the Hood
Ref.: https://channel9.msdn.com/pdc2008/BB44/

Finalmente, o próprio SAML 2.0 é um assunto bem interessante. Mas vou deixar o tema para nosso amigo Markus :) Confira aqui.

Por enquanto é só! Até o próximo post :)

Waldemir.