Serviço de Logon único via SAML operado por parceiros

A Linguagem de marcação para autorização de segurança (SAML) é um padrão XML que permite que domínios da Web seguros compartilhem a autenticação de usuário e os dados de autorização. Quando usa a SAML, um provedor de serviços on-line pode entrar em contato com um provedor de identidade on-line separado para autenticar os usuários que estejam tentando acessar um conteúdo seguro.

O Google oferece um serviço de Logon único (SSO, na sigla em inglês) baseado em SAML que permite que empresas parceiras controlem a autorização e a autenticação de contas de usuário hospedadas que podem acessar apps da Web, como o Gmail ou o Google Agenda. Quando você usa o modelo SAML, o Google atua como o provedor de serviços e oferece serviços como o Gmail e as páginas iniciais. Os parceiros do Google atuam como provedores de identidade e controlam nomes de usuário, senhas e outras informações usadas para identificar, autenticar e autorizar usuários em aplicativos da Web hospedados pelo Google. Existem várias opções de provedores de identidade comerciais e de código aberto que ajudam você a implementar o SSO com o Google.

A opção de SSO é válida somente para aplicativos da Web. Você pode permitir que seus usuários acessem serviços do Google com clientes de área de trabalho, como o Outlook (por exemplo, ao permitir o Acesso POP ao Gmail usando o Outlook). Para fazer isso, informe as senhas disponíveis aos usuários e sincronize-as com seu banco de dados de usuários interno usando a Directory API do SDK Admin. Ao sincronizar senhas, é útil saber como os usuários são autenticados usando o URL de login no painel de controle do administrador.

O serviço SSO do Google é baseado nas especificações SAML v2.0. O SAML v2.0 é compatível com vários fornecedores amplamente conhecidos.

Entender o SSO baseado em SAML operado por parceiros

O processo a seguir explica como um usuário faz login em um aplicativo Google hospedado por meio de um serviço de SSO baseado em SAML operado por parceiros.

A Figura 1 abaixo ilustra o processo de login do usuário em um aplicativo do Google, como o Gmail, por meio de um serviço de SSO baseado em SAML. A lista numerada após a imagem explica cada etapa detalhadamente.

Observação: antes da realização desse processo, o parceiro precisa fornecer ao Google o URL do serviço de SSO, além da chave pública que o Google precisa usar para verificar respostas SAML.

Figura 1: login no Google usando um serviço SSO baseado em SAML operado por parceiros

Esta imagem ilustra as etapas a seguir.

  1. O usuário tentar alcançar um aplicativo Google hospedado, como o Gmail, páginas iniciais ou outro serviço do Google.
  2. O Google gera uma solicitação de autenticação SAML. A solicitação SAML é codificada e incorporada ao URL do serviço de SSO do parceiro. O parâmetro RelayState que contém o URL codificado do aplicativo do Google que o usuário está tentando acessar também é incorporado ao URL do SSO. Esse parâmetro funciona como um identificador opaco que é passado sem qualquer modificação ou inspeção.
  3. O Google envia um redirecionamento ao navegador do usuário. O URL de redirecionamento inclui uma autenticação SAML codificada que deverá ser enviada ao serviço de SSO do parceiro.
  4. O parceiro decodifica a solicitação SAML e extrai o URL para o serviço de declaração de consumidor (ACS, na sigla em inglês) do Google e para o URL de destino do usuário (parâmetro RelayState). O parceiro autentica o usuário. Os parceiros podem autenticar os usuários por meio da solicitação de credenciais de login válidas ou da verificação de cookies de sessão válidos.
  5. O parceiro gera uma resposta SAML que contém o nome de usuário autenticado. De acordo com a especificação do SAML 2.0, essa resposta é digitalmente assinada com as chaves DSA/RSA públicas e privadas do parceiro.
  6. O parceiro codifica a resposta SAML e o parâmetro RelayState e retorna essas informações para o navegador do usuário. Em seguida, o parceiro fornece um mecanismo para que o navegador possa encaminhar essas informações para o ACS do Google. Por exemplo, ele pode incorporar a resposta SAML e o URL de destino a um formulário e fornecer um botão no qual o usuário possa clicar para enviar o formulário para o Google. O parceiro também pode incluir JavaScript na página que envia automaticamente o formulário para o Google.
  7. O ACS do Google verifica a resposta SAML usando a chave pública do parceiro. Se a resposta for verificada com sucesso, o ACS redirecionará o usuário para o URL de destino.
  8. O usuário foi redirecionado para o URL de destino e está conectado ao Google.
Isso foi útil?
Como podemos melhorá-lo?