Pular para o conteúdo principal

Filtros de certificados

É possível filtrar os certificados exibidos na seleção de certificados da sua página passando um filtro para a função listCertificates().

aviso

Filtrar certificados pode gerar chamados de suporte indesejados. Os usuários podem esperar ver certos certificados que estão sendo filtrados e supor, equivocadamente, que eles não aparecem por causa de um bug e, por isso, procurar o suporte. Isso vale especialmente quando se aplica um filtro baseado na data de expiração, já que um certificado pode aparecer em um dia e "sumir" no dia seguinte. Por isso, RECOMENDAMOS FORTEMENTE que você NÃO USE ESTA FUNCIONALIDADE. Em vez disso, exiba todos os certificados e valide o certificado escolhido.

Se, por algum motivo, você ainda quiser usar esta funcionalidade apesar do aviso acima, continue lendo.

Para exibir apenas certificados dentro do prazo de validade:

pki.listCertificates({
filter: pki.isWithinValidity
}).success(...);

Para exibir apenas certificados que tenham um CPF:

pki.listCertificates({
filter: pki.hasPkiBrazilCpf
}).success(...);
dica

Isso equivale, de forma aproximada, a "exibir apenas certificados ICP-Brasil", já que todo certificado ICP-Brasil tem um CPF (mesmo os certificados de empresa).

observação

Observe que o fato de um certificado ter um CPF não significa, de fato, que ele seja confiável como um certificado válido emitido no âmbito da infraestrutura de chaves públicas ICP-Brasil, já que há uma série de validações que precisam ser feitas (veja Login com certificado digital para mais detalhes).

Para exibir apenas certificados que tenham um determinado CPF:

pki.listCertificates({
filter: pki.pkiBrazilCpfEquals('11111111111')
}).success(...);

Você também pode combinar filtros, exigindo que os certificados atendam a todos os critérios informados:

pki.listCertificates({
filter: pki.filters.all(pki.isWithinValidity, pki.hasPkiBrazilCpf)
}).success(...);

Ou a qualquer um dos critérios informados:

pki.listCertificates({
filter: pki.filters.any(pki.hasPkiBrazilCpf, pki.hasPkiItalyCodiceFiscale)
}).success(...);

Você também pode escrever o seu próprio filtro:

pki.listCertificates({
filter: function (cert) {
var now = new Date();
return (cert.validityStart <= now && now <= cert.validityEnd);
}
}).success(...);

Como dito acima, recomendamos fortemente que você não use esta funcionalidade, para evitar gerar chamados de suporte desnecessários. Em vez disso, recomendamos exibir todos os certificados e validar o certificado escolhido.

Ver em Markdown