• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skcratch

Autenticação em aplicação web com cartão de cidadão

11 mensagens neste tópico

Viva!

Tal como é indicado no título, pretendo estudar um mecanismo que permita realizar autenticação numa web-application através do cartão de cidadão. Pelo que estive a ler na documentação fornecida no site oficial, existe uma API nativa de comunicação desenvolvida em C/C++ e um wrapping para a mesma, para as plataformas .NET e Java. O portal sapo, por exemplo, já implementou este método de autenticação (https://login.sapo.pt/#ccidadao). No entanto, tenho uma dúvida persiste: como efectuar a validação do utilizador da web application ASP .NET / C#, isto é, obter os dados do utilizador, já que, segundo percebo, isso teria que ser feito no client-side, e o código da API é executado no server-side?

Já alguém fez algo semelhante? Será que alguém poderia dar uma ajuda?

Cumps!

:(

EDIT: Titulo modificado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tem q ser preenchido um formulário de modo a q seja feito post dos dados para o servidor.

Cuidado com as ligações em aberto, o cartão do cidadão n é para andar a brincar com código não seguro.

(Como podes ver pelo site q deste do sapo, utiliza https)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Mas a minha dúvida mantém-se: o código para obter do cartão de cidadão o certificado digital associado ao utilizador, tem que ser executado no client-side, certo? Por exemplo, no portal do Sapo, quando se faz validar, ele detecta que não existe nenhum leitor de cartões, por exemplo. Esse código não pode ser executado no server-side mas sim no client-side, não é assim?.

Alguém tem alguma ideia como se poderá fazer isso? Com recurso a Java Applets, por exemplo?

Grato desde já pela ajuda,

Cumps!

:thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguém sabe onde posso encontrar o wrapper para java?

Já corri tudo e não o consigo encontrar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Mas a minha dúvida mantém-se: o código para obter do cartão de cidadão o certificado digital associado ao utilizador, tem que ser executado no client-side, certo? Por exemplo, no portal do Sapo, quando se faz validar, ele detecta que não existe nenhum leitor de cartões, por exemplo. Esse código não pode ser executado no server-side mas sim no client-side, não é assim?.

Alguém tem alguma ideia como se poderá fazer isso? Com recurso a Java Applets, por exemplo?

Grato desde já pela ajuda,

Cumps!

:)

O browser tem de usar uma biblioteca PKCS#11 para aceder ao Cartão de Cidadão (CC). Isso tem de ser configurado nas opções do browser.

A partir desse momento, se uma sessão SSL exigir a autenticação do client, o browser irá usar essa biblioteca para procurar credenciais de autenticação (pares de chaves assimétricas + certificados das chaves públicas). Essas credenciais são então apresentadas ao utente para ele escolher as que deverá usar para aceder ao servidor.  Caso ele escolha uma chave privada do CC, quando a usar terá que introduzir um PIN que a biblioteca PKCS#11 se encarrega de solicitar através de uma janela de interface própria.

O servidor (ou a sua camada SSL)  apenas valida o certificado de chave pública apresentado pelo cliente e verfica se o mesmo se autenticou usando a chave privada respectiva. A partir desse momento, o certificado poderá ser usado para identificar o cliente no servidor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pretendo criar uma aplicação em .NET c# e não encontro muita informação sobre o mesmo, será que alguem daqui poderá ter algum codigo sobre isso por ai perdido que me possa facultar? uma outra duvida minha é quanto à inserção de .dll, que não estou a conseguir perceber como é, tendo dificuldades nisso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pretendo criar uma aplicação em .NET c# e não encontro muita informação sobre o mesmo, será que alguem daqui poderá ter algum codigo sobre isso por ai perdido que me possa facultar? uma outra duvida minha é quanto à inserção de .dll, que não estou a conseguir perceber como é, tendo dificuldades nisso.

Que aplicação? Para ler o CC?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Utilização de DLLs... o Google fornece muitos resultados, como por exemplo este: http://msdn.microsoft.com/en-us/library/3707x96z(v=vs.80).aspx

Ou este passo-a-passo: http://www.c-sharpcorner.com/UploadFile/mahesh/dll12222005064058AM/dll.aspx

Quanto à leitura do CC pelo seu dispositivo, há que estudar como funciona o dispositivo, a comunicação que tem com o PC, etc etc.

será que alguem daqui poderá ter algum codigo sobre isso por ai perdido que me possa facultar?

Pois, aqui não se fazem trabalhos ou se dão "códigos perdidos" sem mais nem menos. Ajudamos, pois o objectivo é aprender. Copy-Paste já todos sabem, é Ctrl+C > Ctrl+V, não é preciso incentivar mais o seu uso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu sei que não, mas estou com dificuldades em fazer isso, também não quero que me façam, só precisava de umas ideias ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora