Esta aplicação é um exemplo de provedor OpenId, para ser implementado pelas escolas que pretenderem realizar a integração via OpenId com o QMágico. Neste exemplo, foi utilizada uma biblioteca Python chamada python-openid para se desenvolver esta aplicação Django.
Nesta aplicação não se utiliza banco de dados para armazenar usuários. Por se tratar de um exemplo, a autenticação é feita em memória com um simples if:
if username == 'MarRib' and password == '123456':
request.session['username'] = 'MarRib'
Recomenda-se que se construa o provedor de OpenId baseado nessa implementação, substituindo essa autenticação mínima por uma implementação real de banco de dados da escola, porém, a implementação pode ser feita utilizando-se qualquer linguagem/biblioteca. Como parâmetro de testes, sugere-se que se teste a sua implementação do servidor com a implementação teste de consumidor disponibilizada na biblioteca python-openid.
Para isto:
-
Primeiramente deve-se ter o Python instalado no seu computador.
-
Em seguida, copie a biblioteca python-openid para o seu computador:
git clone https://github.com/openid/python-openid.git "diretorio"
- Para rodar o consumidor do exemplo, entre na pasta python-openid/examples/ e rode o consumidor via linha de comando:
python consumer.py
-
Pronto, seu consumidor deve estar rodando em http://localhost:8001, ou, caso você deseje alterar a porta, altere a linha 473 do consumer.py.
-
Para se inicializar este servidor de exemplo, primeiramente, deve-se criar e ativar a 'virtual environment' via linha de comando, diretamente da raiz do projeto (/openid_server):
python bootstrap
source bin/activate
- Em seguida rodar o servidor em localhost(atentando para a porta passada como referência, elas será usada em outros casos):
./manage.py runserver 8090
- Para testar o seu servidor OpenId, basta inserir a url que inicia a autenticação OpenId do seu servidor, neste caso, seria: http://localhost:8090/xrds (ou a porta que você desejar), como abaixo:
- Não se esqueça de conectar o seu servidor e utilizar a porta certa. No meio do processo você pode ser redirecionado para uma tela de login, feito isso, a resposta esperada do processo é uma tela como a seguinte:
Você pode entender melhor o fluxo do processo com o diagrama abaixo e a documentação adicional a seguir:
Você pode ler o Fluxo Resumido da autenticação via OpenId aqui!
Você pode ler o Detalhamento da troca de mensagens durante o processo de autenticação aqui! No detalhamento de troca de mensagens são especificados parâmetros de entrada e saída de cada requisição entre o browser, QMágico e Escola, exemplificando-os.