Autenticação de usuário com e-CPF (Certificado digital)

Olá pessoal boa noite

Alguém teria alguma sugestão de como posso utilizar o certificado digital do cliente (e-CPF)?
A idéia é usar o cpf extraído do certificado digital e utilizar para realizar a autenticação do usuário na aplicação a partir das minhas regras de negócio.
Obs.: utilizo nginx em um servidor linux.
Encontrei estes “tutoriais” na web, porém não consegui assimilar.
http://softwareisart.blogspot.com.br/2011/11/autenticacao-com-certificados-digitais.html
https://www.certisign.com.br/solucoes-corporativas/seguranca-e-gerenciamento/certisignlogin/desenvolvedores

Atenciosamente

O php em seu servidor não vai conseguir ler o cartão conectado a porta USB.

Pelo menos desconheço dessa caoacidade

com certificado A1 seria possível
, se for querer ler de dispositivos fisicos no pc do cliente, tem uns applets java que dizem fazer isso

Obrigado pessoal

Vou pesquisar mais sobre, pois na realidade preciso que seja do certificado A3 (token usb).

Obrigado pela atenção.

Applets Java estão sendo cortados o suporte aos navegadores pelos próprios desenvolvedores dos navegadores ‘vide google chrome’.

Obrigado Jailton pelo aterta.

Pelo que vi vai ser bem difícil.
Vi uma aplicação que roda em ambiente php para serviço de email (Expresso V3) e que utiliza o certificado digital A3 como possibilidade para login.

Estou buscando informações na comunidade a fim de ver se consigo enxergar uma possível adequação.
(http://comunidadeexpresso.serpro.gov.br/mediawiki/index.php/Admins/Certificados)

Obrigado

Você pode entrar em contato com este pessoal, eles criaram uma API fácil de usar somente para isso, ai você pode integrar no sistema site php super fácil, a api lê todos os certificados,
instalados no windows, ou em arquivos direto mesmo tipo, .pfx, .cer ou ainda ativa o Itoken na hora pro cliente autenticar o A3.
http://www.lacunasoftware.com/

Valeu Jailton pela indicação.

Vou buscar esta solução. Depois posto aqui o resultado.

Atenciosamente

Olá Marcos,

Conseguiu resolver esta necessidade ?
Se importaria em compartilhar como foi ? Pois necessito fazer a mesma coisa… ou até um pouco mais.
Gostaria de registrar/verificar o acesso pelo e-cpf e registrar todos documentos que faço UPLOAD, para o banco de dados.

Abraços.

Marcio Okamura

Prezado Marcio boa tarde

Infelizmente não consegui ainda.
Deixei um pouco de lado a questão devido a falta de tempo, porém ainda quero trabalhar nesta questão e deixar nos nossos sistemas esta possibilidade de autenticação comv istas à questão da segurança e fidelidade na informação pretada pelo usuário logado.
Atenciosamente

Colegas!

É minha primeira postagem aqui forum então se eu cometer algum erro por favor me corrijam.

Estou com a seguinte dúvida: comprei o certificado do tipo A1 para emitir notas fiscais eletronicas na prefeitura aqui de Florianopolis. Já integrei todo o meu sistema com a API da Prefeitura e a forma de gerar a NFe é bem simples: eu realizo um POST contendo um XML e pronto, a Prefeitura gerará a NFe.

Minha dúvida é a seguinte: no final do arquivo XML há várias linhas que preciso preencher no formato abaixo. Como que eu gero essas linhas usando PHP e o certificado do tipo A1? Eu procurei bastante na internet e não descobri como que gero essa parte final do arquivo XML.

Acredito que vários devs estão passando pelo mesmo problema pois quando ligo no suporte da prefeitura eles dizem que muitas outras pessoas já ligaram pra lá pra saber como se faz isso e eles não sabem como responder e que eu teria que consultar um programador (eu sou um programador, pelo menos acho que sou!) para resolver isso!

OBRIGADO!

        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Sign-4.938194207420864E7">

            <ds:SignedInfo>

                <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                <ds:Reference Id="RefElement-3.496850484729869E7" URI="">
                <ds:Transforms>
                <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <ds:DigestValue>KsPAoHg2H0y/wSrrOGRihebcE/g=</ds:DigestValue>
                </ds:Reference>

            </ds:SignedInfo>

            <ds:SignatureValue Id="SignatureValueID-7.454649528132233E7">
            CkDFTzGt0+vg...==
            </ds:SignatureValue>
            <ds:KeyInfo>

                <ds:X509Data>

                    <ds:X509IssuerSerial>

                        <ds:X509IssuerName>
                        CN=AC Instituto Fenacon RFB G3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, C=BR
                        </ds:X509IssuerName>
                        <ds:X509SerialNumber>1c28f49fd377...</ds:X509SerialNumber>

                    </ds:X509IssuerSerial>

                    <ds:X509Certificate>
                    MIIIPDCCBiSg...
                    </ds:X509Certificate>

                </ds:X509Data>

            </ds:KeyInfo>

        </ds:Signature>

Potatoe…

Utilize a rotina de assinatura de xml do nfephp.
ele vai preencher essas tags para vc.

Desculpe pela brincadeira com o teu nickname.
hehehehe

Amigo @jorgepopel pode me chamar de potato, no stackoverflow meu apelido é potato (eu tenho cara de batata, me chama disso desde crianca :confused: )

Mas obrigado por sua ajuda. Eu já analisei todo o codigo do NFEPHP mas sincermanete eu nao consegui isolar somente a funcao que faz autenticacao do XML. Ou seja, eu tenho o XML prontinho pra enviar pra prefeitura, só preciso gerar aquela parte ds:signature... pois nao tenho a menor ideia de como fazer isso. Eu sou muito burro nessa area de certificado digital e só ontem de madrugada é que eu descobri que o que eu precisava mesmo era só assinar digitalmente o meu XML. Só que eu nao consegui isolar a funcao de autenticacao! Terias alguma dica de como eu poderia fazer isso pois ela tem muitas outras dependencias… Se nao tiver como isolar vc saberia me dizer quais as minimas funcoes/metodos que eu tenho que executar para conseguir assinar um XML usando o NFEPHP?

GRATÍSSIMO POR SUA AJUDA!!

No NFePHP, tem um arquivo chamado ToolsNFePHP.class.php
deve estar na pasta nfephp/libs/NFe/
nesse arquivo tem o método signXML

é esse que vc vai usar para assinar o teu xml.

veja abaixo como vc pode colocar como código:

[code]$local_lib = “…/_lib/nfephp/libs/NFe/ToolsNFePHP.class.php”;
require_once($local_lib);

$saida_detran = “…/_lib/cdv/xml/”;

$nfe = new ToolsNFePHP;

if ($xml_detran = $nfe->signXML($docxml, $tagid)) {
$retorno_detran = $xml_detran;
} else {
echo $nfe->errMsg;
$retorno_detran = ‘’;
}

return $retorno_detran;
[/code]