O SAPO ID Connect destina-se a programadores. Foi criado com o objetivo de permitir a utilização dos serviços de autenticação do SAPO, de forma simples e segura, em aplicações ou sites de outras entidades.
O SAPO ID Connect usa protocolos standard bem documentados e pode ser usado em PHP, Python, .Net ou qualquer linguagem que implemente estes standards nativamente ou usando bibliotecas externas.
O SAPO ID Connect pode ser integrado usando o protocolo OAuth 2.0.
Criar um novo site ou serviço implica desenvolver um repositório de utilizadores bem como todas as operações de manutenção, alteração de password, etc. O SAPO ID Connect, através do método 'Login com o SAPO', ajuda a resolver este problema. Como? Pondo à disposição dos programadores uma forma de autenticação simples de implementar e que tira partido do maior agregado de utilizadores portugueses.
Integrar o 'Login com o SAPO' significa reduzir as barreiras de acesso ao seu novo site. Os utilizadores não precisam passar por longos e tediosos processos de registo. Se já tiverem uma conta no SAPO, podem aceder de imediato.
Para uma integração usando este modelo, ao registar a aplicação deve selecionar o recurso 'Login com o SAPO'. Todo o workflow é idêntico. No fim do workflow a aplicação fica com um token de acesso, que deverá ser usado para fazer uma chamada a um serviço que devolve o perfil de um utilizador SAPO. O output da operação, além de um identificador único de utilizador SAPO, um email de contacto e o nome completo do utilizador, retorna todos os dados que o utilizador decide tornar públicos em https://id.sapo.pt.
Se precisa mais do que apenas uma autenticação, se a sua aplicação precisa aceder a recursos privados do utilizador, então tem de usar o OAuth 2.0.
OAuth 2.0 é um standard de autenticação usado de uma forma ou de outra em vários serviços, como Twitter, Facebook, etc. Se quiser saber mais, consulte a documentação oficial.
Ao usar OAuth 2.0, o programador pode aceder de forma segura a recursos privados alojados nos serviços do SAPO. É a forma recomendada para fazer posts nos blogs, obter listas de comentários, videos, etc.
O acesso carece sempre de uma autorização expressa do utilizador, que não precisa deixar as suas credenciais dentro da aplicação expondo-as assim a terceiros.
O SAPO ID Connect implementa o protocolo OAuth 2.0. Após o registo é emitido um token de acesso, que ficará associado a uma aplicação. Quando a aplicação é usada por um utilizador do SAPO, este pode delegar uma autorização para esta aceda aos recursos em seu nome.
Em 3 passos simples:
Após o registo da aplicação, aceda à lista de aplicações onde verá uma ID do cliente e um Segredo do cliente para a aplicação. Estas credenciais devem ser introduzidas nos locais próprios dos exemplos de código fornecidos.
Para aceder a estes serviços usa-se um dos workflows do protocolo OAuth 2.0. No fim de um destes workflows, a aplicação fica com um token de acesso em sua posse que deve usar para invocar o serviço desejado. Em alguns dos casos a aplicação recebe também um token de atualização para poder gerar novos token de acesso sem a necessidade de re-autenticação
Os tipos de Concessão são o que torna o OAuth 2 tão flexível. Temos:
Código de autorização: é o padrão para quase todas as aplicações Web e é o metodo mais recomendado, com ele você consegue recuperar não somente um token de acesso mas também um token de atualização capaz de gerar novos tokens de acesso quando necessário, evitando assim a necessidade de re-autenticação
Implícito: serve aplicações menos seguras tais como Aplicações Móveis ou Aplicações de Página Única, é recomendado somente quando o anterior não é possivel
Credenciais de senha do proprietário do recurso: quando existe um elevado grau de confiança entre o proprietário do recurso (nesse caso o usuário) e o cliente (a aplicação), e quando outros tipos de concessão de autorização não estão disponíveis. Isto também é frequentemente utilizado para aplicações herdadas para uma transição gradual para o OAuth 2
OpenID Connect é uma camada de identidade simples em cima do protocolo OAuth 2.0 que permite aos Clientes verificar a identidade do Utilizador com base na autenticação realizada por um Servidor de Autorização (nesse caso o SAPO ID), bem como obter informações básicas do perfil do Utilizador.
Dúvidas? Os exemplos de código abaixo explicam tudo.
Exemplos de utilização em Python
Python SAPO ID Código de autorização (Recomendado)
Python SAPO ID Código de autorização com suporte a Open ID Connect (Recomendado)
Python SAPO ID Implícito com suporte a Open ID Connect
Python SAPO ID Open ID hybrid (Hibrido entre Código de autorização com PKCE e Implícito)
Exemplos de utilização em PHP
PHP SAPO ID Código de autorização (Recomendado)
Python SAPO ID Código de autorização com suporte a Open ID Connect (Recomendado)